信息安全基础知识(二)消息摘要与数字签名

什么是消息摘要?
      消息摘要(Message Digest)又称作数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。 消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print)。它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。哈希函数的这种对不同的输入能够生成不同的值的特性使得无法找到两个具有相同哈希值的输入。因此,如果两个文档经哈希转换后成为相同的值,就可以肯定它们是同一文档。所以,当希望有效地比较两个数据块时,就可以比较它们的哈希值。例如,可以通过比较邮件发送前和发送后的哈希值来验证该邮件在传递时是否修改。

      <总结:消息摘要可以理解为一种算法,可以将任意长度的信息输入后,输出一个固定长度的值,它是不可逆的。因为信息摘要与信息紧密联系,所以它保证了消息的完整性,如果信息被篡改,则信息摘要值与原来的信息摘要值M不等。发送方和接收方都有计算摘要值的函数,所以当接收方收到消息,就可以得到另一个摘要值M‘(M≠M)> 
      消息摘要的用途:数字签名和消息人证码(MAC message authentication code)

      签名:使用私用密钥对消息摘要进行加密,得到签名。

      这里提到了私用密钥,那么就来解释一下公用密钥和私用密钥的区别:以发送方A为例,它想发送信息给B(接收方),需要以下步骤:

      1 A用自己的私用密钥加密消息摘要(A用要发送的信息及消息摘要函数计算出消息摘要)得到签名

      2 A用B的公用密钥加密传送的消息明文(未加密的消息)及签名

      3 B用自己的私用密钥来解密A发来的数据包,得到A的签名和消息明文

      4 B用消息摘要函数,计算消息明文,得到消息摘要M’

      5 如果消息摘要M和M‘相等,说明消息是完整的,未被篡改。

有关数字签名方面的介绍,还可以浏览一下博客的另一篇文章数字签名和数字信封的区别


下一讲:信息安全基础知识(三)MAC消息验证码及密钥管理问题

你可能感兴趣的:(密码学,信息安全)