《信息技术 安全技术 消息鉴别码-第2部分:采用专用杂凑函数的机制.docx》由会员分享,可在线阅读,更多相关《信息技术 安全技术 消息鉴别码-第2部分:采用专用杂凑函数的机制.docx(26页珍藏版)》请在第壹文秘上搜索。
1、ICS35.0401.80OB中华人民共和家标准GB15852.2XXXX信息技术安全技术消息鉴别码第2部分:采用专用杂凑函数的机制Informationtechno1.ogy-Securitytechniques-MessageAuthenticationCodes(MACs)-Part2:Mechanismsusingadedicatedhash-functionMOD(报批稿)(本稿完成日期:20,年I月19日)XXXX-XX-XX发布XXXX-XX-XX实施中华人民共和国国家质量监督检验检疫总局分在中国国家标准化管理委员会发布1楚国GB/T15852的本部分规定了三种采用专用杂流函数的
2、消息鉴别码灯法.这些消息鉴别码算法可用作数据完整性检骁,检骁数据是否被授权抱诙变。同样这些消息鉴别码算法也可用作消息常别,保证消思源的合法性,数据完整性和消息答别的强度依赖于密钥的长度及其保修性,杂次函数的律法强度及其输出长度、消息鉴别码的长度和具体的消息鉴别码算法.本部分适用于任何安全体系结构、进程或应用的安全服务.2规葩性引用文件下列文件对于本文件的应用是必不可少的。凡是注I期的引用文件,仅所注口期的版本适用于本文件。凡是不注H期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB.T1.8238.3-22信息技术安全技术散列的数笫3部分:4用散列函数(id1.ISO/IEC101
3、18-3:1998)GB.T1988-1998信息技术伯息交换用七位编码字符集eqv1S0IEC646:1991)ISO/IEC10118-3:2004信息技术安全技术杂黑函数第3部分:专用杂凑函数3术语和定义下列术语和定义适用于本部分.消息鉴别码messageauthenticationcodeMAC利用对称密码技术,以密钥为参数,由消刖导出的数据项。任何持有这一密钥的实体,部可利用消息鉴别码检查消息的完整性和始发者.3.2消息鉴别码(MAC)算法密钥IWCaorithmkey一种用于控制消息鉴别码算法运算的密的.3.3消息鉴别码算法MessageAuthenticationCodea1.g
4、orithm消息鉴别码算法简称MAC算法,共怆入为密钥和消息,输出为一个固定长度的比特小,满足下面两个性旗:-对于任何密钥和消刖,MAC豫法都能够快速地计算。对于任何固定的密钥.攻击者在没有获犯密铜信息的情况下,即使获得了一些消息MAC)对.对任何新的消息预测其MAC在计算上是不可行的.注:个MACn:法石时被称作个密码校验而攻.计。不可行性依梗使用者N体的安个要求及耳环境.输出变换outputtransformation应用在算法中,时迭代操作的输出所进行的变换.3.5抗硬处杂决函数co1.1.ision-resistanthash-function满足如下性质的杂凑函数:-寻找两个不同的输
5、入,使得它们的输出相同,在计算上是不可行的.3.6消息比特串(数据datastring(data)杂凑函数的输入比特申。3.7杂发值hash-code杂说函数的输出比特申,3.8杂凄函数hash-function将任s长消息比特m映射到定长比特串的南数,并且满足如卜,两个性旗:对于任何输出,找到它所对应的输入在计算上是不可行的.-对于任何怆入,找到区别于它只和它具有相同怆出的输入在计算上是不可行的.3.9初始值initia1.izingva1.ue杂凑函数开始工作时用到的1.3.10 10填充padding在消息比特申后面附加额外比特申的操作。3.11分组b1.ock一种定义了长度的比特申。3
6、.12轮函数round-function将两个长度为。和1.:的比特小映射到一个长度为的比特事的函数初).注:它帔反抱用在朵港两数中.格氏我为,的比特用和玳面K改为A的输出俏相合并,3.13字word长度为32位的比特小,4符号和记法下列符号和记法适用于本部分.D、D将要被输入到MAC算法的消息比特申:mMACfft的比特长度:q经过填充和分割操作后,消息比特小。的分组个数:MSBf(X)比特申XG左边的j比特;X&Y比特小X和丫的异或值:xr按顺序将比特用X和Y连接所构成的比特:h:=MAe算法定义中使用的IK值符号;D经过填充的消息比特串:h杂凑函数:h被修改了常数和初始值的朵渔函数力:h
7、简化的杂凑函数,没有数据填充和长度附加:HH长度为4比特小,在YAC算法计笄中被用来存储临时结果:IV、IV1.、/V,k初始值:YAC算法密钥的比特长度:KMAC算法的密钥;K、&、K1.K,YAC匏法1和3中的导出密钥:HHXAC算法2中的导出密期:1.MAC算法3中表示消息长度的比特申;OPAD.IPADMAC算法2中使用的常数比特小:R、S。、S1.S,MAC算法1和3中,用来导出一系列常数的常&比特耶;MAC算法1和3中,用来导出子密钥的128比特常数;“、4、%MAC算法1和3中.JIJ来导出干密钥的768比特常数:Q使用修改后常数的轮函数:K,i128比特申K,的第i个字,即:K
8、=KJOWKJ1.1.1.1.KJ2KJ3;H杂凑值:1.k比特串X的比特长度:C,、G轮函数中用到的常数字;CCt专用杂凑函数4中用到的常数矩阵:1.1输入到轮函数,的两个比特中中,第一个比特串的比特长度:1.,输入到轮函数e的两个比特串中,第二个比特小的比特长度:轮函数d谕出值的比特长度:初始值W的比特长度.轮函数,即:若X和y分别表示长度为1.和G的比特申,则ax.y)表示籽,作用到X和丫所得到的比特小.模2”加法操作,即:着人和8是字,那么把A和8看作是整数的2进制表示,计前它们的和再模2”,所得到的结果在。和2*-1之间,把它看作为字,记作A+8.注:h只能被用来处理长度为&整t倍的
9、输入比特小,5要求采刖本部分MAC算法的使用者应当选择:1)从章节6、7,8中选取一种MAC算法:2)从GBZT18238.3-2002中的专用杂凑函数1、2,3或ISOnECIO1.I8-3:2004中的专用杂凑函数7中选取一个杂灌函数:3)MAC的长度州.对于MAC算法1和2.MAC的长度,”应该是一个正整数并且不大于杂次(ft长度与。对于MAC算法3.UAC的长度m应该是一个正整数并且不大于杂凑值长度的二分之一,即巾4/2。对于MAc算法I和2.消息比特小。的比特长度不大于2wT:对于MAC0法3,消息比特的比特长度不大于256。对一个具体MAC算法、专用杂凑函数、m值的选择超出了本部分
10、所规定的范围.注I上述选择将影响MAC口法的安全强度.JI体请参考IftMB.生成MC和蛤证MAC应当使用同样的密钥。6MAC算法1MXC算法1计算MRC值要求调用次杂泌函数,而I1.要求修改其中的轮函数常数.杂凑函数应当从GB/TI8238.32OO2中的专用杂次函数1、2、3hJcISOIEC10118-3:2004中的专用杂凑函数7中选取。密钥长度不大于128比特“注I本条款包括NhTK的描述5.R体来讲,若柔川专用兴次欣敏1.MAC算法I也被称作RIPEMDTSaHACi若采用专用杂州函数2.IMC算法1也一移作R1.PEM1.A12841.4C;若枭用专用杂。函数3.MAC一法1也称
11、作SHA-MWa若乘用专用杂用为用1品IiK)其中,Un.G和5是768比特的常数,在条款9中有定义。3表示简化的杂凑函数r,即没有数据填充和长度附加。注:数据填充和长境附加可以放省略,是因为在这里输入比特卡的氏度总是I匕将.导出的密钥&被分割成四个字,表示为KM(O4M3),即:K1=Af1.IOIHK1.(1.K1.21.3h从比特串到字的转换,需要规定字节的排列顺序.在这里的转换中,采用GB,T18238.3-2002中时所有专用杂凌函数规定的字节排列顺序.6.1.2 修改常数和初始值轮函数中采用的附加常数,被修改为它与莺四个字中的一个进行模2n加的结果,比如说:CCo+K,0在条款9中
12、具体规定了中的联个字与哪个常数和加,用/V=K“取代杂凑函数的初始信八/,所得的杂凑函数记作A.其中的轮函数记作S.用。米示输入到被修改的杂凑函数W中的比特中,RP:H-Zr(D)6 .1.4演出变换再,次应用被修改的轮函数Q,其中输入的第一个参数为|&t)(&彳)IMa心),第二个参数为H(杂凑操作的结果),即:(K2)(K27)(17i),M),这里7;、T1和丁:林是长度为128的比特小,在条款9中对所有专用杂凑函数均有定义.注I输出发换对应于处理个敞外的数据分纲,这个颔外的软累分组是在数据埴克和长收处加探作之后,由公导出.7 .1.5放斯操作取比特串最左边用比特,作为YK值,即:MAC
13、AMS/()8 .2WAC算法1的效率假定填充后的消息比特串包括g个分组(这里填充方法由具体的杂凑函数决定.那么UAC算法1两用轮区数g+7次.通过预计算K。、尤和K,.并在杂凑函数的应用中用IV取代/V,UAC算法1两用轮函数的次数可以降低到g+1次.处埋长的消息比特也时,MAC算法1和相应杂凑函数的性能相当.9 VAC算法2MAC灯法2计究MAC值要求网用两次杂澳函数.杂说函数应当从GB,TI8238,32OO2中的专用杂决函数1、2、3或ISO/1EC10118-3:2004中的专用杂涉函数7中选取,并用要求。是8的正整数倍,1.2I.注ICBZT18238.3-2002中的杂凑的数1.
14、2.3和IW1.BC10118-3.3004中的杂潴一故7潇是这按条件.密钥长度Jt不小于1.:比特(4是杂淡值的比特长度),不大于1.I比特1.1为输入到轮函数的比特申的比特长度),即:1.,k1.,71 MAC算法2的描述MAC算法2要求如下四步操作:密钥扩展、杂演操作、输出变换和祓断操作.在密的K的右侧填充I-k个0,所得的长僮为n的比特中记作K.按照如下的方法,将R扩展为两个子率创冗和不:将16进制的值“36(二进制表示为“0(HKnI0)由亚/8次连接起来,所得比特小记作/O.然后将M和比特MD相异域.记作匕。即:K=KSIPAD.将16进制的假“5C”(二进制表示为“01(I1.1.100-)取发I8次连接起来,所得比特