品牌网站建设策划书/互联网营销
声明
本文是学习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在计算上是不可行的。
- 一个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)]。
- 它被反复地用在杂凑函数中,将长度为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fA8kQPE-1692860510116)(https://ab.github5.com/media_word_markdown/458960/media/image7.png)]的比特串和前面长度为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iUSTDLZT-1692860510117)(https://ab.github5.com/media_word_markdown/458960/media/image8.png)]的输出值相合并。
字 word
长度为32位的比特串。
符号和记法
下列符号和记法适用于本部分。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vknof9Z0-1692860510118)(https://ab.github5.com/media_word_markdown/458960/media/image9.png)]只能被用来处理长度为
整数倍的输入比特串。
要求
采用本部分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算法的安全强度,具体请参考附录B。
生成MAC和验证MAC应当使用同样的密钥。
MAC算法 1
MAC算法 1计算MAC值要求调用一次杂凑函数,而且要求修改其中的轮函数常数。
杂凑函数应当从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取。
密钥长度不大于128比特。
- 本条款包括MDx-MAC的描述【5】。具体来讲,若采用专用杂凑函数
1,MAC算法 1也被称作RIPEMD-160-MAC;若采用专用杂凑函数 2,MAC算法
1也被称作RIPEMD-128-MAC;若采用专用杂凑函数 3,MAC算法
1也被称作SHA-1-MAC;若采用专用杂凑函数 4(即ISO/IEC
10118-3:2004中的专用杂凑函数7),MAC算法 1也被称作WHIRLPOOL-MAC。
MAC算法 1的描述
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-pO7XYgUy-1692860510135)(https://ab.github5.com/media_word_markdown/458960/media/image35.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-JXRbbhsL-1692860510143)(https://ab.github5.com/media_word_markdown/458960/media/image57.png)]导出。
截断操作
取比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
MAC算法 1的效率
假定填充后的消息比特串包括[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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算法 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)]。
- GB/T 18238.3-2002中的杂凑函数1、2、3和ISO/IEC
10118-3:2004中的杂凑函数7满足这些条件。
密钥长度[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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的描述
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值,即:
。
MAC算法 2的效率
假定填充后的消息比特串包括[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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算法 1的一个变种,对短的输入(不大于256比特)做了优化。
MAC算法
3计算MAC值,要求调用7次简化的轮函数;但是通过预计算,可以降低到调用一次简化的轮函数。
杂凑函数应当从GB/T 18238.3-2002中的专用杂凑函数1、2、3或ISO/IEC
10118-3:2004中的专用杂凑函数7中选取。
密钥长度不大于128比特,MAC值长度
不大于
比特。
MAC算法 3的描述
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-QAokyb5E-1692860510175)(https://ab.github5.com/media_word_markdown/458960/media/image135.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-vXIQnssf-1692860510179)(https://ab.github5.com/media_word_markdown/458960/media/image148.png)]是空串,那么规定填充后的比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a1Eivh7Y-1692860510180)(https://ab.github5.com/media_word_markdown/458960/media/image149.png)]为256个"0"。
应用轮函数
消息比特串[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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的效率
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
专用杂凑函数
1中的128比特常数定义如下:(用16进制表示)
专用杂凑函数
1的轮函数中用到两个常数字序列和
,它们定义如下:
![
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdphwdvv-1692860510196)(https://ab.github5.com/media_word_markdown/458960/media/image193.png)]
专用杂凑函数2
专用杂凑函数
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
专用杂凑函数
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
专用杂凑函数
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 用于测试的输入数据
MAC算法 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)]。
专用杂凑函数1
专用杂凑函数2
专用杂凑函数3
专用杂凑函数4
MAC算法 2
在这一部分的示例中,选取[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]。
专用杂凑函数1
专用杂凑函数2
专用杂凑函数3
专用杂凑函数4
MAC算法 3
在这一部分的示例中,选取[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]。
专用杂凑函数1
专用杂凑函数2
专用杂凑函数3
专用杂凑函数4
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
相关文章:

专用杂凑函数的消息鉴别码算法学习记录
声明 本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 GB/T 15852的本部分规定了三种采用专用杂凑函数的消息鉴别码算法。这些消息鉴别码算法可用作数据完整性检验,检验数据是否被非授权地改变。同样…...

Golang使用消息队列(RabbitMQ)
最近在使用Golang做了一个网盘项目(类似百度网盘),这个网盘项目有一个功能描述如下:用户会删除一个文件到垃圾回收站,回收站的文件有一个时间期限,比如24h,24h后数据库中记录和oss中文件会被删除…...

Apache Spark远程代码执行漏洞(CVE-2023-32007)漏洞复现
漏洞描述 Apache Spark是美国阿帕奇(Apache)基金会的一款支持非循环数据流和内存计算的大规模数据处理引擎。 Apache Spark 3.4.0之前版本存在命令注入漏洞,该漏洞源于如果ACL启用后,HttpSecurityFilter中的代码路径可以允许通过…...

春秋云镜 :CVE-2020-21650(MyuCMS后台rce)
一、题目 靶标介绍: MyuCMS开源内容管理系统,采用ThinkPHP开发而成的社区商城聚合,插件,模板,轻便快捷容易扩展 其2.2版本中admin.php/config/add方法存在任意命令执行漏洞. 进入题目: exp: url/index.p…...

测试框架pytest教程(7)实现 xunit 风格的setup
pytest支持setup和teardown,对于使用unittest和nose框架的用户来说对这些很熟悉,但是在pytest可以使用功能更强大的fixture来实现固定装置。 模块级别 如果单个模块中有多个测试函数和测试类,您可以选择实现以下固定方法,这些方…...

用队列实现栈
目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 方法三、实现思路时间复杂度和空间复杂度代码 总结 题目 用队列实现栈 题目要求 题目链接 示例 解答 方法一、 使用两个队列来实现栈。 实现思路 题…...

Anolis 8.6 下 Redis 7.2.0 集群搭建和配置
Redis 7.2.0 搭建和集群配置 一.Redis 下载与单机部署1.Redis 下载2.虚拟机配置3.Redis 单机源码安装和测试4.Java 单机连接测试1.Pom 依赖2.配置文件3.启动类4.配置类5.单元测试6.测试结果 二.Redis 集群部署1.主从1.从节点配置2.Java 测试 2.哨兵1.哨兵节点配置2.复制一个哨兵…...

综合能源系统(8)——综合能源系统支撑技术
综合能源系统关键技术与典型案例 何泽家,李德智主编 1、大数据技术 1.1、大数据技术概述 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高…...

MySQL5.7数据目录结构
以CentOS7为例,数据目录为/var/lib/mysql/,其内容如下: [rootscentos szc]# ll /var/lib/mysql/ total 122952 -rw-r----- 1 mysql mysql 56 Jan 15 16:02 auto.cnf -rw------- 1 mysql mysql 1680 Jan 15 16:02 ca-key.pem -rw-r…...

Python Opencv实践 - 图像直方图均衡化
import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像直方图计算 #cv.calcHist(images, channels, mask, histSize, ranges, hist, accumulate) #images&…...

GAN:对抗生成网络,前向传播和后巷传播的区别
目录 GAN:对抗生成网络 损失函数 判别器开始波动很大,先调整判别器 生成样本和真实样本的统一:真假难辨编辑 文字专图片编辑 头像转表情包编辑 头像转3D编辑 后向传播 1. 前向传播(forward) 2. 反向传播&…...

压力变送器的功能与应用
压力变送器是用于测量气体或者液体等介质压力的设备,能够将压力转化为4 G信号传输到监控平台,工作人员可以在电脑或者手机上登录平台查看监测到的数据,并根据数据制定下一步的计划。 压力变送器的功能: 压力变送器采用了高性能感…...

排序算法:选择排序
选择排序的思想是:双重循环遍历数组,每经过一轮比较,找到最小元素的下标,将其交换至首位。 public static void selectionSort(int[] arr) {int minIndex;for (int i 0; i < arr.length - 1; i) {minIndex i;for (int j i …...

Windows运行Spark所需的Hadoop安装
解压文件 复制bin目录 找到winutils-master文件hadoop对应的bin目录版本 全部复制替换掉hadoop的bin目录文件 复制hadoop.dll文件 将bin目录下的hadoop.dll文件复制到System32目录下 配置环境变量 修改hadoop-env.cmd配置文件 注意jdk装在非C盘则完全没问题,如果装在…...

KusionStack使用文档
下载安装 1. 安装 Kusionup 如果想自定义默认安装版本,可以运行下述命令(将最后的 openlatest 替换为你想要默认安装的版本号就就行): curl -s "http://kusion-public.oss-cn-hzfinance.aliyuncs.com/cli/kusionup/script…...

ONLYOFFICE 文档如何与 Alfresco 进行集成
ONLYOFFICE 文档是一款开源办公套件,其是包含文本文档、电子表格、演示文稿、数字表单、PDF 查看器和转换工具的协作性编辑工具。要在 Alfresco 中使用 ONLYOFFICE 协作功能,可以将他们连接集成。阅读本文,了解这如何实现。 关于 ONLYOFFICE…...

PostgreSQL下载路径与安装步骤
PgSQL介绍 PgSQL和MySQL一样是一种关系模型的数据库,全称为PostgreSQL 数据库。 优势:PgSQL是一种可扩展、可靠、可定制的数据库管理系统,具有良好的数据完整性和安全性,支持多种操作系统,包括 Linux、Windows、MacOS …...

如何在PHP中编写条件语句
引言 决策是生活不可缺少的一部分。从平凡的着装决定,到改变人生的工作和家庭决定。在开发中也是如此。要让程序做任何有用的事情,它必须能够对某种输入做出响应。当用户点击网站上的联系人按钮时,他们希望被带到联系人页面。如果什么都没有…...

LLM架构自注意力机制Transformers architecture Attention is all you need
使用Transformers架构构建大型语言模型显著提高了自然语言任务的性能,超过了之前的RNNs,并导致了再生能力的爆炸。 Transformers架构的力量在于其学习句子中所有单词的相关性和上下文的能力。不仅仅是您在这里看到的,与它的邻居每个词相邻&…...

计算机网络 QA
DNS 的解析过程 浏览器缓存。当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(曾经访问过该域名并且没有清空缓存)系统缓存。当浏览器缓存中无域名对应的 IP 地址时,会自动检测用户计算机…...

安果天气预报 产品介绍
软件介绍版本号 2.0.5 安果天气预报:全世界覆盖,中国定制 想要查找北京、上海、纽约、东京还是巴黎的天气?一款简约的天气预 报应用为你呈现。专注于为用户提供纯净的天气体验,我们不发送任何打扰的通知。包含空气质量、能见度、…...

net start Mysql 启动服务时 ,显示“Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误
一、问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二、原因 由于mysql的默认端口是3306,因此在启动服务的时候,如果此端口被占用,就会出…...

DAY24
题目一 啊 看着挺复杂 其实很简单 第一种方法 就是纵轴是怪兽编号 横轴是能力值 看看能不能打过 逻辑很简单 看看能不能打得过 打过的就在花钱和直接打里面取小的 打不过就只能花钱 这种方法就导致 如果怪兽的能力值很大 那么我们就需要很大的空间 所以引出下一种做法 纵…...

Redis过期数据的删除策略
1 介绍 Redis 是一个kv型数据库,我们所有的数据都是存放在内存中的,但是内存是有大小限制的,不可能无限制的增量。 想要把不需要的数据清理掉,一种办法是直接删除,这个咱们前面章节有详细说过;另外一种就是…...

如何使用CSS实现一个拖拽排序效果?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 实现拖拽排序效果的CSS和JavaScript示例⭐ HTML 结构⭐ CSS 样式 (styles.css)⭐ JavaScript 代码 (script.js)⭐ 实现说明⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦…...

leetcode 118.杨辉三角
⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/pascals-triangle/description/ 代码: class Solution { public:vector<vector<int>> generate(int numRows) {// 先开空间vector<vector<int>> v;v.…...

微服务框架之SpringBoot面试题汇总
微服务框架之SpringBoot面试题汇总 什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂。Spring项目,我们必须添加构建路径或添加Maven依赖关系,配置应用程序服务器,添加spring配置。因此&…...

Promise详解
目录 一、前言:为什么会出现Promise?二、Promise是什么?2.1 Promise的初体验 三、使用Promise的好处?3.1 指定回调函数的方式更加灵活3.2 可以解决回调地狱问题,支持链式调用 四、Promise实例对象的两个属性五、resolve函数以及reject函数六、Promise…...

Oracle 查询(当天,月,年)的数据
Trunc 在oracle中,可利用 trunc函数 查询当天数据,该函数可用于截取时间或者数值,将该函数与 select 语句配合使用可查询时间段数据 查询当天数据 --sysdate是获取系统当前时间函数 --TRUNC函数用于截取时间或者数值,返回指定的…...

什么是梯度下降
什么是梯度下降 根据已有数据的分布来预测可能的新数据,这是回归 希望有一条线将数据分割成不同类别,这是分类 无论回归还是分类,我们的目的都是让搭建好的模型尽可能的模拟已有的数据 除了模型的结构,决定模型能否模拟成功的关键…...