本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
GB/T 15852的本部分规定了三种采用专用杂凑函数的消息鉴别码算法。这些消息鉴别码算法可用作数据完整性检验,检验数据是否被非授权地改变。同样这些消息鉴别码算法也可用作消息鉴别,保证消息源的合法性。数据完整性和消息鉴别的强度依赖于密钥的长度及其保密性、杂凑函数的算法强度及其输出长度、消息鉴别码的长度和具体的消息鉴别码算法。
本部分适用于任何安全体系结构、进程或应用的安全服务。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 18238.3-2002 信息技术 安全技术 散列函数
第3部分:专用散列函数(idt ISO/IEC 10118-3: 1998)
GB/T 1988-1998 信息技术 信息交换用七位编码字符集 (eqv ISO/IEC
646:1991)
ISO/IEC 10118-3:2004 信息技术 安全技术 杂凑函数 第3部分:专用杂凑函数
下列术语和定义适用于本部分。
消息鉴别码 message authentication code MAC
利用对称密码技术,以密钥为参数,由消息导出的数据项。任何持有这一密钥的实体,都可利用消息鉴别码检查消息的完整性和始发者。
消息鉴别码(MAC)算法密钥 MAC algorithm key
一种用于控制消息鉴别码算法运算的密钥。
消息鉴别码算法 Message Authentication Code algorithm
消息鉴别码算法简称MAC算法,其输入为密钥和消息,输出为一个固定长度的比特串,满足下面两个性质:
- 对于任何密钥和消息,MAC算法都能够快速地计算。
-
对于任何固定的密钥,攻击者在没有获得密钥信息的情况下,即使获得了一些(消息,MAC)对,对任何新的消息预测其MAC在计算上是不可行的。
输出变换 output transformation
应用在算法中,对迭代操作的输出所进行的变换。
抗碰撞杂凑函数 collision-resistant hash-function
满足如下性质的杂凑函数:
- 寻找两个不同的输入,使得它们的输出相同,在计算上是不可行的。
消息比特串(数据) data string(data)
杂凑函数的输入比特串。
杂凑值 hash-code
杂凑函数的输出比特串。
杂凑函数 hash-function
将任意长消息比特串映射到定长比特串的函数,并且满足如下两个性质:
对于任何输出,找到它所对应的输入在计算上是不可行的。
对于任何输入,找到区别于它且和它具有相同输出的输入在计算上是不可行的。
初始值 initializing value
杂凑函数开始工作时用到的值。
填充 padding
在消息比特串后面附加额外比特串的操作。
分组 block
一种定义了长度的比特串。
轮函数 round-function
将两个长度为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T6t3z2ad-1692860510113)(https://ab.github5.com/media_word_markdown/458960/media/image3.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CpQ4MeQ2-1692860510114)(https://ab.github5.com/media_word_markdown/458960/media/image4.png)]的比特串映射到一个长度为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-30yVPwzn-1692860510114)(https://ab.github5.com/media_word_markdown/458960/media/image5.png)]的比特串的函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vtWVW1Gs-1692860510115)(https://ab.github5.com/media_word_markdown/458960/media/image6.png)]。
字 word
长度为32位的比特串。
下列符号和记法适用于本部分。
采用本部分MAC算法的使用者应当选择:
1)从章节6、7、8中选取一种MAC算法;
2)从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取一个杂凑函数;
3)MAC的长度。
对于MAC算法1和2,MAC的长度应该是一个正整数并且不大于杂凑值长度。对于MAC算法3,MAC的长度m应该是一个正整数并且不大于杂凑值长度的二分之一,即。
对于MAC算法1和2,消息比特串的比特长度不大于;对于MAC算法3,消息比特串的比特长度不大于256。
对一个具体MAC算法、专用杂凑函数、值的选择超出了本部分所规定的范围。
生成MAC和验证MAC应当使用同样的密钥。
MAC算法 1计算MAC值要求调用一次杂凑函数,而且要求修改其中的轮函数常数。
杂凑函数应当从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取。
密钥长度不大于128比特。
MAC算法
1要求如下五步操作:密钥扩展、修改常数和初始值、杂凑操作、输出变换和截断操作。
若[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R39dPw7A-1692860510129)(https://ab.github5.com/media_word_markdown/458960/media/image20.png)]长度小于128比特,那么将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-idc445JM-1692860510130)(https://ab.github5.com/media_word_markdown/458960/media/image21.png)]重复足够多次数,从连接起来的比特串中选取最左边128比特作为128比特密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4QytxhP-1692860510130)(https://ab.github5.com/media_word_markdown/458960/media/image22.png)](若[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jCZGz9d4-1692860510131)(https://ab.github5.com/media_word_markdown/458960/media/image23.png)]的长度恰好为128比特,则[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhnLEttK-1692860510131)(https://ab.github5.com/media_word_markdown/458960/media/image24.png)]),即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BmN11M3T-1692860510132)(https://ab.github5.com/media_word_markdown/458960/media/image25.png)]
按照如下操作计算子密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cshzaMz6-1692860510132)(https://ab.github5.com/media_word_markdown/458960/media/image26.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NNwAYymL-1692860510132)(https://ab.github5.com/media_word_markdown/458960/media/image27.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-utXF9MrH-1692860510133)(https://ab.github5.com/media_word_markdown/458960/media/image28.png)]:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywQPcTp1-1692860510133)(https://ab.github5.com/media_word_markdown/458960/media/image29.png)]
其中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O87K2OPr-1692860510133)(https://ab.github5.com/media_word_markdown/458960/media/image30.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rmn4cbNn-1692860510134)(https://ab.github5.com/media_word_markdown/458960/media/image31.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AjzSShmV-1692860510134)(https://ab.github5.com/media_word_markdown/458960/media/image32.png)]是768比特的常数,在条款9中有定义。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jodpZixH-1692860510134)(https://ab.github5.com/media_word_markdown/458960/media/image33.png)]表示简化的杂凑函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xXYL8Rbx-1692860510135)(https://ab.github5.com/media_word_markdown/458960/media/image34.png)],即没有数据填充和长度附加。
导出的密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H5qv0f72-1692860510135)(https://ab.github5.com/media_word_markdown/458960/media/image36.png)]被分割成四个字,表示为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dl0G9AUw-1692860510136)(https://ab.github5.com/media_word_markdown/458960/media/image37.png)],即:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TO0AJXYW-1692860510136)(https://ab.github5.com/media_word_markdown/458960/media/image38.png)]。
从比特串到字的转换,需要规定字节的排列顺序。在这里的转换中,采用GB/T
18238.3-2002中对所有专用杂凑函数规定的字节排列顺序。
轮函数中采用的附加常数,被修改为它与[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bljADeGG-1692860510136)(https://ab.github5.com/media_word_markdown/458960/media/image39.png)]四个字中的一个进行模[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51er2QRm-1692860510137)(https://ab.github5.com/media_word_markdown/458960/media/image40.png)]加的结果,比如说:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhMhc8Oe-1692860510137)(https://ab.github5.com/media_word_markdown/458960/media/image41.png)]
在条款9中具体规定了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tCMieEao-1692860510137)(https://ab.github5.com/media_word_markdown/458960/media/image42.png)]中的哪个字与哪个常数相加。用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GReJdqw5-1692860510138)(https://ab.github5.com/media_word_markdown/458960/media/image43.png)]取代杂凑函数的初始值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1UyGBkli-1692860510138)(https://ab.github5.com/media_word_markdown/458960/media/image44.png)],所得的杂凑函数记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JScSQkNB-1692860510139)(https://ab.github5.com/media_word_markdown/458960/media/image45.png)],其中的轮函数记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kB3fx6fD-1692860510139)(https://ab.github5.com/media_word_markdown/458960/media/image46.png)]。
用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8QOJSw4b-1692860510139)(https://ab.github5.com/media_word_markdown/458960/media/image47.png)]表示输入到被修改的杂凑函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMhcgB5u-1692860510140)(https://ab.github5.com/media_word_markdown/458960/media/image48.png)]中的比特串,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EK5cpBm6-1692860510140)(https://ab.github5.com/media_word_markdown/458960/media/image49.png)]
再一次应用被修改的轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7qJ43WS-1692860510140)(https://ab.github5.com/media_word_markdown/458960/media/image50.png)],其中输入的第一个参数为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mSyc6jcC-1692860510141)(https://ab.github5.com/media_word_markdown/458960/media/image51.png)],第二个参数为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uMG8pLBn-1692860510141)(https://ab.github5.com/media_word_markdown/458960/media/image52.png)](杂凑操作的结果),即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dl4b05aX-1692860510141)(https://ab.github5.com/media_word_markdown/458960/media/image53.png)],
这里[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zPTVP66e-1692860510142)(https://ab.github5.com/media_word_markdown/458960/media/image54.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYRJvKL7-1692860510142)(https://ab.github5.com/media_word_markdown/458960/media/image55.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGMmpsNu-1692860510142)(https://ab.github5.com/media_word_markdown/458960/media/image56.png)]都是长度为128的比特串,在条款9中对所有专用杂凑函数均有定义。
取比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YX8Z8Gz-1692860510143)(https://ab.github5.com/media_word_markdown/458960/media/image58.png)]最左边[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T3nJ4h9W-1692860510143)(https://ab.github5.com/media_word_markdown/458960/media/image59.png)]比特,作为MAC值,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qfMBIelG-1692860510144)(https://ab.github5.com/media_word_markdown/458960/media/image60.png)]
假定填充后的消息比特串包括[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sjnpo09P-1692860510144)(https://ab.github5.com/media_word_markdown/458960/media/image61.png)]个分组(这里填充方法由具体的杂凑函数决定),那么MAC算法
1调用轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5Bf4D0H-1692860510144)(https://ab.github5.com/media_word_markdown/458960/media/image62.png)]次。
通过预计算[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urK7clAl-1692860510145)(https://ab.github5.com/media_word_markdown/458960/media/image63.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EPB3Jupm-1692860510145)(https://ab.github5.com/media_word_markdown/458960/media/image64.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnF9ruCY-1692860510146)(https://ab.github5.com/media_word_markdown/458960/media/image65.png)],并且在杂凑函数的应用中用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ric8YlgF-1692860510146)(https://ab.github5.com/media_word_markdown/458960/media/image66.png)]取代[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qSWtcwxo-1692860510146)(https://ab.github5.com/media_word_markdown/458960/media/image67.png)],MAC算法
1调用轮函数的次数可以降低到[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwRbKzj0-1692860510147)(https://ab.github5.com/media_word_markdown/458960/media/image68.png)]次。
处理长的消息比特串时,MAC算法 1和相应杂凑函数的性能相当。
MAC算法 2计算MAC值要求调用两次杂凑函数。
杂凑函数应当从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取,并且要求[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x59DO5tg-1692860510147)(https://ab.github5.com/media_word_markdown/458960/media/image69.png)]是8的正整数倍,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7HO8ECC-1692860510147)(https://ab.github5.com/media_word_markdown/458960/media/image70.png)]。
密钥长度[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YqiHcF1q-1692860510148)(https://ab.github5.com/media_word_markdown/458960/media/image71.png)]不小于[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EZjd8wj-1692860510148)(https://ab.github5.com/media_word_markdown/458960/media/image72.png)]比特([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UpgPHWR1-1692860510149)(https://ab.github5.com/media_word_markdown/458960/media/image73.png)]是杂凑值的比特长度),不大于[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CVUcW4n8-1692860510149)(https://ab.github5.com/media_word_markdown/458960/media/image74.png)]比特([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hhONzdEp-1692860510150)(https://ab.github5.com/media_word_markdown/458960/media/image75.png)]为输入到轮函数的比特串的比特长度),即:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m87Kse25-1692860510150)(https://ab.github5.com/media_word_markdown/458960/media/image76.png)]。
MAC算法 2要求如下四步操作:密钥扩展、杂凑操作、输出变换和截断操作。
在密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwxjfavl-1692860510151)(https://ab.github5.com/media_word_markdown/458960/media/image77.png)]的右侧填充[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HUm2kkFb-1692860510151)(https://ab.github5.com/media_word_markdown/458960/media/image78.png)]个0,所得的长度为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYS2xoCy-1692860510152)(https://ab.github5.com/media_word_markdown/458960/media/image79.png)]的比特串记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asR9kjLm-1692860510152)(https://ab.github5.com/media_word_markdown/458960/media/image80.png)]。
按照如下的方法,将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZNq3FpOv-1692860510153)(https://ab.github5.com/media_word_markdown/458960/media/image81.png)]扩展为两个子密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oj4WZt7g-1692860510154)(https://ab.github5.com/media_word_markdown/458960/media/image82.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6h6v3mSy-1692860510154)(https://ab.github5.com/media_word_markdown/458960/media/image83.png)]:
·将16进制的值"36"(二进制表示为"00110110")重复[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiVgvzjq-1692860510154)(https://ab.github5.com/media_word_markdown/458960/media/image84.png)]次连接起来,所得比特串记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPYmLHEh-1692860510157)(https://ab.github5.com/media_word_markdown/458960/media/image85.png)]。然后将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqXIk3kU-1692860510157)(https://ab.github5.com/media_word_markdown/458960/media/image86.png)]和比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-osXQ2qAU-1692860510157)(https://ab.github5.com/media_word_markdown/458960/media/image87.png)]相异或,记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8gygFeLA-1692860510158)(https://ab.github5.com/media_word_markdown/458960/media/image88.png)]。即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pnertolZ-1692860510158)(https://ab.github5.com/media_word_markdown/458960/media/image89.png)]。
·将16进制的值"5C"(二进制表示为"01011100")重复[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2RQXRVL0-1692860510158)(https://ab.github5.com/media_word_markdown/458960/media/image90.png)]次连接起来,所得比特串记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZKLoHZC-1692860510159)(https://ab.github5.com/media_word_markdown/458960/media/image91.png)]。然后将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2nAvoUu-1692860510159)(https://ab.github5.com/media_word_markdown/458960/media/image92.png)]和比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXSjfLGa-1692860510159)(https://ab.github5.com/media_word_markdown/458960/media/image93.png)]相异或,记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwB32zS8-1692860510160)(https://ab.github5.com/media_word_markdown/458960/media/image94.png)]。即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PyaEvrOo-1692860510160)(https://ab.github5.com/media_word_markdown/458960/media/image95.png)]。
将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9cdCUHmX-1692860510160)(https://ab.github5.com/media_word_markdown/458960/media/image96.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ojwPNSBU-1692860510161)(https://ab.github5.com/media_word_markdown/458960/media/image97.png)]相连接,作为输入到杂凑函数的比特串,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IM1S52Th-1692860510161)(https://ab.github5.com/media_word_markdown/458960/media/image98.png)]。
将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BRPFHojH-1692860510161)(https://ab.github5.com/media_word_markdown/458960/media/image99.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfUcEGa6-1692860510162)(https://ab.github5.com/media_word_markdown/458960/media/image100.png)]相连接,作为输入到杂凑函数的比特串,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IogxJ2wA-1692860510162)(https://ab.github5.com/media_word_markdown/458960/media/image101.png)]。
取比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4VoY2dhd-1692860510163)(https://ab.github5.com/media_word_markdown/458960/media/image102.png)]最左边比特,作为MAC值,即:
。
假定填充后的消息比特串包括[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S2bhvsUu-1692860510164)(https://ab.github5.com/media_word_markdown/458960/media/image105.png)]个分组(这里填充方法由具体的杂凑函数决定),那么采用专用杂凑函数
1、2和3时,MAC算法
2调用轮函数次;采用专用杂凑函数
4时,MAC算法
2调用轮函数次。
通过修改杂凑函数代码,MAC算法 2调用轮函数的次数可以降低2次。
使用者可以预计算和,并且在第一次调用杂凑函数时用取代,在输出变换中(第二次调用杂凑函数)用取代[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uERFRQF1-1692860510166)(https://ab.github5.com/media_word_markdown/458960/media/image113.png)]。同时,这也要求对填充方法进行修改。事实上,对杂凑函数实际输入的比特长度少了,这样必须把的值加到上。
处理长的消息比特串时,MAC算法 2和相应杂凑函数的性能相当。
MAC算法
3计算MAC值,要求调用7次简化的轮函数;但是通过预计算,可以降低到调用一次简化的轮函数。
杂凑函数应当从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取。
密钥长度不大于128比特,MAC值长度不大于比特。
MAC算法
3要求如下五步操作:密钥扩展、修改轮函数的常数、数据填充、应用轮函数和截断操作。
若[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6h6UXL39-1692860510169)(https://ab.github5.com/media_word_markdown/458960/media/image120.png)]长度小于128比特,那么将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvi6xSin-1692860510169)(https://ab.github5.com/media_word_markdown/458960/media/image121.png)]重复足够多次数,从连接起来的比特串中选取最左边128比特作为128比特密钥(若[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJ5gVUlq-1692860510170)(https://ab.github5.com/media_word_markdown/458960/media/image123.png)]的长度恰好为128比特,则),即:
按照如下操作计算子密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SygEZsx8-1692860510171)(https://ab.github5.com/media_word_markdown/458960/media/image126.png)]、和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-obqSl4q5-1692860510172)(https://ab.github5.com/media_word_markdown/458960/media/image128.png)]:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AguoNnbz-1692860510173)(https://ab.github5.com/media_word_markdown/458960/media/image129.png)]
其中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DUhWlj71-1692860510173)(https://ab.github5.com/media_word_markdown/458960/media/image130.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUqSVEYC-1692860510173)(https://ab.github5.com/media_word_markdown/458960/media/image131.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkQVkkc6-1692860510174)(https://ab.github5.com/media_word_markdown/458960/media/image132.png)]是768比特的常数,在条款9中有定义。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nJDVVg5F-1692860510174)(https://ab.github5.com/media_word_markdown/458960/media/image133.png)]表示简化的杂凑函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9B45TAO9-1692860510174)(https://ab.github5.com/media_word_markdown/458960/media/image134.png)],即没有数据填充和长度附加。
导出的密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XSKNhU6C-1692860510175)(https://ab.github5.com/media_word_markdown/458960/media/image136.png)]被分割成四个字,表示为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuXHtm28-1692860510175)(https://ab.github5.com/media_word_markdown/458960/media/image137.png)],即:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MLfskmBS-1692860510176)(https://ab.github5.com/media_word_markdown/458960/media/image138.png)]。
从比特串到字的转换,需要规定字节的排列顺序。在这里的转换中,采用GB/T
18238.3-2002中对所有专用杂凑函数规定的字节排列顺序。
轮函数中采用的附加常数,被修改为它与[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9o4ngyc-1692860510176)(https://ab.github5.com/media_word_markdown/458960/media/image139.png)]四个字中的一个进行模[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZd8947q-1692860510176)(https://ab.github5.com/media_word_markdown/458960/media/image140.png)]加的结果,比如说:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gaGVddau-1692860510177)(https://ab.github5.com/media_word_markdown/458960/media/image141.png)]
在条款9中具体规定了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oCryviUS-1692860510177)(https://ab.github5.com/media_word_markdown/458960/media/image142.png)]中的哪个字与哪个常数相加。用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FccfzjBB-1692860510178)(https://ab.github5.com/media_word_markdown/458960/media/image143.png)]取代杂凑函数的初始值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QwrcrsuT-1692860510178)(https://ab.github5.com/media_word_markdown/458960/media/image144.png)],所得的轮函数记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UspFPv41-1692860510178)(https://ab.github5.com/media_word_markdown/458960/media/image145.png)]。
对原始消息填充的比特串只用来计算MAC,所以这些填充比特串(如果有)不必随原始消息存储或发送。MAC的验证者应当知道填充比特串是否已经被存储或发送。
对要输入到MAC算法的消息比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJO6Op82-1692860510179)(https://ab.github5.com/media_word_markdown/458960/media/image146.png)],在其右侧填充尽可能少(可能没有)的"0"以使得填充后比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPVAmGu2-1692860510179)(https://ab.github5.com/media_word_markdown/458960/media/image147.png)]的长度是256比特。
消息比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TG8pDHZI-1692860510180)(https://ab.github5.com/media_word_markdown/458960/media/image150.png)]的长度记作,其二进制表示记作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBoGQEeh-1692860510181)(https://ab.github5.com/media_word_markdown/458960/media/image152.png)]。在[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rm5Pn3Zz-1692860510181)(https://ab.github5.com/media_word_markdown/458960/media/image153.png)]最左边填充足够少的"0"使得[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgzJpCGx-1692860510182)(https://ab.github5.com/media_word_markdown/458960/media/image154.png)]的长度为128比特,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tnAV1DXn-1692860510182)(https://ab.github5.com/media_word_markdown/458960/media/image155.png)]最右边的比特和最低位相对应。
将[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pz0iNVtW-1692860510183)(https://ab.github5.com/media_word_markdown/458960/media/image157.png)]、和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nH2CZcMr-1692860510183)(https://ab.github5.com/media_word_markdown/458960/media/image159.png)]与[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ea0BtZUR-1692860510184)(https://ab.github5.com/media_word_markdown/458960/media/image160.png)]的异或值相连接,作为轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-79dgIPyt-1692860510184)(https://ab.github5.com/media_word_markdown/458960/media/image161.png)](使用修改过的常数)的输入,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1SHVith-1692860510184)(https://ab.github5.com/media_word_markdown/458960/media/image162.png)]。
取比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaJz3xp8-1692860510185)(https://ab.github5.com/media_word_markdown/458960/media/image163.png)]最左边[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8LgTFhPV-1692860510185)(https://ab.github5.com/media_word_markdown/458960/media/image164.png)]比特,作为MAC值,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9sNe78d-1692860510186)(https://ab.github5.com/media_word_markdown/458960/media/image165.png)]。
MAC算法
3需要调用7次轮函数,通过预计算[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGyO2d1P-1692860510186)(https://ab.github5.com/media_word_markdown/458960/media/image166.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lb54nVMy-1692860510186)(https://ab.github5.com/media_word_markdown/458960/media/image167.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6UhYzk8m-1692860510187)(https://ab.github5.com/media_word_markdown/458960/media/image168.png)],可以降低到一次。
本条款中规定的常数,将被用在MAC算法 1和条款8的MAC算法 3中。
比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GAzB84Ei-1692860510187)(https://ab.github5.com/media_word_markdown/458960/media/image169.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQmnDQRv-1692860510187)(https://ab.github5.com/media_word_markdown/458960/media/image170.png)]是MAC算法中固定的元素,它们通过杂凑函数计算得到(只计算一次),并且在四个专用杂凑函数中各不相同。
128比特的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVPtxYCu-1692860510188)(https://ab.github5.com/media_word_markdown/458960/media/image171.png)]和768比特的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bQC6YfHc-1692860510188)(https://ab.github5.com/media_word_markdown/458960/media/image172.png)]按照如下的方法定义:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7g27lZs7-1692860510189)(https://ab.github5.com/media_word_markdown/458960/media/image173.png)]
其中下标的加法是模3加。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33Ojqz1a-1692860510189)(https://ab.github5.com/media_word_markdown/458960/media/image174.png)]是496比特的常数,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ExZivZNr-1692860510189)(https://ab.github5.com/media_word_markdown/458960/media/image175.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cvlBzzZW-1692860510190)(https://ab.github5.com/media_word_markdown/458960/media/image176.png)]和都是16比特的常数,其中通过重复两次数字的16进制ASCII编码得到(比如说,的表示为3131)。和都采用ASCII编码,ASCII编码等同于GB/T
1988-1998所使用的编码。
对于所有的常数、和所有的字,最高位和最左边的比特相对应。常数和用16进制表示。
专用杂凑函数
1中的128比特常数定义如下:(用16进制表示)
专用杂凑函数
1的轮函数中用到两个常数字序列和,它们定义如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdphwdvv-1692860510196)(https://ab.github5.com/media_word_markdown/458960/media/image193.png)]
专用杂凑函数
2中的128比特常数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w9T1IJJJ-1692860510196)(https://ab.github5.com/media_word_markdown/458960/media/image194.png)]定义如下:(用16进制表示)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n0fZb6JK-1692860510197)(https://ab.github5.com/media_word_markdown/458960/media/image195.png)]
专用杂凑函数
2的轮函数中用到两个常数字序列[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0nhnOYEb-1692860510197)(https://ab.github5.com/media_word_markdown/458960/media/image196.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-quIj7AJt-1692860510197)(https://ab.github5.com/media_word_markdown/458960/media/image197.png)],它们定义如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFqEyn8j-1692860510198)(https://ab.github5.com/media_word_markdown/458960/media/image198.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ppKfU38-1692860510198)(https://ab.github5.com/media_word_markdown/458960/media/image199.png)]
专用杂凑函数
3中的128比特常数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrTW7NWx-1692860510199)(https://ab.github5.com/media_word_markdown/458960/media/image200.png)]定义如下:(用16进制表示)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nx99BLaP-1692860510199)(https://ab.github5.com/media_word_markdown/458960/media/image201.png)]
专用杂凑函数
3的轮函数中用到一个常数字序列[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPwaFm2L-1692860510199)(https://ab.github5.com/media_word_markdown/458960/media/image202.png)],它定义如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aixdurp7-1692860510200)(https://ab.github5.com/media_word_markdown/458960/media/image203.png)]
专用杂凑函数
4中的128比特常数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-euiQeFdy-1692860510200)(https://ab.github5.com/media_word_markdown/458960/media/image200.png)]定义如下:(用16进制表示)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOJUBZRp-1692860510201)(https://ab.github5.com/media_word_markdown/458960/media/image204.png)]
专用杂凑函数
4的轮函数中用到一个常数矩阵序列[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-haTU70uj-1692860510201)(https://ab.github5.com/media_word_markdown/458960/media/image205.png)],它们定义如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-30rx6jQp-1692860510201)(https://ab.github5.com/media_word_markdown/458960/media/image206.png)],![
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z4EZLmOE-1692860510202)(https://ab.github5.com/media_word_markdown/458960/media/image208.png)],![
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9MjiXjK3-1692860510202)(https://ab.github5.com/media_word_markdown/458960/media/image210.png)],![
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgQHL3PO-1692860510202)(https://ab.github5.com/media_word_markdown/458960/media/image212.png)],![
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P5qDNNBW-1692860510203)(https://ab.github5.com/media_word_markdown/458960/media/image214.png)],![
A.
A.
A. (资料性附录)\
使用MAC算法生成MAC的示例
本附录提供了使用MAC算法1、2和3生成MAC的过程示例,采用四种专用杂凑函数;其中,专用杂凑函数1、2、3分别是GB/T
18238.3-2002中规定的专用杂凑函数1、2、3,专用杂凑函数4是ISO/IEC
10118-3:2004中规定的专用杂凑函数7。每个杂凑函数值的计算有九个示例。表1包含了序号为1至9的输入比特串。在整个附录中,我们对消息比特串采用ASCII编码,ASCII编码等同于GB/T
1988-1998所使用的编码。
两个128比特的密钥如下:
密钥 1=00112233445566778899AABBCCDDEEFF
密钥 2=0123456789ABCDEFFEDCBA9876543210
表 1 用于测试的输入数据
在这一部分的示例中,选取[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BU1qQWYL-1692860510203)(https://ab.github5.com/media_word_markdown/458960/media/image216.png)]。具体来讲,在专用杂凑函数1和3中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o1VwbRqE-1692860510204)(https://ab.github5.com/media_word_markdown/458960/media/image217.png)];在专用杂凑函数2中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DchVkt3w-1692860510204)(https://ab.github5.com/media_word_markdown/458960/media/image218.png)];在专用杂凑函数4中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47ictGIS-1692860510204)(https://ab.github5.com/media_word_markdown/458960/media/image219.png)]。
在这一部分的示例中,选取[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4C4kB5O4-1692860510205)(https://ab.github5.com/media_word_markdown/458960/media/image220.png)]。具体来讲,在专用杂凑函数1和3中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LkYRe2f8-1692860510205)(https://ab.github5.com/media_word_markdown/458960/media/image221.png)];在专用杂凑函数2中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fqrSzzgf-1692860510205)(https://ab.github5.com/media_word_markdown/458960/media/image222.png)];在专用杂凑函数4中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6xPuwc0a-1692860510206)(https://ab.github5.com/media_word_markdown/458960/media/image223.png)]。
在这一部分的示例中,选取[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E3VDjpSU-1692860510206)(https://ab.github5.com/media_word_markdown/458960/media/image220.png)]。具体来讲,在专用杂凑函数1和3中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qTCMMZEt-1692860510206)(https://ab.github5.com/media_word_markdown/458960/media/image221.png)];在专用杂凑函数2中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xZoCC4gQ-1692860510207)(https://ab.github5.com/media_word_markdown/458960/media/image222.png)];在专用杂凑函数4中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DaaKCFbC-1692860510207)(https://ab.github5.com/media_word_markdown/458960/media/image223.png)]。
B.
B.
B. (资料性附录)\
MAC算法的安全性分析
本附录讨论了本部分中MAC算法的安全强度。它的目标是协助本部分的使用者选择合适的MAC算法。
该附录中,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xZvIeiuH-1692860510208)(https://ab.github5.com/media_word_markdown/458960/media/image224.png)]表示用密钥为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xv2AKViw-1692860510208)(https://ab.github5.com/media_word_markdown/458960/media/image225.png)]的MAC算法对消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FhIcOdWa-1692860510208)(https://ab.github5.com/media_word_markdown/458960/media/image226.png)]进行计算所得到的MAC。
为了确定MAC算法的安全强度,本附录考虑了如下两种攻击策略:
1)伪造攻击:这种攻击是在没有密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zV3W9IdX-1692860510209)(https://ab.github5.com/media_word_markdown/458960/media/image227.png)]的情况下,对消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNjQYfbW-1692860510209)(https://ab.github5.com/media_word_markdown/458960/media/image228.png)]预测[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLwqmdW2-1692860510209)(https://ab.github5.com/media_word_markdown/458960/media/image229.png)]。如果攻击者能够对一个消息成功预测其MAC,那么称他有能力"伪造"。实际的攻击经常要求一个伪造是可验证的,也就是说,事先以接近于1的概率确认伪造的MAC是正确的。而且,在许多应用中,消息有特定的格式,这就意味着对消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6oKheGll-1692860510210)(https://ab.github5.com/media_word_markdown/458960/media/image230.png)]有额外限制。
2)密钥恢复攻击:这种攻击根据大量的(消息,MAC)对找到MAC算法的密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5SarWMO-1692860510210)(https://ab.github5.com/media_word_markdown/458960/media/image231.png)]。密钥恢复攻击比伪造攻击更强大,因为它一旦成功就可以进行任意地伪造。
一个攻击的可行性依赖于攻击者已知和选择的(消息,MAC)对数目以及离线加密的次数。
对MAC算法可能的攻击描述如下,但是这里并不保证列举了所有的攻击。前两种攻击是一般性的,也就是说,它们对任何MAC算法都有效。第三种适用于任何迭代的MAC算法(更多信息请参阅[5])。
·猜测MAC
这种伪造是不可验证的,成功概率为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ucefzE8U-1692860510211)(https://ab.github5.com/media_word_markdown/458960/media/image232.png)]。这种攻击适用于所有的MAC算法,只有合适地选择[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MOZujlyz-1692860510211)(https://ab.github5.com/media_word_markdown/458960/media/image233.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AizPKVvp-1692860510211)(https://ab.github5.com/media_word_markdown/458960/media/image234.png)]才能够抵抗这种攻击。
·密钥穷搜索
这种攻击需要运行平均[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EM1SC0I8-1692860510212)(https://ab.github5.com/media_word_markdown/458960/media/image235.png)]次MAC算法,并且需要[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FR7eO1pk-1692860510212)(https://ab.github5.com/media_word_markdown/458960/media/image236.png)]对(消息,MAC)以唯一确定密钥。同样这种攻击适用于所有MAC算法,合适地选择[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AZXr6HgX-1692860510213)(https://ab.github5.com/media_word_markdown/458960/media/image237.png)]能够抵抗这种攻击。另外,MAC算法使用者也可以阻止攻击者获得[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zEyunZu0-1692860510213)(https://ab.github5.com/media_word_markdown/458960/media/image238.png)]对(消息,MAC)以抵抗这种攻击。比如说,若[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2pl7N9q-1692860510213)(https://ab.github5.com/media_word_markdown/458960/media/image239.png)],[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xb8ufDIG-1692860510214)(https://ab.github5.com/media_word_markdown/458960/media/image240.png)],那么对于给定的(消息,MAC)对,大约有[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKyLXkj5-1692860510214)(https://ab.github5.com/media_word_markdown/458960/media/image241.png)]个密钥和其对应;如果每次使用MAC算法后都改变密钥,那么密钥穷搜索攻击并不比猜测MAC攻击更有效。
·生日攻击 [5]
如果攻击者获得足够数目的(消息,MAC)对,他就能够找到这样两个消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4TPvkQWQ-1692860510214)(https://ab.github5.com/media_word_markdown/458960/media/image242.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BQNKYJq1-1692860510215)(https://ab.github5.com/media_word_markdown/458960/media/image243.png)]满足:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fj1xzIbD-1692860510216)(https://ab.github5.com/media_word_markdown/458960/media/image244.png)]并且两次输出变换的输入值在两次MAC计算中是相等的;这被称作内部碰撞。如果消息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wsqku6zJ-1692860510216)(https://ab.github5.com/media_word_markdown/458960/media/image245.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WK8wBY13-1692860510216)(https://ab.github5.com/media_word_markdown/458960/media/image246.png)]构成内部碰撞,那么对任意的比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KLTWgZOl-1692860510217)(https://ab.github5.com/media_word_markdown/458960/media/image247.png)]都有[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opXmm2oO-1692860510217)(https://ab.github5.com/media_word_markdown/458960/media/image248.png)]。这就构成了一种伪造,当攻击者得到比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MvYPmCu-1692860510218)(https://ab.github5.com/media_word_markdown/458960/media/image249.png)]的MAC时,就能够预测比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0XhwWRs-1692860510218)(https://ab.github5.com/media_word_markdown/458960/media/image250.png)]的MAC。这种伪造依赖于消息的特殊格式,可能对许多应用没有威胁;但是,这种攻击的扩展版本在消息格式方面有更大的灵活性。这种攻击需要选择一个消息比特串,收集大约[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jRyRls8J-1692860510218)(https://ab.github5.com/media_word_markdown/458960/media/image251.png)]对已知(消息,MAC)和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ss7Rs5AI-1692860510219)(https://ab.github5.com/media_word_markdown/458960/media/image252.png)]对选择(消息,MAC),其中[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wk3RmgqI-1692860510219)(https://ab.github5.com/media_word_markdown/458960/media/image253.png)]是中间状态的比特长度。
通过以下方式可以避免生日攻击:在要处理的消息前面加上一个序列号消息块,使得MAC算法是带状态的。这就要求在MAC算法实现中要保证在一个密钥周期内,每个序列号在MAC计算过程中只用一次。这种要求并不是在所有环境下都可行。
·捷径密钥恢复
基于内部碰撞的密钥恢复攻击适用于某些MAC算法,但目前还没有关于本部分中MAC算法的捷径密钥恢复攻击。
·侧信道攻击
针对RIPEMD-160和SHA-1算法中异或、模加和模乘运算的特点,可以使用差分能量分析的方法恢复MAC算法
2的全部密钥[6]。
安全证明
若如下的假定成立,那么MAC算法 1被证明是安全的[4]:
·
使用密钥为初始值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p1GW68kL-1692860510219)(https://ab.github5.com/media_word_markdown/458960/media/image254.png)]和附加常数的轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mRTWwYr-1692860510220)(https://ab.github5.com/media_word_markdown/458960/media/image255.png)]是一个伪随机函数。
若如下的假定成立,那么MAC算法 2被证明是安全的[3]:
·
当[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LUnqEaXe-1692860510220)(https://ab.github5.com/media_word_markdown/458960/media/image256.png)]保密的时候,杂凑函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrlFosNN-1692860510220)(https://ab.github5.com/media_word_markdown/458960/media/image257.png)]是抗碰撞的。
·
使用密钥为初始值[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yl8aW75a-1692860510221)(https://ab.github5.com/media_word_markdown/458960/media/image258.png)]的轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-47ZMDxlz-1692860510221)(https://ab.github5.com/media_word_markdown/458960/media/image259.png)]是一个强MAC算法(也就是说,很难预测它的输出)。
·
密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XSFsYUib-1692860510222)(https://ab.github5.com/media_word_markdown/458960/media/image260.png)]、[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ok9HiUKN-1692860510222)(https://ab.github5.com/media_word_markdown/458960/media/image261.png)]和随机密钥不可区分;相当于要求使用密钥[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWNw9Jf9-1692860510222)(https://ab.github5.com/media_word_markdown/458960/media/image262.png)]的轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0vB5VnK-1692860510223)(https://ab.github5.com/media_word_markdown/458960/media/image263.png)]是"弱"伪随机函数("弱"源于敌手不能直接得到[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C93njWYJ-1692860510223)(https://ab.github5.com/media_word_markdown/458960/media/image264.png)]和[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GPEMFsYq-1692860510223)(https://ab.github5.com/media_word_markdown/458960/media/image265.png)])。
进一步的证明指出,只要轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCb984zW-1692860510224)(https://ab.github5.com/media_word_markdown/458960/media/image255.png)]是伪随机函数,即可保证MAC算法
2是伪随机函数[7]。另外,当轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EyuWf48I-1692860510224)(https://ab.github5.com/media_word_markdown/458960/media/image255.png)]具备不可延展和不可预测性质的时候,MAC算法
2被证明是不可伪造的[8]。
其它研究表明,当采用弱的杂凑函数的时候,MAC算法2的安全性有所降低[9-13]。
MAC算法 3的安全性假设和MAC算法
1和2中对轮函数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-disiSS98-1692860510224)(https://ab.github5.com/media_word_markdown/458960/media/image266.png)]的假设相似。
[]{#BKCKWX .anchor}参 考 文 献
ISO 16609:2004 Banking – Requirements for message authentication
using symmetric techniques.
ISO/IEC 10181-6:1996 Information technology - Open Systems
Interconnection - Security frameworks for open systems: Integrity
framework.
M. Bellare, R. Canetti, H. Krawczyk, “Keying hash functions for
message authencication,” Advances in Cryptology, Proceedings
Crypto’96, LNCS 1109, N. Koblitz, Ed., Springer-Verlag, 1996, pp.
1-15.
M. Bellare, R. Canetti, H. Krawczyk, “Pseudorandom functions
revisited: The cascade construction and its concrete security,”
Proc. 37th Annual Symposium on the Foundations of Computer Science,
IEEE, 1996, pp. 514-523. Full version via
http://www-cse.ucsd.edu/users/mihir.
B. Preneel, P.C. van Oorschot, “MDx-MAC and building fast MACs from
hash functions,” Advances in Cryptology, Proceedings Crypto’95,
LNCS 963, D. Coppersimith, Ed., Springer-Verlag, 1995, pp. 1-14.
K. Lemke, K. Schramm, C. Paar, "DPA on n-bit sized boolean and
arithmetic operations and its application to IDEA, RC6, and the
HMAC-construction, " Proceedings CHES’04, LNCS 3156, M. Joye and
J.J. Quisquater Eds., Springer-Verlag, 2004, pp. 205-219.
M. Bellare, “New proofs for NMAC and HMAC: security without
collision-resistance,” Advances in Cryptology, Proceedings
Crypto"06, LNCS 4117, Dwork Ed., Springer-Verlag, 2006, pp.
602-619.
M. Fischlin “Security of NMAC and HMAC based on non-malleability
,” Proceedings CT-RSA '08, LNCS 4964, T. Malkin, Ed,
Springer-Verlag, 2008, pp. 138-154.
S. Contini, Yiqun Lisa Yin “Forgery and Partial Key-Recovery
Attacks on HMAC and NMAC Using Hash Collisions,” Proceedings
ASIACRYPT '08, LNCS 4284, X. Lai and K. Chen, Eds, Springer-Verlag,
2006, pp. 37-53.
J. Kim, A. Biryukov, B. Preneel, S. Hong “On the Security of HMAC
and NMAC Based on HAVAL, MD4, MD5, SHA-0 and SHA-1,” Proceedings
SCN '06, LNCS 4116, R. De Prisco and M. Yung, Eds, Springer-Verlag,
2006, pp. 242-256.
P. Fouque, G. Leurent, P. Q. Nguyen “Full Key-Recovery Attacks on
HMAC/NMAC-MD4 and NMAC-MD5,” Proceedings CRYPTO '07, LNCS 4622, A.
Menezes, Ed, Springer-Verlag, 2007, pp. 13-30.
L. Wang, K. Ohta, N. Kunihiro “New Key-Recovery Attacks on
HMAC/NMAC-MD4 and NMAC-MD5,” Proceedings EUROCRYPT '08, LNCS
4965, N. Smart, Ed, Springer-Verlag, 2008, pp. 237-253.
X. Wang, H. Yu, W. Wang, H. Zhang, T. Zhan “Cryptanalysis on
HMAC/NMAC-MD5 and MD5-MAC ,” Proceedings EUROCRYPT '09, LNCS
5479, A. Joux, Ed, Springer-Verlag, 2009, pp. 121-133.
_________________________________
更多内容 可以 点击 访问 siduwenku.com 网站的报告 进一步学习
北京市生产经营单位安全生产主体责任规定.pdf