[发明专利]基于非线性变换的SM4白盒实现方法有效
| 申请号: | 201610555295.8 | 申请日: | 2016-07-15 |
| 公开(公告)号: | CN107623566B | 公开(公告)日: | 2022-09-06 |
| 发明(设计)人: | 范修斌;白琨鹏 | 申请(专利权)人: | 青岛博文广成信息安全技术有限公司 |
| 主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/06 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 266200 山东省青岛市*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 非线性 变换 sm4 实现 方法 | ||
1.基于非线性变换的SM4白盒实现方法,其特征在于:SM4白盒加密/解密方法共有32轮;每轮需要16个D盒、4个R盒和136个X盒;
其中,D盒是用于将每轮输入的32比特数据进行状态变换的查找表,定义如下:
其中:
(1)Dr,i,j算子8进32出,其为左作用算子,即Dr,i,j的作用方式为
(2)r=1,2,…,32是当前的轮数,i,j=0,1,2,3,i由右向左增序,其为输入的位置参数,j由左向右增序,其为输入分割位置的参数;
(3)PD和PX都是随机选取的4比特可逆非线性变换;
(4)
(5)MBr+i-1是在GF(2)上随机选取的32×32可逆线性变换,是MBr+i-1的逆变换,是的第j个32×8子变换,mb是在GF(2)上随机选取的8×8可逆线性变换;
R盒是用于密钥保护的查找表,定义如下:
其中:
(1)Rr,j算子16进32出,其为左作用算子,即Rr,j的作用方式为由左向右增序;
(2)
(3)
(4)XOR(x)是左作用算子,对于与x等长的值y,其中为比特异或运算;
(5)kr是标准SM4密码算法第r轮的32比特轮密钥,kr,j是kr的第j个字节;
(6)S是标准SM4密码算法轮函数中的8比特S盒,M是标准SM4密码算法轮函数中的32比特循环移位生成的线性变换,Mj是M的第j个32×8子变换,M=(M0,M1,M2,M3);
(7)MB与D盒中的MB一致;
(8)PR是随机选取的4比特可逆非线性变换;
X盒是用于连接D盒和R盒、实现异或运算的查找表,以两个4比特数据为输入,输出一个新的4比特数据,X盒分为两种:X0和X1,其定义如下:
其中:
(1)sid=0,1;
(2)对于X0,nib=0,1;
(3)对于X1,nib=0,1,…,7;
整个SM4白盒实现方法以(x′3,x′2,x′1,x′0)为输入,经过32轮变换后,输出(x′35,x′34,x′33,x′32),其中要保护E3,E2,E1,E0,E35,E34,E33,E32以及它们的逆:
第r轮以4个32比特数值,
(x′r+2,x′r+1,x′r,x′r-1)=(Er+2(xr+2),Er+1(xr+1),Er(xr),Er-1(xr-1))
为输入,其中:
(a)
PX1,l,6,2t,PX1,l,6,2t+1,t=0,1,2,3是随机选取的4比特可逆非线性变换;MBl是在GF(2)上随机选取的32×32可逆线性变换;
(b)l=r-1,r,r+1,r+2,r=1,2,…,32;
(c)xl是标准SM4密码算法的中间值;
计算一个新的32比特数值x′r+3=Er+3(xr+3),每轮计算步骤如下:
(1)sr,0←Dr,1,0(x′r,0),sr,1←Dr,1,2(x′r,2);
(2)sr,0←(X0,r,0,0,0,0,X0,r,0,0,1,0,…,X0,r,0,3,0,0,X0,r,0,3,1,0)(sr,0,Dr,1,1(x′r,1));注:sr,0=(sr,0,0,…,sr,0,7),Dr,1,1(x′r,1)=((Dr,1,1(x′r,1))0,…,(Dr,1,1(x′r,1))7),其中t=0,1,…,7;
(3)sr,0←(X0,r,0,0,0,1,X0,r,0,0,1,1,…,X0,r,0,3,0,1,X0,r,0,3,1,1)(sr,0,Dr,2,0(x′r+1,0));
(4)sr,0←(X0,r,0,0,0,2,X0,r,0,0,1,2,…,X0,r,0,3,0,2,X0,r,0,3,1,2)(sr,0,Dr,2,1(x′r+1,1));
(5)sr,0←(X0,r,0,0,0,3,X0,r,0,0,1,3,…,X0,r,0,3,0,3,X0,r,0,3,1,3)(sr,0,Dr,3,0(x′r+2,0));
(6)sr,0←(X0,r,0,0,0,4,X0,r,0,0,1,4,…,X0,r,0,3,0,4,X0,r,0,3,1,4)(sr,0,Dr,3,1(x′r+2,1));
(7)sr,1←(X0,r,1,0,0,0,X0,r,1,0,1,0,…,X0,r,1,3,0,0,X0,r,1,3,1,0)(sr,1,Dr,1,3(x′r,3));
(8)sr,1←(X0,r,1,0,0,1,X0,r,1,0,1,1,…,X0,r,1,3,0,1,X0,r,1,3,1,1)(sr,1,Dr,2,2(x′r+1,2));
(9)sr,1←(X0,r,1,0,0,2,X0,r,1,0,1,2,…,X0,r,1,3,0,2,X0,r,1,3,1,2)(sr,1,Dr,2,3(x′r+1,3));
(10)sr,1←(X0,r,1,0,0,3,X0,r,1,0,1,3,…,X0,r,1,3,0,3,X0,r,1,3,1,3)(sr,1,Dr,3,2(x′r+2,2));
(11)sr,1←(X0,r,1,0,0,4,X0,r,1,0,1,4,…,X0,r,1,3,0,4,X0,r,1,3,1,4)(sr,1,Dr,3,3(x′r+2,3));
(12)x′r+3←Dr,0,0(x′r-1,0);
(13)x′r+3←(X1,r,0,0,…,X1,r,0,7)(x′r+3,Dr,0,1(x′r-1,1));
(14)x′r+3←(X1,r,1,0,…,X1,r,1,7)(x′r+3,Dr,0,2(x′r-1,2));
(15)x′r+3←(X1,r,2,0,…,X1,r,2,7)(x′r+3,Dr,0,3(x′r-1,3));
(16)x′r+3←(X1,r,3,0,…,X1,r,3,7)(x′r+3,Rr,0(sr,0,0,sr,1,0));
(17)x′r+3←(X1,r,4,0,…,X1,r,4,7)(x′r+3,Rr,1(sr,0,1,sr,1,1));
(18)x′r+3←(X1,r,5,0,…,X1,r,5,7)(x′r+3,Rr,2(sr,0,2,sr,1,2));
(19)x′r+3←(X1,r,6,0,…,X1,r,6,7)(x′r+3,Rr,3(sr,0,3,sr,1,3));
其中,字母D、R、X表示D盒、R盒、X盒,且:
(1)x′l,j是x′l的第j个字节;
(2)sr,sid是32比特中间值;
(3)sr,sid,j是sr,sid的第j个字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛博文广成信息安全技术有限公司,未经青岛博文广成信息安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610555295.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电镀用带档电角的雾灯模具
- 下一篇:一种铜包铝电镀用导电轮





