•
应当注意 只用私钥加密不能提供保密性。因为任 何人只要有A的公开密钥,就能够对该密文进行解密。
5.1.2 消息认证码
消息认证码 MAC(或称密码检验和)是在个密钥 的控制下将任意长的消息映射到一个简短的定长数据 分组,并将它附加在消息后。设M 是变长的消息,K 是仅由收发双方共享的密钥,则M的MAC由如下的函 数C生成:MAC = CK ( M ) • 这里CK ( M )是定长的。发送者每次将MAC附加到消 息中。接收者通过重新计算MAC来对消息进行认证。 •
•
产生认证符的方法可分ຫໍສະໝຸດ 下三类:① 信息加密:将明文加密后以密文作为认证符; ② 消息认证码 MAC:用一个密钥控制的公开函数作 用后产生的固定长度的数值,也称密码校验和。 ③ 散列函数:一个将任意长度的消息映射为定长的 散列值的函数,以散列值作为认证符。
5.1.1 加密认证 • 信息加密能够提供一种认证措施,这里分对 称密码体制加密认证和公钥密码体制加密认 证。
• 这里M是由分组Y0 , Y1 ,……,YL −1组成。如图5. 1所示。 ,
图5. 1 迭代型散列函数的结构
已经证明如果压缩函数是无碰撞的,则上述方法得到的Hash 函数也是无碰撞的。 因此,Hash函数的核心技术是设计无碰撞的 压缩函数。同样,攻击者对算法的攻击重点也是对f 的内部结构的 分析。与分组密码一样,f也是由若干轮处理过程组成,因而对f 的分析需要通过对各轮之间的比特模式的分析来进行,常常需要 先找出f的碰撞。 • 由于f 是压缩函数,因而一定存在碰撞。这就要求在设计f时 尽量使找出f的碰撞在计算上是不可行的。 •
2. 公钥密码体制加密认证
• 使用公开密钥加密信息的明文只能提供保密而不 能提供认证。为了提供认证,发送者 A用私钥对信息 的明文进行加密,任意接收者都可以用 A的公钥解密。 这种方式提供的认证措施与对称密码体制加密的情形 在原理上是相同的。与前面的一样,在明文中也要求 有某种内部结构,因此,接收者能够识别正常的明文 和随机的比特串。 • 采用这样的结构既可提供了认证,也可提供数字 签名。因为只有A 能够产生该密文,其它任何一方都 不能产生该密文,从效果上看 A 已经用私钥对信息的 明文进行了签名。