美文网首页区块链研究区块链研习社
原创:安全系列之数字签名

原创:安全系列之数字签名

作者: 哈啦呼噜 | 来源:发表于2018-06-10 22:58 被阅读3次

    本文由币车HIT(biche.yaofache.com)大V养成计划支持

    现在网络越来越发达,传输信息时安全性就显得尤为重要。之前的文章《浅谈谷歌二级验证》,就是数字资产安全保障的一道牢靠的大门。今天继续讲信息安全方面的内容——数字签名(Digital Signature)。

    手工签名

    “签名”所有人都不会陌生,小时候作业本上写的名字,长大了各种文件、合同上的署名,都可视为一种签名。为什么要签名?主要是向别人证明这个东西是自己的或者自己认可的。

    从本质上来说,任何具有重要的实质性意义的签名,都需要具备三方面的特点:

    不可伪造性 ② 不可抵赖性③ 可仲裁性。

    因为每个人的笔记都具有独特性,很难被完全模仿,所以一直被广泛应用,比如签劳动合同、租房合同、买卖合同等。不过,手工签名最重要的前提是基于双方信任。在没有第三方见证的情况下,如果单方面死不认账,也会是一件非常麻烦的事。之前网络上曝光的那些拿着欠条讨薪的农民工,就是个典型例子。

    为了预防这样的情况,重要的场合还会拍摄个人照片存档,打上双保险。比如去银行办理某些业务时,柜台会拍照留档,以备日后查询。

    数字签名(Digital Signature)

    但是现在网络环境越来越广泛,有大量的信息通过网络传播,并且会保存在上面。这些电子数据显然无法人工签名。比如大型的网络安全通信中的秘钥分配、认证,保证数据安全就极其重要。当然,这里面要做的工作有很多,今天比特猫就只说数字签名。

    数字签名是电子信息技术发展的产物,一个信息的数字签名实际上是一个数。和传统手写纸上签名不同,数字签名主要用于对数字消息或电子文档进行签名确认,其作用有二:防止别人伪造签名和签名之后抵赖不承认。数字签名和手工签名的区别有哪些?请看下表:

    数字签名是在公钥加密系统的基础上建立起来的,签名涉及的运算方式采用众所周知的哈希函数(哈希函数是一种数学计算过程,是密码学的一个重要分支)。

    签名原理大致为:假设有信息发送者A和信息接受者B两个人,

    A使用Hash函数对信息生成信息摘要——>

    再使用A的私钥签名信息摘要——>

    把信息本身和已签名的信息摘要一起发送出去——>

    B使用与A相同的Hash函数对接收的信息本身生成新的信息摘要——>

    再使用A的公钥对信息摘要进行验证——>

    确认A的身份和信息是否被修改过。若一致,则签名有效,反之,则无效。

    我们看一个数字签名应用具体的例子:

    甲方要发给乙方一封商业电子邮件,由于内容涉及重要的商业机密,所以通过加密和数字签名保证邮件的安全、保密和真实性。

    甲方先生成会话密钥K,利用密钥K对邮件明文使用加密算法E1进行加密,得到密文E1K(M),并使用接收方的公钥PB加密会话密钥K得到E2PB(K),同时对明文用MD5算法产生报文摘要R作为数字签名,再使用甲的私钥TA加密报文摘要,得到ETB(R)。

    接着向乙方传输被加密的会话密钥EPB(K)、密文E1K(M)和被加密的摘要ETB(R)。乙方收到文件之后,首先利用自己的私钥解密EPB(K)得到会话密钥K,再用K解密密文,得到邮件明文M。为了验证邮件的发出者的真实性,接收方使用发出者的公钥解密报文摘要,再用同样的算法对邮件明文M产生报文摘要,对比两个摘要,如果相等就可确认邮件发送方的身份。

    其实手写签名也并没有完全消失。经常看《新闻联播》的人就会发现,有的时候国家与国家之间签署重要文件或协议时,双方都会采用手写签名并交换文件。能能在这种场合出席并代表国家签名的人,其权利和地位都是非常高的,而且有国家信用做背书,所以基于这样的默认的前提下,双方都不担心。

    相关文章

      网友评论

        本文标题:原创:安全系列之数字签名

        本文链接:https://www.haomeiwen.com/subject/pynqeftx.html