您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 我国商用密码SMS4
①分组密码:数据分组长度=128位、密钥长度=128位数据处理单位:字节(8位),字(32位))②密码算法结构:基本轮函数加迭代解密算法与加密算法相同我国商用密码SMS4二、SMS4密码概况②密码算法结构:我国商用密码SMS4基本轮函数128位明文128位密文密钥扩展128位密钥迭代控制ReverseOrderR128bitX0X1X2X3X1X2X3X4X2X3X4X5X31X32X33X34X32X33X34X35X0Y1Y2Y3YY0rk1rk31rk2iX1iXirkiX3iX3iX2iX1iX4iX35X32X33X34X035XY332XY233YX134XYTth+1theiroundReverseOrderR128bitth32theroundst1theroundnd2theround三、SMS4密码算法1、基本运算:①模2加:⊕,32比特异或运算②循环移位:i,把32位字循环左移i位2、基本密码部件:①非线性字节变换部件S盒:☆8位输入、8位输出。☆本质上,8位的非线性置换。☆设输入位a,输出位b,表示为:b=S_Box(a)我国商用密码SMS48位输入8位输出S盒(置换)S盒中数据为16进制数我国商用密码SMS4☆S盒的置换规则:以输入的前半字节为行号,后半字节为列号,行列交叉点处的数据即为输出。举例:设输入为“ef”,则行号为e,列号为f,于是S盒的输出值为表中第e行和第f列交叉点的值,Sbox(‘ef’)=‘84’。②非线性字变换:32位字的非线性变换▼4个S盒并行置换;▼设输入字A=(a0,a1,a2,a3),输出字B=(b0,b1,b2,b3),B=(A)=(S_box(a0),S_box(a1),S_box(a2),S_box(a3))我国商用密码SMS4②非线性变换:32位字的非线性变换输入字A非线性变换输出字B我国商用密码SMS48位输入a08位输出b0S盒(置换)8位输入a18位输出b1S盒(置换)8位输入a28位输出b2S盒(置换)8位输入a38位输出b3S盒(置换)③字线性部件L变换:☆32位输入、32位输出。☆设输入位B,输出位C,表为:C=L(B)☆运算规则:C=L(B)=B⊕(B2)⊕(B10)⊕(B18)⊕(B24)④字合成变换T:☆由非线性变换τ和线性变换L复合而成;☆T(X)=L(τ(X))。先S盒变换,再L变换。我国商用密码SMS43、轮函数F:☆输入数据:(X0,X1,X2,X3),128位,四个32位字。☆输入轮密钥:rk,32位字。☆输出数据:32位字。☆轮函数F:F(X0,X1,X2,X3,rk)=X0⊕T(X1⊕X2⊕X3⊕rk)我国商用密码SMS43、轮函数F:2101824我国商用密码SMS4X0X1X2X3rkSSSSSSSSSSSSSSSSSSSS输出4、密钥扩展算法:•输入加密密钥:MK=(MK0,MK1,MK2,MK3)•输出轮密钥:rki,i=0,1…,30,31•中间数据:Ki,i=0,1…,34,35•密钥扩展算法:①(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)②Fori=0,1…,30,31Doiki=Ki+4=Ki⊕T’(Ki+1⊕Ki+2⊕Ki+3⊕CKi)•说明:T’变换与加密算法轮函数中的T基本相同,只将其中的线性变换L修改为以下:L’L’(B)=B⊕(B13)⊕(B23)三、我国商用密码SMS431X32X33X34XL28rk35X32X33X34X035XY332XY233YX134XY0123(,,,)YYYYYL31rk29X28X30X31XL29rk30X29X31X32XL30rk31X30X32X33X31K32K33K34K'L28CK35K31CK29K28K30K31K'L29CK30K29K31K32K'L30CK31K30K32K33K32K33K34K'L4、密钥扩展算法:①常数FK•在密钥扩展中使用一些常数FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC)。我国商用密码SMS44、密钥扩展算法:②固定参数CK•32个固定参数Cki,i=0,1,2…3100070e15,1c232a31,383f464d,545b6269,70777e85,8c939aa1,a8afb6bd,c4cbd2d9,e0e7eef5,fc030a11,181f262d,343b4249,50575e65,6c737a81,888f969d,a4abb2b9,c0c7ced5,dce3eaf1,f8ff060d,141b2229,30373e45,4c535a61,686f767d,848b9299,a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,10171e25,2c333a41,484f565d,646b7279产生规则:Ckij=(4i+j)×7(mod256),i=0,1,2…31,j=0,1,…3。我国商用密码SMS47、实例:•明文:0123456789abcdeffedcba9876543210•密钥:0123456789abcdeffedcba9876543210•密文:681edf34d206965e86b3e94f536e42468、安全性①国家专业机构设计。算法简洁,以字和字节为处理单位,对合运算,符合当今分组密码主流。②专业机构进行了密码分析,因此是安全的。③民间学者对21轮SMS4进行了差分密码分析。④尚需经过实践检验。三、我国商用密码SMS4作业:1、分析SMS4在密码结构上与DES、AES有何异同?2、根据SMS4算法,编程研究SMS4的S盒的以下特性:①明文输入改变1位,密文输出平均改变多少位?②S盒输入改变1位,S盒输出平均改变多少位?③L输入改变1位,L输出平均改变多少位?④对于一个输入,连续施加S盒变换,变换多少次时出现输出等于输入?3、我国公布商用密码算法有何意义?提交:源代码和实验报告。三、我国商用密码SMS4
本文标题:我国商用密码SMS4
链接地址:https://www.777doc.com/doc-3925689 .html