[发明专利]一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法有效
申请号: | 201510221467.3 | 申请日: | 2015-05-05 |
公开(公告)号: | CN104967509B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 罗鹏;李大为;曹伟琼;冯秀涛;陈华;李国友 | 申请(专利权)人: | 国家密码管理局商用密码检测中心 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/00 |
代理公司: | 北京东正专利代理事务所(普通合伙) 11312 | 代理人: | 刘瑜冬 |
地址: | 100036*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明公开了一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,该方法包括:(1)选择需要掩码的轮数,初始化前N轮,通过随机数得到带掩码输入R |
||
搜索关键词: | 一种 输出 算术 掩码 zuc 序列 密码 算法 防护 方法 | ||
【主权项】:
1.一种轮输出为算术掩码的ZUC序列密码算法掩码防护方法,其特征在于,该方法包括如下步骤:(1)选择需要掩码的轮数,初始化前N轮,1≤N≤32,r∈{0,1,…,N-1}为当前轮数,选择4个32比特随机掩码m1 、m2 、m3 、m4 ,令m1 =(c0 ,c1 ,c2 ,c3 ),m2 =(d0 ,d1 ,d2 ,d3 ),ci 、di (i=0,1,2,3)分别为8位随机数,第1轮F函数的输入R1 、R2 分别与m1 、m2 相加,得到带掩码输入R1 +m1 、R2 +m2 ;若是第r(r∈{1,…,N-1})轮F函数输入R1 、R2 ,由于前1轮S盒输出带有掩码防护为R1 +m1 、R2 +m2 ,无需再加上掩码值;(2)对于前N轮中每1轮的输入X1 和X2 分别加上掩码防护转化成X1 -m1 +m3 和 其中Xi (0≤i≤3)为ZUC算法LFSR寄存器单元中抽取比特组成的32比特字;(3)R1 +m1 加上X1 -m1 +m3 得到R1 +X1 +m3 =W1 +m3 ;R2 +m2 加上 得到 其中W1 =X1 +R1 ;已知W1 +m3 、m3 ,代入转化函数g(x,y)可转成异或运算 已知 和 代入转化函数为g(x,y)转成异或运算 其中 转化函数g(x,y)定义为: (4)左右两边 和 经过16位移位后,分别为 其中mi,H 、mi,L (i=3,4)分别为mi 的高/低16比特值,Wi,H 、Wi,L (i=1,2)分别为Wi 的高/低16比特值;再对应分别进行L1 线性运算,左边转化成 L2 线性运算后,右边转化成 令L1 (m3,L ||m4,H )=(a0 ,a1 ,a2 ,a3 ),L2 (m4,L ||m3,H )=(b0 ,b1 ,b2 ,b3 ),ai 、bi (i=0,1,2,3)分别为8位随机数;(5)进行S盒掩码运算,左边32位S盒SL '共包括4个8位小S盒S'L,0 、S'L,1 、S'L,2 、S'L,3 ,即SL '=(S'L,0 ,S'L,1 ,S'L,2 ,S'L,3 ),其中, i∈{0,1,2,3},“+”为32位加法运算, 右边32位S盒SR '共包括4个8位小S盒S'R,0 、S'R,1 、S'R,2 、S'R,3 ,SR '=(S'R,0 ,S'R,1 ,S'R,2 ,S'R,3 ),其中, 运算后得到新1轮的R1 +m1 、R2 +m2 ,依次进行N轮迭代运算;(6)对于F函数的W输出,对每1轮的X0 加掩码防护得到 则 已知 和 通过转化函数g(x,y)可得 已知 和(-m2 ),通过转化函数h(x,y)可得 加上R2 +m2 可得 获得正确的W输出,转化函数为h(x,y)定义为:
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家密码管理局商用密码检测中心,未经国家密码管理局商用密码检测中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510221467.3/,转载请声明来源钻瓜专利网。