数字签名图文并茂
程序员文章站
2022-05-16 12:23:33
...
一 Alice 和 Bob的故事
假如现在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的故事图解
三 现实版的数字签名图解
四 数字签名在证书中的应用
1、客户端在对服务器发Client Hello之后,服务器将公开密钥证书发送给客户端,这个证书里面包含了(公钥+各种信息+数字签名)。
2、服务器端数字签名的由来:服务器用哈希算法对各种信息生成摘要,再用私钥加密摘要生成数字签名。
3、客户端收到公开密钥证书后,相当于收到了一个包裹,里面有(公钥+各种信息+数字签名)。
4、客户端校验证书过程:利用公钥对数字签名进行解密,得到摘要,然后再对发送过来的各种信息生成摘要,再比较两个摘要是否一致,一致就说明证书合法。