sm4分组密码算法

上传人:简****9 文档编号:101768007 上传时间:2019-09-29 格式:PDF 页数:4 大小:200.54KB
返回 下载 相关 举报
sm4分组密码算法_第1页
第1页 / 共4页
sm4分组密码算法_第2页
第2页 / 共4页
sm4分组密码算法_第3页
第3页 / 共4页
sm4分组密码算法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《sm4分组密码算法》由会员分享,可在线阅读,更多相关《sm4分组密码算法(4页珍藏版)》请在金锄头文库上搜索。

1、无线局域网产品使用的 SMS4 密码算法 无线局域网产品使用的 SMS4 密码算法 本算法是一个分组算法。该算法的分组长度为 128 比特,密钥长度为 128 比特。加密算 法与密钥扩展算法都采用 32 轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮 密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。 1.1. 术语说明 术语说明 1.11.1 字与字节 字与字节 用表示 e-比特的向量集,中的元素称为字,中的元素称为字节。 e Z2 32 2 Z 8 2 Z 1.21.2 S 盒 S 盒 S 盒为固定的 8 比特输入 8 比特输出的置换,记为 Sbox(.)。 1.31.3 基本运算

2、 基本运算 在本算法中采用了以下基本运算: 32 比特异或 i 32 比特循环左移 i 位 1.41.4 密钥及密钥参量 密钥及密钥参量 加密密钥长度为 128 比特,表示为MK=(MK0, MK1, MK2, MK3),其中MKi(i=0,1,2,3)为 字。 轮密钥表示为(rk0, rk1, , rk31),其中rki(i=0,31)为字。轮密钥由加密密钥生成。 FK=(FK0, FK1, FK2, FK3)为系统参数,CK=(CK0, CK1, CK31)为固定参数,用于密钥扩 展算法,其中FKi(i=0,3)、CKi(i=0,31)为字。 2.2. 轮函数 F 轮函数 F 本算法采用非

