[發明專利]基于非線性變換的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.szxzyx.cn/pat/books/201610555295.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種電鍍用帶檔電角的霧燈模具
- 下一篇:一種銅包鋁電鍍用導電輪





