中文  |  English  
首页 菜单 关闭

侯震:数字签名—再也不担心儿子替我在不及格试卷上签字了

发布时间:2018-05-02 11:14

  今天,我们来学习下数字签名(digital signatures)。数字签名理论和哈希函数一起,是密码学的重要组成部分。


  数字签名是对纸上手写签名的数字模拟。区别于手写的物理签名,数字签名需要满足两个要求,才能使其与手写物理签名的预期一致。


  第一,签名只有本人才能制作,但任何人都可以验证其有效性;


  第二,签名只与某一特定文件有联系,也就是说签名不能证明你同意另一份文件。


  那么如何通过密码学来构造这些性质呢?我们先来看看大神们给的技术方案。

 

数字签名方案


  数字签名方案的三个算法:


  密钥生成算法:

  (sk,pk):= generateKeys(keysize)


  generateKeys方法把keysize作为输入,来产生一对公钥和私钥。私钥sk(secret key)被安全保存,并用来签名一段消息;


  公钥(private key)是人人都可以拿到的,拿到它,被人可以验证你的签名。

 

  加密算法:

  sig:=sign(sk,message)


  加密算法以密钥和一段消息作为输入,输出就是你的签名。

 

  解密算法:

  isValid:=verify(pk,message,sig)


  解密算法就是把密钥、签名和消息作为输入,如果返回结果是真,则签名属实,如果返回结果是假,则证明签名是假。

 

  如果上述方案过于技术,那么我们用图片来通俗的介绍下数字签名的过程。

 

  1. Astar小倩有两把钥匙,一把公钥,一把私钥。私钥是密钥中保密的部分,只由小倩自己保管;公钥则是小倩身份的象征,类似小倩的名片,其他人可以通过小倩的公钥来识别小倩的身份。



  2. 小倩把他的公钥发给他的好朋友小高。


  3. 小高给小倩写了一封信,写完之后,他用小倩的公钥加密,这样这封信就只有小倩自己才能打开。


  4. 小倩收到信之后非常高兴,用自己的私钥解密,就看到了信的内容。这样就完成了一次简单的公钥私钥加解密的过程,现在来说说数字签名。


  5. 小倩打算给小高回信,并打算在信的末尾加上小倩的数字签名。小倩首先运用哈希函数,生成小倩回信的摘要。


  注:有关摘要的内容,我们复习下之前哈希运算的内容。这里,我们根据哈希算法的碰撞阻力特性,将发送信息生成信息摘要,极大降低了储存要求(哈希值长度固定,256位),同时通过比较哈希值还可以有效检测文件是否损坏或恶意篡改(如果原文件损坏或被恶意篡改,那么它的哈希值也会随之改变)。


  6. 小倩对这个摘要进行私钥加密,生成数字签名。


  7. 小倩将这个签名附在信件下面一起发给小高。


  8. 小高收到信之后,取下签名,用小倩的公钥解密,得到信件的摘要。由此发现,此信确实是由小倩发的。


  9. 最后,小高再对信件本身做哈希运算,得到的结果与上文的摘要进行比对,如果两者一致,就证明信件未被修改过。


  图解完数字签名的全过程,我们回过头来看看数字签名的意义。


  首先,数字签名技术确保了消息的真实性,也就是不可伪造的,因为其他人假冒不了发送方的私钥,对于发送方私钥加密的信息,只有发送方的公钥才能解密。


  其次,数字签名保证了消息的完整性,一次签名对应一个哈希值,这样既保证了签名的一次有效性,同时,哈希运算防止了数据被篡改的可能。


  对于数字签名来说,很重要的一点就是公钥的分发,公钥是公开给所有人的,那么它有没有可能被伪造或篡改呢?一旦公钥出问题,会威胁整个体系的安全。下一章节,我们会解决这个问题。


发现和助力未来的改变者
商业计划书发送至:
bp@aastartups.com
市场合作发送至:
thq@aastartups.com
北京市海淀区五道口嘉园西侧人工智能产业赋能中心 电话:010—57296422
好的创业者不是教出来的,而是干出来的。
我们不能将差的变好,只能让好更好。
让优秀的同伴在一起赛跑,就是最好的助力。
Copyright © 2014-2015 AA加速器_中国加速器联盟_AA创业加速营_北京爱悦达管理顾问有限公司All rights reserved. 经营许可证编号浙ICP备12007941号