嵌入式系统设计师学习笔记二十四:网络安全基础③——数字签名与消息摘要

认证-基本概念

在网络的应用中,鉴别是网络安全中的一个很重要的问题。认证和加密并不相同。
认证是要验证通信的双方的确是自己所要通信的对象,而不是其他的冒充者。

实体认证,是识别通信对方的身份,防止假冒。数字签名

消息认证,即所收到的报文的确是报文的发送者所发送的,而不是其他人伪造的或篡改的。报文摘要

数字签名-数字签名的实现


为了进行签名:
①A用其私钥SKa对报文X进行D运算,从而得到了某周不可读的密文。
②A把经过D运算得到的密文传送给B。
③B为了核实签名,用A的公钥PKa进行E运算,还原出明文X。

上述过程仅对报文进行了签名。对报文X本身却未保密。因为截获到密文DSKa(x),并指导发送者身份的任何人,都可以获得发送者的公钥PKa,因而能知道报文的内容。

数字签名-具有保密性的数字签名


由于B的公钥,所有用户都能截取到,因此A用户可以将自己的签名过的密文用B的公钥进行加密,然后发送给B用户,B用户自己拥有自己的私钥能够将被B的公钥加密过的密文进行解密,但是其他用户虽然能获取该密文,但是没有B的私钥,因此无法进行解密。

消息摘要

对很长的报文进行数字签名会使计算机增加很大的负担(需要进行很长时间的运算),因此,我们传送不需要加密的报文时,应当使接收者能用很简单的方法鉴别报文的真伪。

报文摘要(信息摘要):是进行报文认证的简单方法。
常用的算法有MD5(消息摘要算法),**SHA(安全散列算法)**等,市场上广泛使用的MD5,SHA算法的散列值分别为128和160位,由于SHA通常采用的密钥长度较长,因此安全性高于MD5,但计算起来要慢些。

消息摘要算法

消息摘要是主要的数字签名算法,它利用散列(Hash)函数(哈希函数、杂凑函数)进行数据的加密。

单向Hash函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长的字符串,这个返回的字符串称为消息摘要,也称为Hash值或列值。

特点
①首先,在某一特定时间内,无法查找经Hash操作后生成特定的Hash值的原消息;

②其次,无法查找两个经Hash操作后生成相同Hash值的不同消息;

③这样,在数字签名中就可以解决验证签名、用户身份认证和不可抵赖性的问题。

消息摘要的实现


优点:仅对短得多的定长报文摘要H进行数字签名要比对整个长报文进行数字签名要简单的多,所耗费的计算资源也小得多。

使用报文摘要算法生成报文摘要的主要目的是防止发送的报文被篡改。