-
消息认证码 编辑
在密码学中,消息认证码(英语:Message authentication code,缩写为MAC),又译为消息鉴别码、文件消息认证码、讯息鉴别码、信息认证码,是经过特定算法后产生的一小段信息,检查某段消息的完整性,以及作身份验证。它可以用来检查在消息传递过程中,其内容是否被更改过,不管更改的原因是来自意外或是蓄意攻击。同时可以作为消息来源的身份验证,确认消息的来源。
目录
密钥生成算法随机均匀地从密钥空间中选择密钥。
给定密钥和消息的签名算法有效地返回标签。
验证算法有效地验证给定密钥和标签的消息的真实性。也就是说,当消息和标签未被篡改或伪造时接受返回,否则返回被拒绝。
对于安全的不可伪造的消息认证代码,在不知道密钥的情况下计算给定消息的有效标签在计算上是不可行的,即使在最坏的情况下,我们假设对手可以伪造除给定消息之外的任何消息的标签。
形式上,消息认证码(MAC)是有效算法(G,S,V)的三倍,满足:
G(密钥生成器)在输入1n上给出密钥k,其中n是安全参数。
S(签名)在密钥k和输入字符串x上输出标签t。
输入上接受或拒绝的V(验证)输出:密钥k,字符串x和标记t。 S和V必须满足以下条件:
Pr
另外,MAC算法可以有意地组合两个或更多个加密原语,以便即使后来发现其中一个易受攻击也能保持保护。 例如,在传输层安全性(TLS)中,输入数据被分成两半,每个半部用不同的散列原语(MD5和SHA-1)处理,然后一起进行异或输出以输出MAC。
FIPS PUB 113计算机数据认证
FIPS PUB 198-1密钥哈希消息认证码(HMAC)
ISO / IEC 9797-1使用分组密码的机制
ISO / IEC 9797-2使用专用哈希函数的机制
ISO / IEC 9797-1和-2定义了可用于任何分组密码或散列函数以及各种不同参数的通用模型和算法。 这些模型和参数允许通过指定参数来定义更具体的算法。 例如,FIPS PUB 113算法在功能上等同于具有填充方法1的ISO / IEC 9797-1 MAC算法1和DES的分组密码算法。
然而,为了允许接收器能够检测重放攻击,消息本身必须包含确保该相同消息只能被发送一次的数据(例如,时间戳,序列号或使用一次MAC)。 否则,攻击者可能甚至不了解其内容,记录此消息并在以后播放,产生与原始发件人相同的结果。
一次性MAC
通用散列,特别是成对独立散列函数,只要密钥最多使用一次,就提供安全的消息验证代码。 这可以被视为一次性认证。
最简单的这种成对独立散列函数由随机密钥key=(a,b)定义,并且消息m的MAC标签被计算为tag =(am + b)mod p,其中p是prime。
一般地,只要对于k路独立散列函数使用小于k次的密钥,k独立散列函数就提供安全消息认证码。
1、本站所有文本、信息、视频文件等,仅代表本站观点或作者本人观点,请网友谨慎参考使用。
2、本站信息均为作者提供和网友推荐收集整理而来,仅供学习和研究使用。
3、对任何由于使用本站内容而引起的诉讼、纠纷,本站不承担任何责任。
4、如有侵犯你版权的,请来信(邮箱:baike52199@gmail.com)指出,核实后,本站将立即删除。