第十三讲 数字签名

论坛 期权论坛 期权     
FUS 2019   2020-3-28 02:15   868   0


第十三讲
数字签名

数字签名(Digital Signature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。


数字签名包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGmal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。

签名:在现实生活中,签名作为签名者身份的一种证明,签名代表对签名文件的认可,不可抵赖。理论上签名是可信、不可伪造的。每次你刷卡消费后,营业员肯定需要你对回执上进行签名,这就是一种对消费交易的认可。

数字签名(又称公钥数字签名、电子签章):是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。简单证明“我就是我”。

和传统的签名不一样,互联网的发展和数字签名的出现,让签名认证这个概念应用到了更多的层面。

1.签名认证,数字签名在网络交易上和实际签名一样的认可功能,不可抵赖,签名放拥有私钥,保证签名只能自己操作,在出现签名的环境下,使用私钥验证签名的真伪。

2.防篡改,这个通过网络下载来说明最为直观,你在网络上下载一个文件,数字签名和文件混合一个整体数据包,通过对数字签名的验证,保证文件在传输过程中未被篡改。

3.验证数据的完整性,如2同理,如果文件有丢失,签名将不完整,解开数字签名和之前的比较就会出现不一致。保证文件的完整。

4.仲裁机制,数字签名也可以认为是一个数字身份,通过唯一私钥生成,在网络上交易互动时要求收到一个数字签名的回文,保证过程的完整。如果对交互过程出现抵赖,那么用数字便于仲裁。

5.保密性,对于有安全级别要求文件,数字签名加密后传输,保证数据在被中途截取后无法获得其真实内容。有利于数据的安全性。

6.防重放:在数字签名中,如果采用了对签名报文添加流水号、时戳等技术,可以防止重放攻击。


7.多重数字签名,通过多次数字签名,对文件数据进行多人认证。

数字签名整个过程验证简单,只需要公钥、私钥进行加解密的验证,和传统签名不一致,一般都会看到电视剧中常出现签名验证的时候需要专业的笔记签证专家,采用数字签名节省了验证流程和成本。

所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。


实现数字签名有很多方法,数字签名采用较多的是公钥加密方式,1994年美国标准与技术协会公布了数字签名标准而使公钥加密技术广泛应用。公钥加密系统采用的是非对称加密算法。之前的文章对非对称加密也有过说明,有兴趣可以参考。

它的主要方式是,报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。

然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字签名进行解密。

如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。上文数字签名步骤解释的也就是一种公钥加密签名的模式。当然还有对称加密方式,现在常用为非对称加密算法。

在区块链技术中公钥、私钥、地址、就是通过非对称加密算法(区块链中目前用到的是椭圆曲线算法)和哈希加密算法生成的。有了这三个要素,然后通过上述数字签名的从过程发送信息摘要和数字签名,验证一致性。


案例举例:


假如现在 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:


1.Alice 准备好要传送的数字信息(明文);


2.Alice 对数字信息进行哈希运算,得到一个信息摘要;


3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;


4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;


5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;


6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;


7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;


8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要;


9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;


10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:72
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP