[发明专利]基于非线性变换的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个字节。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛博文广成信息安全技术有限公司,未经青岛博文广成信息安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610555295.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top