GB T 15852.2-2012 信息技术 安全技术 消息鉴别码 第2部分:采用专用杂凑函数的机制.pdf
《GB T 15852.2-2012 信息技术 安全技术 消息鉴别码 第2部分:采用专用杂凑函数的机制.pdf》由会员分享,可在线阅读,更多相关《GB T 15852.2-2012 信息技术 安全技术 消息鉴别码 第2部分:采用专用杂凑函数的机制.pdf(28页珍藏版)》请在麦多课文档分享上搜索。
1、ICS 35.040 L 80 道B中华人民共和国国家标准GB/T 15852.2-2012 信息技术安全技术消息鉴别码第2部分:采用专用杂凑函数的机制Information technologySecurity techniques-Message Authentication Codes (MACs) -Part 2: Mechanisms using a dedicated hash-function (lSO/IEC 9797-2: 2002 , MOD) 2012-12-31发布2013-06-01实施. .lIl.IJ ,Y - . .,1 .、; x -. -咆咀4主主抖制层雪且
2、与r中华人民共和国国家质量监督检验检菇总局中国国家标准化管理委员会发布GB/T 15852.2-2012 目次前言.1 引言.11 1 范围.2 规范性引用文件3 术语和定义-4 符号和记法.25 要求.3 6 MAC算法1. . . . . . . . . 4 6.1 MAC算法1的描述. 4 6.2 MAC算法1的效率. 5 7 MAC算法2. 5 7.1 MAC算法2的描述. 5 7.2 MAC算法2的效率. 6 8 MAC算法3. 6 8.1 MAC算法3的描述. 6 8.2 MAC算法3的效率. 7 9 常数的计算.7 9.1 专用杂凑函数1.8 9.2 专用杂凑函数2.8 9.3
3、专用杂凑函数3.8 9.4 专用杂凑函数4附录A(资料性附录使用MAC算法生成MAC的示例.11附录B(资料性附录)MAC算法的安全性分析.20 参考文献.22前GB/T 15852(信息技术安全技术消息鉴别码由如下部分组成=一一第1部分z采用分组密码的机制自一一第2部分z采用专用杂凑函数的机制。本部分是GB/T15852的第2部分。本部分按照GB/T1. 1-2009给出的规则起草。G/T 15852.2-2012 本部分修改采用ISO/IEC9797-2: 2002( .句.)。注z它被反复地用在杂读函数中,将长度为Ll的比特串和前面长度为L2的输出值相合并.字word*度为32位的比特串
4、。4 符号和记法下列符号和记法适用于本部分。D、D将要被输入到MAC算法的消息比特串m MAC值的比特长度q 经过填充和分割操作后,消息比特串D的分组个数MSBj(X) 比特串X最左边的j比特XEY 比特串X和Y的异或值XIIY 按顺序将比特串X和Y连接所构成的比特串: = MAC算法定义中使用的赋值符号D 经过填充的消息比特串h 杂凑函数2 h h H、HIV、I、IVIV二k k K、Ko、KKzK、KKzL OPAD、IPADR、S。、SI、SzTo、T,、TzU。、UI、Uz1 K ,i H Lx Ci、C;CCi GB/T 15852.2-2012 被修改了常数和初始值的杂凑函数h简
5、化的杂凑函数h,没有数据填充和长度附加长度为Lz比特串,在MAC算法计算中被用来存储临时结果初始值MAC算法密钥的比特长度MAC算法的密钥MAC算法1和3中的导出密钥MAC算法2中的导出密钥MAC算法3中表示消息长度的比特串MAC算法2中使用的常数比特串MAC算法1和3中,用来导出一系列常数的常数比特串MAC算法1和3中,用来导出子密钥的128比特常数MAC算法1和3中,用来导出子密钥的768比特常数使用修改后常数的轮函数128比特串K,的第i个字,即:K,=K,O 11 K,l 11 K,2 11 K,3 杂凑值比特串X的比特长度轮函数中用到的常数字专用杂凑函数4中用到的常数矩阵输入到轮函数
6、的两个比特串中,第一个比特串的比特长度L, Lz 输入到轮函数的两个比特串中,第二个比特串的比特长度;轮函数输出值的比特长度F初始值IV的比特长度+ 轮函数,即z若X和Y分别表示长度为L,和Lz的比特串,则r(X,Y)表示将作用到X和Y所得到的比特串+3Z 模232加法操作,即E若A和B是字,那么把A和B看作是整数的2进制表示,计算它们的和再模232,所得到的结果在0和23z-1之间,把它看作为字,记作A+3ZB注:h只能被用来处理长度为L,整数倍的输入比特串.5 要求采用本部分MAC算法的使用者应当选择zD 从第6、7,8章中选取一种MAC算法z2) 从ISO/IEC10118-3 :200
7、4中的专用杂凑函数1、2、3和7中选取一个杂凑画数z3) MAC的长度m。对于MAC算法1和2,MAC的长度m应该是一个正整数并且不大于杂凑值长度LH。对于MAC算法3,MAC的长度m应该是一个正整数并且不大于杂凑值长度的二分之一,即mLH/2.对于MAC算法1和2,消息比特串D的比特长度不大于264-1;对于MAC算法3,消息比特串D的比特长度不大于256.对一个具体MAC算法、专用杂凑画数、m值的选择超出了本部分所规定的范围。注=上述选择将影响MAC算法的安全强度,具体请参考附录B.生成MAC和验证MAC应当使用同样的密钥。3 GB/T 15852.2-2012 6 MAC算法1MAC算法
8、1计算MAC值要求调用一次杂凑函数,而且要求修改其中的轮画数常数。杂凑函数应当从ISO/IEC10118-3: 2004中的专用杂凑函数1、2、3和7中选取。密钥长度h不大于128比特。注z本条款包括MDx-MAC的描述E51.具体来讲,若采用专用杂凑函数1,MAC算法1也被称作RIPEMD-16O-MAC;若采用专用杂凑函数2,MAC算法1也被称作RIPEMD-128-MAC;若采用专用杂凑函数3,MAC算法1也被称作SHA-1-MAC;若采用专用杂凑函数4,MAC算法1也被称作WHIRLPOOL-MAC.6.1 MAC算法1的描述MAC算法1要求如下五步操作z密钥扩展、修改常数和初始值、杂
9、凑操作、输出变换和截断操作。6. 1. 1 密钥扩展若K长度小于128比特,那么将K重复足够多次数,从连接起来的比特申中选取最左边128比特作为128比特密钥K(若K的长度恰好为128比特,则K = K) , RjJ : K :MSB1Z CK 1I K 11 11 K) 按照如下操作计算子密钥凡、孔和lK2:Ko :=h(K 11 Uo 11 K) K1 :=MSB12月(h(KjJ U1 11 K) K2 :=MSB128 Ch(K 11 U2 11 K) 其中,矶、矶和U2是768比特的常数,在第9章中有定义。h表示简化的杂凄函数h,即没有数据填充和长度附加。注2数据填充和长度附加可以被
10、省略,是因为在这里输入比特串的长度总是2L,比特.导出的密钥凡被分割成四个字,表示为KliO运i乓3),即:Kl=K1OJ 11 KllJ 11 K12 11 K13。从比特串到字的转换,需要规定字节的排列顺序。在这里的转换中,采用ISO/IEC10118-3: 2004 中对所有专用杂凑函数规定的字节排列顺序。6. 1.2 修改常数和初始值轮画数中采用的附加常数,被修改为它与K1四个字中的一个进行模232加的结果,比如说zCo :=Co十32KlOJ 在条款9中具体规定了几中的哪个字与哪个常数相加。用IV: =Ko取代杂凑函数的初始值IV,所得的杂凑函数记作h,其中的轮函数记作,。6. 1.
11、3 杂凄操作用D表示输入到被修改的杂凑画数h中的比特串,即zH : =h(D) 6. 1.4 输出变换再一次应用被修改的轮函数,其中输入的第一个参数为K211 (K2ETo) 11 (K2ET1) 11 (K2E T2) ,第二个参数为H(杂凑操作的结果),即=4 GB/T 15852.2-2012 H :二讲(Kz11 (KzETo) 11 (KzET1) 11 (K2ET,H) 这里To、T1和Tz都是长度为128的比特串,在条款9中对所有专用杂凑函数均有定义。注2输出变换对应于处理一个额外的数据分组,这个额外的数据分组是在数据填充和长度附加操作之后,由K2导出。6. 1.5 截断操作取比
12、特串H最左边m比特,作为MAC值,即zMAC: =MSBm (H) 6.2 MAC算法1的效率假定填充后的消息比特串包括q个分组(这里填充方法由具体的杂凑函数决定),那么MAC算法1调用轮函数q+7次。通过预计算Ko、Kl和凡,并且在杂凑函数的应用中用I取代IV,MAC算法1调用轮函数的次数可以降低到q+1次。处理长的消息比特串时,MAC算法1和相应杂凑函数的性能相当。7 MAC算法2MAC算法2计算MAC值要求调用两次杂凑函数。杂凑函数应当从ISO/IEC10118-3: 2004中的专用杂凑函数1、2、3和7中选取,并且要求Ll是8的正整数倍,LzLl0 注:ISO月EC10118-3:2
13、004中的杂凑函数1.2、3和7满足这些条件.密钥长度h不小于L2比特(Lz是杂凑值的比特长度),不大于Ll比特(L1为输人到轮函数的比特串的比特长度),即:Lz:三hLl。7.1 MAC算法2的描述MAC算法2要求如下四步操作z密钥扩展、杂凑操作、输出变换和截断操作。7. 1. 1 密钥扩展在密钥K的右侧填充L1-k个0,所得的长度为Ll的比特串记作K.按照如下的方法,将K扩展为两个子密钥Kl和K2:将16进制的值36(二进制表示为00110110)重复Ll/8次连接起来,所得比特串记作IPAD。然后将K和比特串IPAD相异或,记作K10即zKl : =KEIPAD 将16进制的值句C(二进
14、制表示为01011100)重复Ll/8次连接起来,所得比特串记作OPAD。然后将K和比特串OPAD相异或,记作Kz即zK2 : = KEOPAD 7. 1. 2 杂凄操作将Kl和D相连接,作为输入到杂凑画数的比特串,即zH : =h(K1 11 D) 5 GB/T 15852.2-2012 7. 1.3 输出变换将K2和H相连接,作为输入到杂凑画数的比特串,即zH : =h(K2 11 H)。7. 1.4 截断操作取比特串H最左边m比特,作为MAC值,即zMAC: =MSBm(H勺。7.2 MAC算法2的效率假定填充后的消息比特串包括q个分组(这里填充方法由具体的杂凑函数决定),那么采用专用杂
15、凑函数1、2和3时,MAC算法2调用轮画数q十3次;采用专用杂凑画数4时,MAC算法2调用轮函数q+4次。通过修改杂凑函数代码,MAC算法2调用轮函数的次数可以降低2次。使用者可以预计算IV1: =.p(丸,IV)和IVz: =.p (K2 ,IV),并且在第一次调用杂凑函数时用IV1取代IV,在输出变换中(第二次调用杂凑函数)用IV2取代IV。同时,这也要求对填充方法进行修改。事实上,对杂凑函数实际输入的比特长度少了Ll这样必须把Ll的值加到LD上。处理长的消息比特串时,MAC算法2和相应杂凑函数的性能相当。8 MAC算法3注2本条款包括MAC算法1的一个变种,对短的输入不大于256比特做了
16、优化。MAC算法3计算MAC值,要求调用7次简化的轮函数z但是通过预计算,可以降低到调用一次简化的轮画数。杂凑函数应当从ISO/IEC10118-3: 2004中的专用杂凑函数1,2、3和7中选取。密钥长度h不大于128比特,MAC值长度m不大于LH/2比特。8.1 MAC算法3的描述MAC算法3要求如下五步操作z密钥扩展、修改轮函数的常数、数据填充、应用轮函数和截断操作。8. 1. 1 密钥扩展若K长度小于128比特,那么将K重复足够多次数,从连接起来的比特串中选取最左边128比特作为128比特密钥K(若K的长度恰好为128比特,则K:=K),即zK : = MSB128 (K 11 K 1
17、1 11 K) 按照如下操作计算子密钥Ko,Kl和K2IKo : =h(K 11 Uo 11 K) Kl : = MSB128 (h(K 11 U1 11 K) K2 : =MSB128 (h(K 11 U2 11 K) 其中,矶、U1和Uz是768比特的常数,在条款9中有定义。h表示简化的杂凑函数h,即没有数据填充和长度附加。注z数据填充和长度附加可以被省略,是因为在这里输入比特串的长度总是2Ll比特.6 GB/T 15852.2-2012 导出的密钥K1被分割成四个字,表示为K1iJ(0i3),即:K1=K1OJ 11 KllJ 11 K12J 11 K13J。从比特串到字的转换,需要规定
18、字节的排列顺序。在这里的转换中,采用ISO/IEC10118-3: 2004 中对所有专用杂凑函数规定的字节排列顺序。8. 1.2 修改轮函数的常数轮函数中采用的附加常数,被修改为它与K1四个字中的一个进行模232加的结果,比如说=Co : =Co +32Kl OJ 在第9章中具体规定了乱中的哪个字与哪个常数相加。用1V: =Ko取代杂凑函数的初始值1V,所得的轮画数记作;。8. 1.3 数据填充对原始消息填充的比特串只用来计算MAC,所以这些填充比特串(如果有不必随原始消息存储或发送。MAC的验证者应当知道填充比特串是否已经被存储或发送。对要输入到MAC算法的消息比特串D,在其右侧填充尽可能
19、少(可能没有的0以使得填充后比特串D的长度是256比特。注z如果消息比特串D是空串,那么规定填充后的比特串D为256个8. 1.4 应用轮函数消息比特串D的长度记作Lv,其二进制表示记作主。在Z最左边填充足够少的0使得主的长度为128比特,主最右边的比特和Lv最低位相对应。将K2、D和K2与主的异或值相连接,作为轮函数;(使用修改过的常数)的输入,即zH : =;(K2 11亘11(K2EB主),1。8. 1.5 截断操作取比特串H最左边m比特,作为MAC值,即:MAC: =MSBm(H)。8.2 MAC算法3的效率MAC算法3需要调用7次轮画数,通过预计算Ko,Kl和K2可以降低到一次。9
20、常数的计算本条款中规定的常数,将被用在MAC算法1和条款8的MAC算法3中。比特串Ti和Uj是MAC算法中固定的元素,它们通过杂凑画数计算得到(只计算一次),并且在四个专用杂凑函数中各不相同。128比特的Tj和768比特的Ui按照如下的方法定义zTi: = MSB128 (h(Sj 11 R) , i=0,1,2 Ui : = Ti 11 Ti+1 11 T j +2 11 Ti 11 Ti+l 11 Ti刊,i=0 ,1,2 其中下标的加法是模3加。R= ab. yzAB . YZOl89是496比特的常数,SO、SI和S2都是16比特的常数,其中Sj通过重复两次数字t的16进制ASCII编
21、码得到比如说,岛的表示为3131)。R和Sj都采用ASCII编码,ASCII编码等同于GB/T1988-1998所使用的编码。7 GB/T 15852.2-2012 对于所有的常数C;、C:和所有的字K1iJ,最高位和最左边的比特相对应。常数C;和c;用16进制表示。9. 1 专用杂凑函数1专用杂凑函数1中的128比特常数T;定义如下:(用16进制表示To = 1 CC7086A046AF A22353AE88F3D3DACEB T1 =E3FA02710E491D851151CC34E4718D41 T2 =93987557C07B8102BA592949EB638F37 专用杂凑函数1的轮
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 15852.2 2012 信息技术 安全技术 消息 鉴别 部分 采用 专用 杂凑 函数 机制

链接地址:http://www.mydoc123.com/p-208998.html