|
当使用一个程序对信息进行数字签名时,至少要将数字证书的公共部分和其它信息加在一起,才能确认邮件信息的完整性。
在邮件信息和数字证书发送之前,信息要经过散列算法的加密,就是将所要发送的信息经过算术处理产生一个特征序列,这个序列是唯一的,只能由原文产生。产生的序列叫做信息摘要。
必须知道散列算法只能单向快速的运行,但很难逆向运算恢复原文。这就是说,电子邮件程序可以将邮件信息经过散列算法快速产生唯一的信息摘要。然而,如果只有信息摘要,要数年的时间才能解密得到原文。
程序产生信息摘要之后,就用发送者的私钥对信息摘要加密,这是特别重要的。如果只发送邮件和信息摘要,别人可以很容易的修改信息原文,重新产生一个信息摘要,并以你的身份发送出去。
如果只对邮件进行数字签名而不进行加密,电子邮件应用会将数字证书和签名后的信息摘要作为附件随邮件明文一起发送,因此,别人仍然能阅读信息的内容(有效的解决方法是在签名后加上加密选项)。
当接受方收到邮件时,用发送方的数字证书(公钥)解密信息摘要进行验证。然后程序用相同的散列算法计算邮件的信息摘要,并比较结果。如果产生了的信息摘要和邮件所含的信息摘要是相同的,那么说明邮件在传输过程中没有被篡改,由此保证了信息确实是由验证该信息对应的公钥持有着(证书持有着)发送的。
|