一、数字签名
数字签名的作用就是确保发送者A发给接收者B的信息是发送者A发送的,并且在传输过程中数据没有被修改,类拟于写在纸上的物理签名,数字签名是非对称密钥加密技术与数字摘要技术的应用。
数据字签名的特点:解决了信息伪造、抵赖、冒充和篡改问题,保证了信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
在讲解解数字签名之前,我们应该了解信息完整性验证算法。
二、信息完整性验证算法
报文摘要算法(Message Digest Algorithms),算法的重点在于“摘要”,即对原始数据依据规则进行提取,摘要和原文具有联系性,只要原始数据稍有改动,“摘要”的结果就会不同。因此,摘要可以验证原文是否被修改。
注: 摘要算法采用“单向函数”,即只能从输入数据得到输出的数据,无法从输出的数据得到输入的数据。常见报文摘要算法有SHA1、MD5。
(1)SHA1算法
安全Hash算法,SHA1也是基于MD5的,把信息分为512bit的分组,创建一个160bit的摘要。
(2)MD5算法
消息摘要算法5(MD5),把信息分为512bit的分组,创建一个128bit的摘要。
三、数字签名和验证的过程
数字签名和验证过程图例:
数字签名的基本过程(发改方A):
(1)发送方A使用摘要算法(SHA1、MD5)对需要发送的信息进行摘要运算,生成信息的摘要。
(2)发送方A使用自己的私钥对生成的摘要进行签名,将A的签名摘要和信息一并发给接收方B。
验证签名的基本过程(接收方B):
(1)接收方B收到 A的签名摘要 使用A的公钥对摘要进行认证,得到摘要A(由A发过来的)
(2)接收方B收到 A传过来的信息后,使用摘要算法(SHA1、MD5)对信息进行摘要运算,生成信息的摘要B(由B自己计算出来的)
(3)将摘要A和摘要B进行对比,如果一致则说明发送者A 发送过来的信息没有经过任何篡改。
由此可以看到,非对称密钥加密技术与数字摘要技术在网络安全性方面的应用(私钥用于解密和签名,公钥用于加密和认证),数字签名功能具有身份认证、信息完整性检查、信息发送不可否认等特点,但并没有提供对原信息加密功能,不能保证接收方B收到信息,也不对接收方B的身份进行验证。