一种轮输出为算术掩码的zuc序列密码算法掩码防护方法_2

文档序号:9250894阅读:来源:国知局
由于前1轮S盒输出带有掩码 防护为RdmnR2+m2,无需再加上掩码值;(2)对于前N轮中每1轮的输入XjPX2分别加
即可得到(《?A) +晃,获得正确的W输出,转化函数为h(x,y)定义为x+r= /?(x?r,r)。
[0084]上述步骤⑶中,加法运算转化成异或运算g(x,y)的原理为,已知A=x+r, 八、1'为已知值,1不能参与运算,求;^ = :^?〃,即输入(4,1'),求输出父=8(4,1')算 法如下:已知/- +r+ 1 = 0 ,则X= (W-r)十r=(d+r+1)十(厂+ 1)十r十(r+ 1),对于 A"' =(/f+ /- +1)?(r+1),Vy,可得W??Q-丨'其中,K为 32,I^k-J两足:
[0104]上述步骤(6)中异或(布尔)运算转化成加法(算术)运算h(x,y)的 原理为:已知义=X十^,X、r为已知值,X不能参与运算,求A=x+r,即输入(X, r),求输出A=h(X,r)的算法如下:已知Z=(义十r) +r=(X十r) -r+ 2r,对 于/T= (Z十,)-/-,Vx可得J' = [(X十;k)-,]十X十[(X十(r十,))-(r?x)],得 /1 = /1_+2,-=(((义?;)/)-7)?义?((义?(厂?;)/)) - (7-?;)/)))+2厂,即将加法掩码转化成异或 掩码,具体算法步骤如下:
[0109] J=X十x °
[0110] A=A-y
[0111] J =指;T
[0112] A=A+(r<< 1)
[0113] 本申请的技术方案设计的掩码防护方法运算中每个节点所带的掩码值均不相同, 每轮S盒输出的掩码值也不相同,可抵抗汉明重量和汉明距离的一阶分析,此外,二阶分析 也无法找到任何可利用的泄漏点。其优点在于:(1)针对现有对ZUC算法的侧信道分析,创 新地提出了对ZUC算法的抗侧信道掩码防护方法,使用本发明提出的新方法能够更有效、 全面地抵抗侧信道分析;(2)对于ZUC算法的软硬件实现,采用该掩码防护方法,算法中无 任何信息泄漏点,可以抵抗一阶侧信道分析;(3)采用该掩码防护方法,算法中无任何两个 相关的信息点,可以抵抗二阶侧信道分析;(4)该掩码防护方法中的S盒掩码方案可有效地 提尚效率。
【附图说明】
[0114] 图1是祖冲之算法逻辑层次结构图;
[0115] 图2是Stl盒结构构建示意图;
[0116] 图3是对轮输出为算术掩码的ZUC序列密码算法掩码防护原理图;
[0117] 图4是ZUC算法的初始化能量迹;
[0118] 图5是ZUC算法初始化运算滤波对齐后的能量迹;
[0119] 图6是另一检验中仿真得到的ZUC算法能量迹;;
【具体实施方式】
[0120] 下面对本发明的技术方案进行具体描述,以智能卡芯片为载体,利用本申请的技 术方案实现ZUC算法的掩码防护功能。这里,选择掩码的轮数N= 5。具体步骤如下所示, 参见图3 :
[0121] (1)对于初始化前5轮,选取4个32比特随机数叫、m2、m3、m4,其中In1= (c。,C1, 。2,。3),爪2(d〇,di,dg,dg);
[0122] (2)将第1轮的VR2分别与mpm2相加,得到带掩码输入Ri+nii、R2+m2;若是第 r(rG{1,L,N-1})轮的RnR2输入,由于前1轮S盒输出带有掩码防护SRfmpVm2,无需 再加上掩码值;
[0123] (3)对于前N轮中每1轮的输入X1,加上掩码防护转化成对前N轮中每 1轮的输入X2,加上掩码防护转化成(Z2 ?w4)-m2;
[0124] (4)!^+!!^加上X^mfm3得到Ri+Xi+n^=Wi+rnyR2+1112加上(义2十W4)-W2 得到 R2 +(X2 ?m4);
[0125] (5)已知W1+!!^m3,将加法运算WAm3通过函数g(Wi+m3,m3)运算转换成 %十W3;已知+(X2十w4)和I2 ?m4的值,将加法运算7?2 +(X2 ?w4)通过函数 +(X2 ?w4),(X2 ?w4))」运算转换成/?2 ? (X2十w4) =PT2十W4;
[0126](6)经过16位移位后,左右两边分别为网./IlIlw4 //)、
算;
行低通滤波并对齐,得到图5结果。选择前5轮的能量迹部分,连续分析前5轮,选择S盒 输出的汉明重量模型,以获得k5、k6、k7、k8、k9、k1(l、kn、k12、k13的值。CPA分析结果如下表1 所示,分别罗列了前4个最大相关系数对应的密钥猜测值及采样时间点位置,从表1的结果 可知无法获得正确的密钥值。
[0131] 表1 :本申请的带掩码防护方法的ZUC算法通过CPA分析结果

[0134] 利用二阶能量分析进一步检验本申请方案的掩码防护有效性,如下:采集智能卡 芯片进行ZUC算法运算中的能耗曲线,对其进行二阶的能量分析,选择相邻轮S盒输出之间 的减法作为攻击点,预处理方法采用了归一化、减法绝对值方法。对于掩码防护方法中,第 r(r= 0,1,L,4)轮的左右S盒输出分别为UmpUm2,第r+1轮的左右S盒输出分别为 Rr+u+mpRr+1,2+m2,其中,mpm2为 32 比特的掩码,r依次 0,1,2,3,4,Rcm=RQ,2= 0。将前 后轮的输出进行减法运算,消去掩码叫、m2,得到攻击点分别为R,+1,i-Ru、R,+1,2-Rn2,对于第 r+1轮分析,前1轮H2为已知,从而仅需猜测RHpIW2中的密钥值,使用DPA/CPA分 析获取最优猜测密钥。前5轮分析的时间复杂度为9X28。具体实验步骤如下所示:1)在 无噪声条件下,仿真出掩码方案的能量迹,每轮S盒输出带有相同的加法掩码,如图6所示, 框中为初始化前5轮,前后Rnl、Rrt,pRn2、Rrt,2之间带有相同掩码,其中,初始输入的密钥 k0 = OO^ A:, = I Kk7 =22^ k, =33^ kA~44^k.= 55,kr = 66^kn -11 88iQQt /hhII〃I , 2)依次射斤 ks=^、k9=99,k'Q=aa、ku=bb、fc'2=cc、ku=dd、k\4:ee、k'5=JJ 前5轮,选择攻击点为前后轮S盒输出的减法值。分析当前轮时,采用最强攻击条件,假设 前几轮密钥是已知正确的,选择S盒相邻轮减法的汉明重量模型进行CPA/DPA分析,以获得 k5、k6、k7、k8、k9、k1(l、kn、k12、k13的值。预处理方法为归一化的分析结果如表2所示,当相关 系数与最大相关系数比率值最小,其相关系数最大值对应的密钥猜测值为正确密钥。由表 2可知,在已知前几轮正确密钥的前提下,通过二阶分析无法获取正确密钥。
[0135]表2:本申请的带掩码防护方法的ZUC算法通过二阶CPA分析结果

