数字摘要与数字签名、加密等技术结合使用的过程如下:
1. 发送方S将原文信息进行Hash运算,得到Hash值,即数字摘要MD;
2. 发送方S用自己的私钥PVS,采用非对称加密算法RSA,对数字摘要MD进行加密,得到数字签名DS;
3. 发送方S用对称算法DES的对称密钥SK对原文信息、数字签名DS及发送方证书的公钥PBS采用对称算法加密,得到加密信息E;
4. 发送方S用接收方R的公钥PBR,采用RSA算法对对称密钥SK进行加密,形成数字信封DE。该过程就像将对称密钥SK,装进了一个用接收方的公钥加密的信封里。
5. 发送方S将加密信息E和数字信封DE一起发送给接收方R;
6. 接收方R将收到的数字信封DE用自己的私钥PVR解密,取出对称密钥SK;
7. 接收方R用对称密钥SK通过DES算法对接收到的加密信息E进行解密,还原出原文信息、数字签名DS以及发送方证书的公钥PBS;
8. 接收方R用发送方S的公钥PBS解密数字签名,得到数字摘要MD;
9. 接收方R将原文信息用同样的Hash算法,求得一个新的数字摘要MD1;
10. 比较两个数字摘要MD和MD1,若一致,则认为收到的就是未被篡改的原文,否则,认为原文被篡改,拒绝该签名。
数字摘要其实就是一种单向加密算法,是一种用来保证信息完整性的技术。具体就是通过Hash函数,将任意长度的消息(明文),“摘要”成固定长度(如128 bits)的短消息(即密文)。对于同一Hash函数,不同的明文摘要成的密文其结果是不同的,而同样的明文摘要结果必定一致,并且即使得到了摘要也不能反推出明文。