1. 链一财经首页
  2. 资讯

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

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

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

第一,签名只有本人才能制作,但任何人都可以验证其有效性;第二,签名只与某一特定文件有联系,也就是说签名不能证明你同意另一份文件。

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

数字签名方案

数字签名方案的三个算法

密钥生成算法:(sk,pk):= generateKeys(keysize)

generateKeys方法把keysize作为输入,来产生一对公钥和私钥。私钥sk(secret key)被安全保存,并用来签名一段消息;公钥(private key)是人人都可以拿到的,拿到它,被人可以验证你的签名。

加密算法:sig:=sign(sk,message)

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

解密算法:isValid:=verify(pk,message,sig)

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

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

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

1.jpg

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

2.jpg

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

3.jpg

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

4.jpg

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

5.jpg

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

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

6.jpg

7.     小倩将这个签名附在信件下面。

7.jpg

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

8.jpg

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

9.jpg

图解完数字签名的全过程,我们回过头来看看数字签名的意义。首先,数字签名技术确保了消息的真实性,也就是不可伪造的,因为其他人假冒不了发送方的私钥,对于发送方私钥加密的信息,只有发送方的公钥才能解密。其次,数字签名保证了消息的完整性,一次签名对应一个哈希值,这样既保证了签名的一次有效性,同时,哈希运算防止了数据被篡改的可能。

文章原标题:侯震:数字签名——再也不担心儿子替我在不及格试卷上签字了  原作者:侯震

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code