[0138] 增加能量迹条数为30000条,分别用3种预处理方式,即归一化、减法绝对值及乘 法分析第1轮,结果如表3,同样三种方法均无法获取正确密钥。
[0139] 表3 :能量迹条数为30000条分别用3种预处理方式的分析结果

[0142] 上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员 对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之 内。
【主权项】
1. 一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,其特征在于,该方法包 括如下步骤: (1) 选择需要掩码的轮数,初始化前N轮,1彡N彡32,rG{0,1,L,N-1}为当前轮数, 4 个 32 比特随机数叫、m2、m3、m4,其中In1=(c。,C1,c2,c3),m2=(d。,屯,d2,d3),第 1 轮的 RnR2分别与m^m2相加,得到带掩码输入RAmnR2+m2;若是第r(rG{1,L,N-1})轮的Rn R2输入,由于前1轮S盒输出带有掩码防护为Ri+nii、R2+m2,无需再加上掩码值; (2) 对于前N轮中每1轮的输入加上掩码防护转化成X^mfm3和 (X2十所4)-所2; (3) 通过尺1+1111加上父1-1]11+1]1 3得到1?1+父1+1]13=11+1]13;1? 2+1]12加上(12〇奶4)_所2得到 尽+(X2?m4);得到的Wfn^m3,将加法运算W1+!!!^过转化函数为g(x,y)转成异或运算 %十%;得到的/?2 +(X2 ?%)和12十叫将加法运算&+(A0叫)通过转化函数为g(x,y) 转成异或运算十= ,转化函数为g(x,y)定义为J十r=g(x+r,r); ⑷经过16位移位后,左1? 右边% ?m4分别为(^JW'w)?(fflu||%)、(丨U 再对应分别进行1^线性运算,左边转化成以心.P%)?以气;L2线性运算后,右边转化成L2(W1, H WIM) L2Im4J \\mlH),其中,Ljmj |m4,H) = (a〇,叫,七,B3),!^(mj |m3,H) = (b0, b" b2, b3);的R1+!!^R2+m2,依次进行N轮迭代运算; (6)对于F函数的W输出,对每1轮的X。加掩码防护得到(X。? (-w2)) - % ,则i?, +W1 + (X。? (-W2)) -W1 = + (Z。? (-W2));由于A1 + (X0 ? (-W2))和(X。? (-m2))为 已知值,&+(;?(-%))通过转化函数g(X,y)转换成异或预算;由于 戽?(义?(-%))和(-m2)为已知值,(A?j〇)?(_w2通过转化函数h(x,y)转换成加法运 算得(尋?1。)+ (-m2);(專?;) + (-%)加上R2+m@可得到(苹十Z。)+晃,获得正确的W 输出,转化函数为h(x,y)定义为:x+r=M>?r,/-)。2. 根据权利要求1所述的轮输出为布尔掩码的ZUC序列密码算法掩码防护方法, 其特征在于,步骤(3)中,加法运算转化成异或运算g(x,y)的原理为,已知A=x+r, A、r为已知值,X不能参与运算,求Z= X十r,即输入(A,r),求输出X=g(A,r)算 法如下:已知广+ 7+1 = 0,则X= 十r=(J+ 7 +l)十(7+1)十r十(7+1),对于 X' = 〇4 + 7+l)十(7+1) ,Vr可得X' =J十办十,其中,K为 32,V1 满足:得1 = 10「= 4?27@11?厂?(7+1),即将加法掩码转化成异或掩码,其具体算法步骤 为:3.根据权利要求1所述轮输出为算术掩码的ZUC序列密码算法掩码防护方法,其特 征在于,步骤(6)中异或(布尔)运算转化成加法(算术)运算h(x,y)的原理为:已知 X=X十r,X、r为已知值,X不能参与运算,求A=x+r,即输入(X,r),求输出A=h(X,r) 的算法如下:已知J= 十〇 + 十r)-r+ 2r,对于i= 十r)-r,V/可得 J1 =[(X?y)-灼十A' ?[(Z十(r十y)) -(r? /)],得 /1 =』'+ 2/- =(((I?7) -/)十I?((I?(r? 沖-(r?J/)))+2r,即 将加法掩码转化成异或掩码,具体算法步骤如下:
【专利摘要】本发明公开了一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,该方法包括:(1)选择需要掩码的轮数,初始化前N轮,通过随机数得到带掩码输入R1+m1、R2+m2;(2)对于前N轮中每1轮的输入X1和X2分别加上掩码防护后通过转化函数为g(x,y)将加法运算转成异或运算;(4)进行16位移运算,L1和L2线性运算;(5)分别进行SL′、SR′运算;(6)对于F函数的W输出,通过转化函数h(x,y)转换成加法运算获得正确的W输出。本申请的技术方案设计的掩码防护方法运算中每个节点所带的掩码值均不相同,每轮S盒输出的掩码值也不相同,可抵抗汉明重量和汉明距离的一阶分析,此外,二阶分析也无法找到任何可利用的泄漏点。
【IPC分类】H04L9/00, H04L9/06
【公开号】CN104967509
【申请号】CN201510221467
【发明人】罗鹏, 李大为, 曹伟琼, 冯秀涛, 陈华, 李国友
【申请人】国家密码管理局商用密码检测中心
【公开日】2015年10月7日
【申请日】2015年5月5日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1