图解密码技术学习-第九章 数字签名

2016-09-14  本文已影响354人  JMasche

数字签名介绍

碰到的问题

数字签名解决问题原理

数字签名的使用方法

数字签名的流程

虽然可以直接对消息进行加密,但是一般应该是对消息的散列值进行加密。

  1. 发送者生成私钥和公钥,将公钥发送给接收者
  2. 发送者将消息生成散列值,针对散列值用私钥进行加密,并将加密后的结果发送给接收者
  3. 接收者接收到消息后,生成散列值
  4. 接收到加密后的散列值后,使用公钥进行解密得到散列值
  5. 接收者将自己生成的散列值 和 解密后的散列值进行比对,如果相同则验证成功。

由于使用了散列值,所以可以防篡改。
由于使用了私钥加密,所以可以确认发送者,同时防止否认。

对数字签名的疑问

数字签名的疑问书中有很多点,这里只摘取觉得必要的问题。

数字签名的实际应用

通过RSA实现数字签名

RSA在公钥加密时已经详细介绍了,所以细节不再介绍。
一开始我的疑问是为什么又是RSA呢?数字签名和公钥加密不是反过来的吗?难道不需要新的算法?
其实RSA只是用来生成公私钥对的,至于哪个用于加密和哪个用于解密,就看是用于公钥加密还是用于数字签名了。

对数字签名的攻击

各种密码技术对比

消息认证码和数字签名

关键区别:

数字签名无法解决的问题

数字签名可以 防篡改、检验发送者真伪、防否认,这些都是针对消息本身的。
但是在解决消息本身的这些问题时,带入了一个数字签名机制本身的问题,就是公钥持有者的真伪问题(中间人攻击)。
判断公钥是否合法,这就需要使用到证书,而且需要引入第三方来认证。

上一篇 下一篇

猜你喜欢

热点阅读