1、分组密码:数据分组长度=128位、密钥长度=128位数据处理单位:字节( 8位),字(32位)密码算法结构:基本轮函数加迭代解密算法与加密算法相同,我国商用密码SMS4,二、SMS4 密码概况 密码算法结构:,我国商用密码SMS4,基本轮函数,128位明文,128位密文,密钥 扩展,128位密钥,迭代控制,三、SMS4 密码算法 1、基本运算: 模2加:,32 比特异或运算 循环移位: i ,把32位字循环左移i 位 2、基本密码部件: 非线性字节变换部件S盒:8位输入、8位输出。本质上, 8位的非线性置换。设输入位a,输出位b,表示为:b=S_Box(a),我国商用密码SMS4,8位输入,8
2、位输出,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非线性 变换输出字
3、B,我国商用密码SMS4,8位输入a0,8位输出b0,S盒 (置换),8位输入a1,8位输出b1,S盒 (置换),8位输入a2,8位输出b2,S盒 (置换),8位输入a3,8位输出b3,S盒 (置换),字线性部件L变换:32位输入、32位输出。设输入位B,输出位C,表为:C=L(B)运算规则:C=L(B)=B(B2)(B10)(B18) (B24) 字合成变换T:由非线性变换 和线性变换L 复合而成;T(X)=L(X)。先S盒变换,再L变换。,我国商用密码SMS4,3、轮函数F: 输入数据:(X0,X1,X2,X3),128位,四个32位字。 输入轮密钥:rk ,32位字。 输出数据:32位字
4、。 轮函数F :F(X0,X1,X2,X3,rk)= X0 T( X1 X2 X3rk),我国商用密码SMS4,3、轮函数F:2 10 18 24,我国商用密码SMS4,X0,X1,X2,X3,rk,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,输出,4、密钥扩展算法: 输入加密密钥:MK=(MK0,MK1,MK2,MK3) 输出轮密钥:rki ,i=0,1,30,31 中间数据:Ki,i=0,1,34,35 密钥扩展算法: (K0,K1,K2,K3)=(MK0FK0,MK1FK1,MK2FK2,MK3FK3) For i=0,1,30,31 Doiki= K
5、i+4= KiT(Ki+1 Ki+2 Ki+3 CKi) 说明:T 变换与加密算法轮函数中的T 基本相同,只将其中的线性变换L 修改为以下:LL (B)=B(B 13)(B 23),三、我国商用密码SMS4,4、密钥扩展算法: 常数FK 在密钥扩展中使用一些常数FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197 ), FK3=(B27022DC)。,我国商用密码SMS4,4、密钥扩展算法: 固定参数CK 32 个固定参数Cki,i=0,1,23100070e15, 1c232a31, 383f464d, 545b6269,70777e85, 8c939aa1
6、, 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(mod 256) ,i=0,1,231,j=0,1,
7、3 。,我国商用密码SMS4,7、实例: 明文: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 密钥: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 密文: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 468、安全性 国家专业机构设计。算法简洁,以字和字节为处理单位,对合运算,符合当今分组密码主流。 专业机构进行了密码分析,因此是安全的。 民间学者对21轮SMS4进行了差分密码分析。 尚需经过实践检验。,三、我国商用密码SMS4,作业: 1、分析SMS4在密码结构上与DES、AES有何异同? 2、根据SMS4算法,编程研究SMS4的S盒的以下特性:明文输入改变1位,密文输出平均改变多少位?S盒输入改变1位,S盒输出平均改变多少位?L输入改变1位,L输出平均改变多少位?对于一个输入,连续施加S盒变换,变换多少次时出现输出等于输入?3、我国公布商用密码算法有何意义?提交: 源代码和实验报告。,三、我国商用密码SMS4,