- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我国商用密码SMS4 ①分组密码: 数据分组长度=128位、密钥长度=128位 数据处理单位:字节( 8位),字(32位)) ②密码算法结构: 基本轮函数加迭代 解密算法与加密算法相同 我国商用密码SMS4 二、SMS4 密码概况 ②密码算法结构: 我国商用密码SMS4 三、SMS4 密码算法 1、基本运算: ① 模2加:⊕,32 比特异或运算 ② 循环移位: i ,把32位字循环左移i 位 2、基本密码部件: ① 非线性字节变换部件S盒: ☆ 8位输入、8位输出。 ☆本质上, 8位的非线性置换。 ☆设输入位a,输出位b,表示为: b=S_Box(a) 我国商用密码SMS4 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 我国商用密码SMS4 ③字线性部件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位字。 ☆轮函数F : F(X0,X1,X2,X3,rk) = X0 ⊕T( X1⊕ X2⊕ X3⊕rk) 我国商用密码SMS4 3、轮函数F: 2 10 18 24 三、我国商用密码SMS4 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) ② For i=0,1…,30,31 Do iki= Ki+4= Ki⊕T’(Ki+1 ⊕Ki+2 ⊕ Ki+3 ⊕ CKi) 说明:T’ 变换与加密算法轮函数中的T 基本相同,只将其中的线性变换L 修改为以下:L’ L’ (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,2…31 00070e15, 1c232a31, 383f464d, 5
文档评论(0)