上QQ阅读APP看书,第一时间看更新
4.3 数字签名与验证的过程
有了非对称加密算法,小明就可以对自己的情书进行数字签名后再发送给翠花,从而保证两点:翠花收到的情书确实是自己写的;情书在传输过程中没有被二黑篡改。小明写好情书后,先对情书进行哈希计算得到一个哈希值D,然后用自己的私钥加密情书,得到一个数字签名。小明需要把情书和数字签名一起发送给翠花。翠花收到情书后,要进行数字签名验证:用小明的公钥解密数字签名,得到哈希值D1,同时对情书本身做一次哈希计算,得到哈希值D2。如果D2和D1比较后相等,则说明情书确实是小明写的,因为只有用小明的私钥加密的信息,才能用小明的公钥正常解密,而小明的私钥只有他自己知道。同时也说明情书未被篡改,因为假如篡改了,对应的哈希值也会改变,那么D2就不会等于D1,如图4.3所示。
图4.3│数字签名与验证签名的过程
那么怎么保证保密性,即二黑即使截获情书也不知道里面是什么内容呢?很简单,因为翠花也有自己的公钥和私钥。小明在发送情书的时候,不发送情书明文,而是用翠花的公钥加密后再发送,这样翠花收到情书后,可以先用自己的私钥解密情书,再进行数字签名的验证。