Julia999 发表于 2019-8-3 10:16:54

数字签名

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


原理:
所谓的数字签名就是附加在数据单元上的一些数据,或是对数据单元所做的密码变换。
这些数据或变换允许数据单元的接受者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接受者)的伪造。
他是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
基于公钥体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名


主要功能
保证信息传输的完整性,发送者的身份验证,防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名是个加密的过程,数字签名验证是个解密的过程。
(发送者私钥加密摘要信息+原文->接受者)->(接受者用公钥解密摘要,用哈希对原文产生摘要)->(对比两个摘要信息)
注意:
发送者和接受者用到的是相同的哈希函数。(发送者用哈希函数对报文文本生成报文摘要,接受者用相同的哈希函数对报文进行解密,对比两个摘要是否相同)
一次数字签名涉及到一个哈希函数,发送者的公钥,发送者的私钥

例子
假如现在 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 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

Alice所做的步骤:用哈希函数产生原文的摘要,再用私钥加密得到数字签名,附在数字信息上。随机产生密钥对要发送的信息进行加密,再用Bob的公钥进行加密,最后发送给Bob
Bob的步骤:先用自己的私钥进行解密,然后再用随机密钥进行解密得到明文(将密钥抛弃)用Alice的公钥对数字签名进行解密得到摘要。用相同哈希对明文运算得到摘要,对比两个摘要是否xiangt




页: [1]
查看完整版本: 数字签名