3、线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。 设输入为,轮密钥为,则轮函数 F 为: 432 23210 )(),(ZXXXX 32 2 Zrk )(),( 32103210 rkXXXTXrkXXXXF= 1 2.12.1 合成置换 T 合成置换 T T:, 是一个可逆变换, 由非线性变换 和线性变换 L 复合而成,即 T(.)=L(.)。 32 2 32 2 ZZ 2.1.1 非线性变换 2.1.1 非线性变换 由 4 个并行的 S 盒构成。 设输入为, 输出为,则 48 23210 )(),(ZaaaaA= 48 23210 )(),(ZbbbbB= )(),(),(

4、),()(),( 32103210 aSboxaSboxaSboxaSboxAbbbb= 2.1.2 线性变换 L 2.1.2 线性变换 L 非线性变换 的输出是线性变换 L 的输入。设输入为,输出为,则 32 2 ZB 32 2 ZC )24()18()10()2()(=BBBBBBLC 2.22.2 S 盒 S 盒 S 盒中数据均采用 16 进制表示。 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 d6 90 e9 fe cc e1 3db716b614c2 28 fb 2c 05 1 2b 67 9a 76 2a be 04c3 aa 44132649 86 06

5、99 2 9c 42 50f4 91 ef 987a 33540b43ed cf ac 62 3 e4 b3 1c a9 c9 08e8 9580df 94fa 75 8f 3f a6 4 47 07 a7 fc f3 7317ba 83593c 19e6 85 4f a8 5 68 6b 81b2 71 64da 8bf8 eb 0f 4b70 56 9d 35 6 1e 24 0e 5e 63 58d1a2 25227c 3b01 21 78 87 7 d4 00 4657 9f d327524c 3602e7 a0 c4 c8 9e 8 ea bf 8a d2 40 c7 38b5a3

6、f7 f2 ce f9 61 15 a1 9 e0 ae 5da4 9b 341a 55ad 933230f5 8c b1 e3 a 1d f6 e2 2e 82 66ca 60c0 2923ab 0d 53 4e 6f b d5 db 3745 de fd 8e 2f 03ff 6a 726d 6c 5b 51 c 8d 1b af 92 bb ddbc 7f 11 d95c 411f 10 5a d8 d 0a c1 3188 a5 cd 7bbd2d74d012b8 e5 b4 b0 e 89 69 974a 0c 96777e 65b9f1 09c5 6e c6 84 f 18 f0

7、7dec 3a dc 4d2079ee 5f 3e d7 cb 39 48 例:输入ef,则经 S 盒后的值为表中第 e 行和第 f 列的值,Sbox(ef)= 84。 2 3.3. 加/解密算法 加/解密算法 定义反序变换 R 为: ),(),( 01233210 AAAAAAAAR= ,。 3 , 2 , 1 , 0, 32 2 =iZAi 设明文输入为,密文输出为,轮密钥 为。则本算法的加密变换为: 432 23210 )(),(ZXXXX 432 23210 )(),(ZYYYY 31,.,2 , 1 , 0, 32 2 =iZrki . 13,.,1 , 0, )(),( 32132

8、14 = + irkXXXTXrkXXXXFX iiiiiiiiiii ),(),(),( 32333435353433323210 XXXXXXXXRYYYY= 。 本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。 加密时轮密钥的使用顺序为: (rk0, rk1, , rk31) 解密时轮密钥的使用顺序为: (rk31, rk30, , rk0) 4.4. 密钥扩展算法 密钥扩展算法 本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。 加密密钥MK=(MK0, MK1, MK2, MK3),MKi,i0,1,2,3; 32 2 Z 令Ki,i0,1,35,轮密钥为,则轮

9、密钥生成方法为: 32 2 Z31,.,1 ,0, 32 2 =iZrk i 首先,(K0,K1,K2,K3)=(MK0 + FK0,MK1 + FK1,MK2 + FK2,MK3 + FK3) 然后,对: 31,.,2, 1 ,0=i )( 3214iiiiiii CKKKKTKKrk= + 说明: (1) T变换与加密算函数中的 T 基本相同, 只将其中的线性变换 L 修改为以下: L L(B)=B + (B13) + (B23); (2)系统参数 FK 的取值,采用 16 进制表示为: FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B

10、27022DC) (3)固定参数 CK 的取值方法为: 设cki,j为CKi的第j字节 (i=0,1,31; j=0,1,2,3) , 即CKi = (cki,0, cki,1, cki,2, cki,3) , 则ck 48 2) (Z i,j = (4i+j)7(mod 256) 。32 个固定参数CKi,其 16 进制表示为: 00070e15, 1c232a31, 383f464d, 545b6269, 70777e85, 8c939aa1, a8afb6bd, c4cbd2d9, e0e7eef5, fc030a11, 181f262d, 343b4249, 50575e65, 6c7

11、37a81, 888f969d, a4abb2b9, c0c7ced5, dce3eaf1, f8ff060d, 141b2229, 30373e45, 4c535a61, 686f767d, 848b9299, a0a7aeb5, bcc3cad1, d8dfe6ed, f4fb0209, 10171e25, 2c333a41, 484f565d, 646b7279 3 5.5. 加密实例 加密实例 以下为本算法 ECB 工作方式的运算实例,用以验证密码算法实现的正确性。其中,数 据采用 16 进制表示。 实例一:实例一:对一组明文用密钥加密一次 明 文:明 文: 01 23 45 67 8

12、9 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 轮密钥与每轮输出状态轮密钥与每轮输出状态: rk 0 = f12186f9 X 0 = 27fad345 rk 1 = 41662b61 X 1 = a18b4cb2 rk 2 = 5a6ab19a X 2 = 11c1e22a rk 3 = 7ba92077 X 3 = cc13e2ee rk 4 = 367360f4 X 4 = f87c5bd5 rk 5 = 776a0c61 X 5 = 33220757

13、 rk 6 = b6bb89b3 X 6 = 77f4c297 rk 7 = 24763151 X 7 = 7a96f2eb rk 8 = a520307c X 8 = 27dac07f rk 9 = b7584dbd X 9 = 42dd0f19 rk10 = c30753ed X10 = b8a5da02 rk11 = 7ee55b57 X11 = 907127fa rk12 = 6988608c X12 = 8b952b83 rk13 = 30d895b7 X13 = d42b7c59 rk14 = 44ba14af X14 = 2ffc5831 rk15 = 104495a1 X15

14、= f69e6888 rk16 = d120b428 X16 = af2432c4 rk17 = 73b55fa3 X17 = ed1ec85e rk18 = cc874966 X18 = 55a3ba22 rk19 = 92244439 X19 = 124b18aa rk20 = e89e641f X20 = 6ae7725f rk21 = 98ca015a X21 = f4cba1f9 rk22 = c7159060 X22 = 1dcdfa10 rk23 = 99e1fd2e X23 = 2ff60603 rk24 = b79bd80c X24 = eff24fdc rk25 = 1d2

15、115b0 X25 = 6fe46b75 rk26 = 0e228aeb X26 = 893450ad rk27 = f1780c81 X27 = 7b938f4c rk28 = 428d3654 X28 = 536e4246 rk29 = 62293496 X29 = 86b3e94f rk30 = 01cf72e5 X30 = d206965e rk31 = 9124a012 X31 = 681edf34 密文密文: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46 实例二:实例二:利用相同加密密钥对一组明文反复加密 1000000 次 明 文:明 文: 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 密 文密 文: 59 52 98 c7 c6 fd 27 1f 04 02 f8 04 c3 3d 3f 66 4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号