一种SM3密码杂凑算法及确定其中的变量字的方法技术

技术编号:7936722 阅读:343 留言:0更新日期:2012-11-01 07:11
本发明专利技术涉及一种SM3密码杂凑算法及确定其中的变量字的方法。变量字为A-H;该方法包括:步骤a:设置n=0;确定常量Tn和消息扩展字W0-W67、W0’-W63’;进行设置A-H及P和Q的初始化值A-1、B-1、C-1、D-1、E-1、F-1、G-1、H-1、P-1=D-1+W’0,Q-1=H-1+W0;步骤b:按照迭代公式进行一次迭代运算,确定SS1、SS2、TT1、TT2、P、Q和各变量字的第n次迭代值;迭代公式包括:SS1n=S7[S12(An-1)+En-1+Sn(Tn)];TT1n=FFn(An-1,Bn-1,Cn-1)+SS2n+Pn-1;TT2n=GGn(En-1,Fn-1,Gn-1)+SS1n+Qn-1;Dn=Cn-1;Cn=S9(Bn-1);Bn=An-1;An=TT1n;Hn=Gn-1;Gn=S19(Fn-1);Fn=En-1;En=P0(TT2n);Pn=Cn-1+W′n+1;Qn=Gn-1+Wn+1;步骤c:n自动加1;判断n是否超过63,是则执行输出A-H的迭代终值,否则继续迭代。本发明专利技术能减少变量字的迭代过程中关键路径的串行加法运算的数量。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,特别是涉及一种SM3密码杂凑算法及确定其中的变量字的方法
技术介绍
为了保证数据的安全,人们通常会将数据加密为密文,只有利用相应的密钥才能解密密文,得到原始数据明文。在该加解密的过程中,常常要用到密码杂凑算法,将任一不超过(264-1)比特的二进制比特串转换为固定长度,如256比特的二进制杂凑值输出。在密码学中,密码杂凑算法所用到的密码杂凑函数具有两个基本特性一是输入值与输出值一一对应,即两个不同的输入不可能生成同一个杂凑值;二是运算不可逆,即对于一已知的杂凑输出值y,要找到一个可以计算其输入值X的杂凑逆算法X = h(y)也是不可行的。因此,密码杂凑算法可以有效保证数据的安全,广泛应用于数字签名和验证、消息·认证码的生成和验证中,在保护信息完整性方面起着重要的作用。国家密码管理局发布的SM3密码杂凑算法具有良好的安全性,可满足多种密码应用的安全需求。该算法中,最核心的运算是在计算压缩函数V的各次迭代值的过程中用到的8个变量字A、B、C、D、E、F、G、H的64次迭代运算,第n次迭代运算的迭代公式为SSln-S7 (S12 (An^1)+E^+S (Tn));SSa = SSla 51 卜丄);TTln = FFn(Alri, Bn^1, Clri)+SS2JDM+W’ n ;TT2n = GGn (Elri, Fn^1, Glri)+SSln+Hn_i+Wn ;Dn = Cn^1 ;Dn = S9(Blri);Bn = An_1;An = TTln ;Hn = Glri ;Gn = S19(Flri);Fn = Elri ;En = F0 (TT2n)这里的Tn为常量,Am、Bn_i、Cn+ En+ Fn+ Glri为相应变量字的第n_l次迭代值,An、Bn、Cn、Dn、En、Fn、Gn、Hn分别为各变量字的第n次迭代值,SSU SS2、TT1、TT2为中间变量字,SSln、SS2n、TTln、TT2n为其第n次迭代值,W1^PW1/均为32比特长的已知的消息扩展字,Si (X)为对字X进行循环左移i比特的运算,如计算Cn的S9 (Blri)为对变量字Blri进行循环左移9比特的运算,FFn(An^1, Bn+ Clri)和GGn(En_i,Fn+ Glri)均为表达式已知的布尔函数,P0(TT2n)为表达式已知的置换函数, 为常见的异或逻辑运算符。上述的迭代过程涉及循环左移、异或等逻辑运算以及加法运算,其中,循环左移、异或等逻辑运算的延时很小,可以忽略不计,而加法运算由于需要进位,延时较大,因此,一次迭代过程中串行的加法运算的最大数量决定了该迭代过程的延时,串行加法运算数量最多的计算路径称为该迭代过程的关键路径。根据上述迭代公式可以看出,在一次迭代过程中,确定An和En所需要串行的加法运算数量最多,因而在该迭代过程中,确定An和En这两个变量字的计算路径就是决定该迭代过程的延时的关键路径。图I为现有的确定SM3密码杂凑算法中的变量字的电路图。如图I所示,一次迭代过程中的关键路径,即确定An和En这两个变量字的计算路径用粗线表示,要得到An需要经过al、a2、a3、a4、a5这五次加法运算才能完成,同样,要得到En需要经过al、a2、a6、a7、a8五次加法运算才能完成,因而各变量字的一次迭代运算总延时约为五次加法运算的延时之和。由于对V每迭代运算一次,就需要对A-H这8个变量字迭代64次,因而在SM3密码杂凑算法中对8个变量字进行的迭代运算的总数是很大的,现有技术中一次迭代过程的总延时约为五次加法运算的延时之和,严重影响了 SM3密码杂凑算法的运算速度
技术实现思路
本专利技术所要解决的技术问题是提供一种SM3密码杂凑算法及确定其中的变量字的方法,能减少变量字的迭代过程中关键路径的串行加法运算的数量。本专利技术解决上述技术问题的技术方案如下一种确定SM3密码杂凑算法中的变量字的方法,所述变量字为32比特长的八、8、(、03、?、6、11;该方法包括步骤a :设置迭代次数n为0 ;确定32比特长度的常量Tn和132个32比特长度的消息扩展字Wtl-W6P Wtl’ -w63’ ;进行初始化过程,所述初始化过程包括设置各变量字的初始迭代值A_p Bf CL1'D-P E-P Ff G-r IL1 ;确定中间变量字P、Q的初始值= D_1+ff> 0, Q^1 =H-i+Wo ;步骤b :按照迭代公式进行一次迭代运算,确定中间变量字SSl、SS2、TTl、TT2、P、Q 和各变量字的第 n 次迭代值 SSln, SS2n、TTln, TT2n、Pn、Qn、An、Bn、Cn、Dn、En、Fn、Gn、Hn ;所述迭代公式包括SSln = S7 [S12 (Alri) +En-^Sn(Tn)];沿;TTln = FFn(Alri, Bn^1, Cn^1)+882^^ ;TT2n = GGn (Elri,Flri,Glri) +SS 1見;Dn = Cn^1 ;Cn = S9(Blri);Bn = An^1 ;An = TTln ;Hn = Glri ;Gn = S19(Flri);Fn = Elri ;En = P0 (TT2n);Pn = Cn-W n+1 ;Qn = Gn^+\+1 ;其中,Alri、Blri、Clri、Elri、Flri、Glri为相应变量字的第n_l次迭代值、Qlri分别为P和Q的第n-1次迭代值PFn(A1^BMClri)和GGn(En-PF1^Glri)均为布尔函数,其函数表达式分别为本文档来自技高网
...

【技术保护点】
一种确定SM3密码杂凑算法中的变量字的方法,所述变量字为32比特长的A、B、C、D、E、F、G、H;其特征在于,该方法包括:步骤a:设置迭代次数n为0;确定32比特长度的常量Tn和132个32比特长度的消息扩展字W0?W67、W0’?W63’;进行初始化过程,所述初始化过程包括:设置各变量字的初始迭代值A?1、B?1、C?1、D?1、E?1、F?1、G?1、H?1;确定中间变量字P、Q的初始值P?1=D?1+W’0,Q?1=H?1+W0;步骤b:按照迭代公式进行一次迭代运算,确定中间变量字SS1、SS2、TT1、TT2、P、Q和各变量字的第n次迭代值SS1n、SS2n、TT1n、TT2n、Pn、Qn、An、Bn、Cn、Dn、En、Fn、Gn、Hn;所述迭代公式包括:SS1n=S7[S12(An?1)+En?1+Sn(Tn)];SS2n=SS1n⊕S12(An-1);TT1n=FFn(An?1,Bn?1,Cn?1)+SS2n+Pn?1;TT2n=GGn(En?1,Fn?1,Gn?1)+SS1n+Qn?1;Dn=Cn?1;Cn=S9(Bn?1);Bn=An?1;An=TT1n;Hn=Gn?1;Gn=S19(Fn?1);Fn=En?1;En=P0(TT2n);Pn=Cn?1+W′n+1;Qn=Gn?1+Wn+1;其中,An?1、Bn?1、Cn?1、En?1、Fn?1、Gn?1为相应变量字的第n?1次迭代值;Pn?1、Qn?1分别为P和Q的第n?1次迭代值;FFn(An?1,Bn?1,Cn?1)和GGn(En?1,Fn?1,Gn?1)均为布尔函数,其函数表达式分别为:FFn(An-1,Bn-1,Cn-1)=An-1⊕Bn-1⊕Cn-1(0≤n≤15)(An-1∩Bn-1)∪(Bn-1∩Cn-1)∪(An-1∩Cn-1)(16≤n≤63);GGn(En-1,Fn-1,Gn-1)=En-1⊕Fn-1⊕Gn-1(0≤n≤15)(En-1∩Fn-1)∪(En-1‾∩Gn-1)(16≤n≤63);P0(TT2n)为置换函数,其函数表达式为:P0(TT2n)=TT2n⊕[S9(TT2n)]⊕[S17(TT2n)];上述的S7(X)、S12(X)、Sn(X)、S9(X)、S17(X)、S19(X)分别为对字X进行循环左移7比特、12比特、n比特、9比特、17比特、19比特的运算;∩、∪、?分别为异或、逻辑与、逻辑或、逻辑非运算符;步骤c:n的值增加1;判断n是否超过63,是则执行步骤d,否则,执行步骤b;步骤d:将所述各变量字的第63次迭代值A63、B63、C63、D63、E63、F63、G63、H63输出。FDA0000057543780000023.tif...

【技术特征摘要】
1.一种确定SM3密码杂凑算法中的变量字的方法,所述变量字为32比特长的A、B、C、D、E、F、G、H ;其特征在于,该方法包括 步骤a :设置迭代次数n为O ;确定32比特长度的常量Tn和132个32比特长度的消息扩展字Wci-W67' Wtl’ -W63’ ;进行初始化过程,所述初始化过程包括设置各变量字的初始迭代值 A_i、B_i、Cf D_p E_p F_i、G_i、H^1 ;确定中间变量字 P、Q 的初始值 P_i = D^1+Wj。,Q^1 =H-i+Wo ; 步骤b :按照迭代公式进行一次迭代运算,确定中间变量字SSI、SS2、TT1、TT2、P、Q和各变量字的第 n 次迭代值 SSln, SS2n、TTln, TT2n、Pn、Qn、An、Bn、Cn、Dn、En、Fn、Gn、Hn ;所述迭代公式包括SSln= S7[S12(Alri)+En-^Sn(Tn)];TTln = FFn(An+ Bn+ Cn-VSSSJPn-I ; TT2n = GGn (En+ Fn+ GnJ+SSlJQlri ; Dn = Clri ;Cn = S9(Blri); Bn = K-i ; An = TTln ; Hn = Glri ;Gn= S19(Flri); Fn = Elri ;En = P0(TT2n); Pn = Ur n+1; Qn = Gn-i+Wn+i ; 其中,Alri、Bn_i、Cm、En_i、Flri、Glri为相应变量字的第n-1次迭代值Tn+ Qlri分别为P和Q的第n-1次迭代值PFn(A1^BMClri)和GGn(En-PF1^Glri)均为布尔函数,其函数表达式分别为/7/7 ( A R C \ — / A-i ^-i Q-i (0^w^15)- \(4-1 n^_!)U(^_!HC^1 )U(4,-1 HC^1 )(16<W<63);GG ( F F Cr 、— f En-\ Fn-\ Gn-l (0^<15) wV 卜1,w-17 _ 1(^-1 ^(^00^)(16^^63);P0(TT2n)为置换函数,其函数表达式为P0(7T2 ) = 7T2 [f (TT2 )] [y7(TT2 )];上述的S7⑴、S12⑴、Sn(X)、S9⑴、S17⑴、S19⑴分别为对字X进行循环左移7比特、12比特、n比特、9比特、17比特、19比特的运算; 、n、U、_分别为异或、逻辑与、逻辑或、逻辑非运算符; 步骤c :n的值增加I ;判断n是否超过63,是则执行步骤d,否则,执行步骤b ; 步骤d :将所述各变量字的第63次迭代值A63、B63、C63> D63、E63> F63> G63、H63输出。2.根据权利要求I所述的方法,其特征在于,所述步骤a中确定32比特长度的常量Tn的方法为设置Tn为16进制表示的79cc4519 ; 在所述步骤b按照迭代公式进行一次迭代运算之前,该方法进一步包括确定本次迭代运算中的Tn,其方法为根据Tn与n的对应关系来确定Tn,所述对应关系为 Tn,其中的 79cc4519 和 7a879d8a 均为 16 进制数。3.根据权利要求I或2所述的方法,其特征在于,所述步骤a中确定132个32比特长度的消息扩展字Wtl-W6P Wtl’ -W6/的方法为 步骤al :将Wtl-W15分别置为所述SM3密码杂凑算法中长度为512比特的消息分组从最高比特位开始的第1-16个字的值,其中,每个字的字长为32比特; 步骤a2 :循环变量r从16起至67为止,根据 Wr =PlWr-I6 K-9 ^15(Ks)] s\wr_u) rr_6if# W16-W67 的值,其中,S15(X)、S7(X)分别为对消息扩展字X进行循环左移15比特和7比特的运算; 步骤a3 :循环变量!■从O起至63为止,根据< =R十%+4计算%,-W6/的值。4.根据权利要求I或2所述的方法,其特征在于,所述步骤a的初始化过程中设置各变量字的初始迭代值L1、B^1、CL1、D^1、E^1、F^1、G^1、H^1的方法为将各变量字的初始迭代值L1、Bf Cf D_p Ef Ff Gfl1依次置为所述SM3密码杂凑算法中长度为256比特的压缩函数值从最高位开始的第1-8个字的值,其中,每个字的字长为32比特。5.根据权利要求I所述的方法,其特征在于,所述P、Q以及各变量字均用32比特长度的字寄存器进行存储; 和/或,所述步骤a中确定P、Q的初始值的加法运算由加法器实现;所述步骤b迭代公式中的任一循环左移、异或、逻辑与、逻辑或、逻辑非、加法运算分别由相应的移位寄存器、异或门电路、与门电路、或门电路、非门电路、加法器实现。6.一种SM3密码杂凑算法,其特征在于,该算法包括 步骤I :接收长度不超过(264_1)比特的消息m,并对其进行填充,得到长度为512比特的k倍的填充消息m’,其中的k为不超过(255+1)的正整数; 步骤2:...

【专利技术属性】
技术研发人员:徐树民王绍麟田心刘振屈善新刘建巍
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1