消息认证
- 格式:ppt
- 大小:1.01 MB
- 文档页数:91


消息认证码(MAC)⽬录
消息认证码
定义
将通信双⽅共享的密钥K和消息m作为输⼊,⽣成⼀个关于K和m的函数值MAC,将其作为认证标记(Tag)。发送时,将消息和认证码同时发送给接收⽅,若接收⽅⽤消息和共享密钥⽣成相同的消息认证码,则认证通过。
消息认证码⽤于保证数据的完整性。即防⽌数据被⾮授权⽤户篡改。需要注意的是:仅加密是⽆法保证数据的完整性的(如对ECB模式的攻击),因此需要认证。常见的消息认证码包括以下⼏类:
基于分组密码的MAC
基于带密钥的Hash函数的MAC
基于泛Hash函数的MAC
认证的安全性模型
攻击者选择消息发送给MAC,MAC将相应的Tag值返回,通过该⽅法可以得到任意消息的认证码。若攻击者可以另外找⼀个其他的消息,并能够伪造其认证码,则攻击成
功,MAC被攻破。
标准MAC算法
基于分组密码的MAC
CBC-MAC
对消息使⽤CBC模式进⾏加密,取密⽂的最后⼀块作为认证码(相当于⽤异或操作进⾏了压缩)优点:构造简单,底层算法具有⿊盒性质,⽅便替换。
缺点:⽆法处理变长消息;可以伪造消息通过认证,⽐如:
已知:(M1,M2,M3,T) 和 (M1,M2,T1),可伪造(M1,M2,M3,M3\oplus T \oplus T1,T)通过认证。
EMAC
EMAC为CBC-MAC的改进。利⽤1或0对明⽂消息进⾏填充,从⽽可以处理变长消息。优点:可处理变长消息。缺点:若消息是整分组,最后⼀块完全处理填充消息,会造成浪费。
XCBC->TMAC->OMAC
XCBC、TMAC、OMAC均为对CBC-MAC和EMAC的改进,结合了两者的优点。若消息为整分组,则采取下图左边的⽅案;若消息不是整分组,则采取下图右边的⽅案。
XCBC:K_1,K_2,K_3均不相同
TMAC:(K_2,K_3)=(K \cdot u, K)
OMAC1 和OMAC2: (K_2,K_3)=(L\cdot u,L\cdot u^2) 或 (K_2,K_3)=(L\cdot u,L\cdot u^{-1}),L=E_K(0^n)
简述消息认证码的使用步骤 -回复
消息认证码(Message Authentication Code,MAC)是一种用于保护通信数据完整性和防止数据篡改的技术。它使用加密算法和密钥,生成一个固定长度的认证标记,用于验证发送者和接收者之间的数据完整性和真实性。在本文中,我们将介绍消息认证码的使用步骤。
1. 选择合适的加密算法和密钥长度:
首先,我们需要选择适合我们需求的加密算法和密钥长度。常用的加密算法包括HMAC(Hash-based MAC)、CMAC(Cipher-based MAC)和GMAC(Galois/Counter Mode MAC)。每种算法都有其特定的适用场景和安全性质,我们需要根据我们的需求选择适当的算法。同时,我们需要确定密钥的长度,通常密钥长度越长,安全性越高。
2. 生成密钥:
接下来,我们需要生成一个密钥。密钥可以使用随机数生成器生成,确保其随机性和不可预测性。密钥的安全性对于消息认证码的安全性至关重要,因此我们需要采取适当的措施来确保密钥的机密性,如使用安全的密钥交换协议或密钥派生函数。
3. 计算消息认证码:
现在,我们可以使用选择的加密算法和生成的密钥来计算消息认证码。计算消息认证码的过程通常包括以下几个步骤: a. 将待认证的消息按照预定的规则进行分组。这个规则可以是固定长度的分组,也可以是根据消息内容进行动态的分组。
b. 对每个消息分组应用加密算法,将分组与前一个分组的认证标记进行混合计算。计算的结果通常会作为下一个分组的认证标记。
c. 对最后一个分组计算完认证标记后,将其作为总体的消息认证码。
4. 传输消息和消息认证码:
完成计算消息认证码后,我们需要将消息和消息认证码一起传输给接收者。通常,消息认证码会作为消息的一部分附加在消息尾部或通过另外的信道传送给接收者。我们需要确保消息和消息认证码在传输过程中不被篡改和修改。
5. 验证消息认证码:
接收者在接收到消息和消息认证码后,需要进行消息认证码的验证。验证的过程包括以下几个步骤:
第29卷
VO1.29 第4期
NO.4 计算机工程与设计
Computer Engineering and Design 2008年2月
Feb.2008
优化认证消息流防止中间人攻击
尹中旭, 吴灏, 朱俊虎
(解放军信息工程大学信息工程学院,河南郑州450002)
摘要:中间人攻击是对网络协议的攻击,该攻击普遍存在并危害较大,很多安全协议也面临威胁。按照发展层次比较了对
一般通信、附加认证和安全协议的通信和受保护认证通信的中间人攻击方式,分析了可以避免该攻击的几种方法。以联锁
协议为基础,以受保护的认证协议为例,提出了通过改变认证消息序列避免攻击的安全认证协议构造方法。
关键词:中间人攻击;认证消息流;联锁协议;公钥基础设施;受保护扩展认证协议 中图法分类号:TP393.08 文献标识码:A 文章编号:1000.7024(2008)04.0812—02
Optimizing authenticating message sequence for preventing MITM attacks
Y Zhong—XU,WU Hao,ZHU Jun—hu
(Department ofNetwork Engineering,PLA Information Engineering University,Zhengzhou 450002,China)
Abstract:Man in the middle attacks iS actions utilizing vulnerabilities ofnetwork protocols and iS as popular as them.Even some secure
protocols are under threat.The MITM vulnerabilities is compared in nomal network communications,authenticated as well as encrypted communication and protected authenticated communication and compares the responding avoiding methods based on analyzing.A method
请简述消息认证码的使用步骤 -回复
消息认证码(Message Authentication Code,MAC)是一种用于验证消息完整性和真实性的技术。它是一种基于密钥的哈希函数,用于生成消息的固定长度校验码。在使用消息认证码时,需要经历以下步骤:
1. 选择适当的哈希函数:首先,需要选择适合的哈希函数。常用的哈希函数有MD5、SHA-1、SHA-256等。在选择时,需考虑哈希函数的安全性和效率,并根据具体的应用场景来确定。
2. 选择合适的密钥:生成消息认证码需要使用密钥。密钥的选择至关重要,必须保证足够长且随机性能良好。一般情况下,密钥长度的选择要根据哈希函数的要求以及所需的安全性等因素来确定。
3. 消息处理:对待发送的消息进行预处理。预处理的方式与所选择的哈希函数有关。例如,使用SHA-1哈希函数时,可以先对消息进行填充和分块处理,再进行哈希运算。
4. 设置密钥:将所选的密钥与处理后的消息进行组合。这一步通常是将密钥与消息进行异或运算,以确保消息与密钥之间的关联性,避免篡改。
5. 生成MAC:通过运用哈希函数对密钥和消息的组合进行计算,得到消息的MAC值。具体的计算方式也与所选的哈希函数有关。
6. 传输消息:将生成的MAC值与消息一起传输给接收方。可以将MAC值直接附加在消息后面,或者通过其他方式传递。
7. 接收消息:接收方收到消息后,进行以下验证步骤:
a. 选择相同的哈希函数和密钥:接收方需要选择与发送方相同的哈希函数和密钥。只有相同的哈希函数和密钥才能正确地验证消息的完整性和真实性。
b. 消息处理:接收方对接收到的消息进行预处理,与发送方的处理方式一致。
c. 设置密钥:接收方将所选的密钥与处理后的消息进行组合,并与接收到的MAC值进行比较。
d. 验证MAC:接收方通过对组合后的消息和密钥进行哈希计算,得到新的MAC值。然后,将新的MAC值与接收到的MAC值进行比较。如果两者一致,则说明消息未被篡改,否则说明消息已被更改。