销良认证码 消息认证具有两层含义: 一是检验消息的来源是真实的,即对消息的发送者的身份进行认证; 二是检验消息是完整的,即验证消息在传送或存储过程中未被篡改、删除或插入 等。 当需要进行消息认证时,仅有消息作为输入是不够的,需要加入密钥k,这就是消 息认证的原理。能否认证,关键在于信息发送者或信息提供者是否拥有密钥k。 消息认证码(MAC,Messages Authentication Codes),是与密钥相关的的单向 Hash函数,也称为消息鉴别码或是消息校验和。 MAC与单向Hash函数一样,但是还包括一个密钥。 ■MAC=CK(M)
消息认证码 ◼ 消息认证具有两层含义: ◼ 一是检验消息的来源是真实的,即对消息的发送者的身份进行认证; ◼ 二是检验消息是完整的,即验证消息在传送或存储过程中未被篡改、删除或插入 等。 ◆ 当需要进行消息认证时,仅有消息作为输入是不够的,需要加入密钥k,这就是消 息认证的原理。能否认证,关键在于信息发送者或信息提供者是否拥有密钥k。 ◆ 消息认证码(MAC,Messages Authentication Codes),是与密钥相关的的单向 Hash函数,也称为消息鉴别码或是消息校验和。 ◆ MAC与单向Hash函数一样,但是还包括一个密钥。 ◼ MAC=CK(M)
销良认证码 消息认证码(Message Authentication Code,MAC)通常 表示为MAC=CK(M) M是可变长的消息,K是收发双方共享的密钥,函数值 Ck(M)是定长的认证码,也称为密码校验和。 MAC就是带密钥的消息摘要函数,其实就是一种带密 钥的数字指纹,它与不带密钥的数字指纹是有本质区别 的。 ■将单向Hash函数变成MAC的一个简单的办法是用对称算 法加密Hash值。相反将MAC变成单向Hash函数则只需 将密钥公开
◼ 消息认证码(Message Authentication Code,MAC)通常 表示为MAC=CK (M) ◼ M是可变长的消息,K是收发双方共享的密钥,函数值 CK (M)是定长的认证码,也称为密码校验和。 ◼ MAC就是带密钥的消息摘要函数,其实就是一种带密 钥的数字指纹,它与不带密钥的数字指纹是有本质区别 的。 ◼ 将单向Hash函数变成MAC的一个简单的办法是用对称算 法加密Hash值。相反将MAC变成单向Hash函数则只需 将密钥公开。 消息认证码
销良认证码的实现 M M,Ck(M) M 发送方 接受方 H Ck (M) 密 比较结果 K 是否相同 钥 K
消息认证码的实现 发 送 方 接 受 方 M H M,Ck(M) H 密 钥 K M =? 比较结果 是否相同 Ck(M) 密 钥 K
消息认证码 1.消息认证 认证码被附加到消息后以MIMAC方式一并发送,收方通过重新计算MAC以实 现对M的认证。 如图所示。 M M 比较 CKM 发送方 接收方 假定收、发双方共享密钥k,如果收到的MAC与计算得出的MAC一致,那么可以 得出如下结论: ①完整性验证:接收方确信消息M未被篡改。 ②消息源验证:接收方确信消息来自所声称的发送者,因为没有其他人知道这个共享密钥, 其他人也就不可能为消息M附加合适的MAC
◼ 1. 消息认证 ◼ 认证码被附加到消息后以M||MAC方式一并发送,收方通过重新计算MAC以实 现对M的认证。 如图所示。 ◼ 假定收、发双方共享密钥k,如果收到的MAC与计算得出的MAC一致,那么可以 得出如下结论: ◼ ①完整性验证:接收方确信消息M未被篡改。 ◼ ②消息源验证:接收方确信消息来自所声称的发送者,因为没有其他人知道这个共享密钥, 其他人也就不可能为消息M附加合适的MAC。 消息认证码
销息认证码 ■2.消息认证与保密 ■在()中,消息以明文方式传送,这一过程只提供认证而不具备 保密性。如图所示提供一种即加密又认证的方式,发送方发送 Ek2[MICk1(M)]。该方式除具备(1)的功能外,还具有保密性。 K M M 比较 发方 /C(M) 收方 E[MICk(M)]
◼ 2. 消息认证与保密 ◼ 在(1)中,消息以明文方式传送,这一过程只提供认证而不具备 保密性。如图所示提供一种即加密又认证的方式,发送方发送 Ek2[M||Ck1(M)]。该方式除具备(1)的功能外,还具有保密性。 消息认证码