摘要、数字签名、数字证书

2021-07-28

1.摘要

一段信息,经过摘要算法得到一串哈希值(不管信息多长,摘要长度固定,便于加密生成数字签名,摘要非加密)

2.数字签名

发送方用自己的私钥对摘要加密,得到数字签名

数字签名在发送方,分两步:(1)从内容算摘要(哈希算法)(2)从摘要明文到摘要密文,也称数字签名(发送方私钥+加密算法)

数字签名验证在接收方,分两步:(1)从摘要密文(数字签名)到摘要明文(发送方公钥+解密算法)(2)从收到的内容当场计算摘要(哈希算法),与(1)的结果比对是否一致

如果一致,可以说明两点:

(1)内容未被篡改(摘要一致)

(2)内容只能是私钥拥方发送,不可抵赖(密文能够用对方的公钥解开)


  • 为什么要对摘要加密后再发送?为什么不直接发摘要?摘要不可以逆向推导原文,摘要泄露了也没事……

    答:摘要泄露是没事,但不怀好意的人的目的可能并不在想要窃听你发送了什么,而是想伪造发送的内容让你相信。通过同时替换摘要和内容,很简单就实现了。所以摘要需要经过加密,不怀好意的人没有私钥,无法完成加密。或者说你收到的东西只要能用公钥解密,你才认为这个东西确实是对应私钥持有者完成的。这叫做当事人不可抵赖,同时别人无法仿冒。(数字签名:不可抵赖+无法仿冒)

  • 为什么不直接对内容加密,而是先生成摘要,对摘要加密?

    答:可能是内容很长吧,直接加密算半天!摘要算法可以把无限长的内容输出成长度固定的摘要,再进行加密时间就是可以预估的

3.数字证书

由CA颁发,包含发送方的公钥信息(需要由CA的公钥解密才能得到)。

对方的公钥信息是由CA拿自己的私钥加密公钥,接收方通过CA的公钥(CA公钥是公开的)解密获得对方的公钥,然后用公钥来验证数字签名

4.完整流程示例

数字签名的原理

(1) 被发送文件用SHA编码加密产生128bit的数字摘要。

(2) 发送方用自己的私用密钥对摘要再加密,这就形成了数字签名。

(3) 将原文和加密的摘要同时传给对方。

(4) 对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要。

(5) 将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。如两者一致,则说明传送过程中信息没有被破坏或篡改过。否则不然。

数字摘要的原理:发送端把原信息用HASH函数加密成摘要,然后把数字摘要和原信息一起发送到接收端,接收端也用HASH函数把原消息加密为摘要,看两个摘要是否相同,若相同,则表明信息的完整.否则不完整. 它用来保证信息的完整性