现代密码学:第30讲 SM4算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代密码学第三十讲SM4算法信息与软件工程学院

第三十讲SM4算法

SM4术语说明

SM4轮函数

SM4密钥扩展

SM4概况

•SM4分组密码算法是国家密码管理局于2006年1月6日公布的无线局域网产品使用的密码算法,是国内官方公布的第一个商用密码算法。

•SM4是一个分组密码算法,分组长度和密钥长度均为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。

•它的解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

SM4算法的术语说明

表示e-比特的向量集,中的元素称为字节,中的元素称为字

•S 盒是一个固定的8比特输入8比特输出的置换,记为•SM4中的采用了两个基本运算:,32比特异或;,32比特

循环左移i 位。

82

Z 322

Z (.)

Sbox ⊕i <<

SM4算法的术语说明(续)

•SM4算法的加密密钥长度为128比特,表示为,

其中,为字。

•轮密钥为,

,为字。轮密钥由加密密钥通过密钥扩展算法生成。

为系统参数,

•为固定参数,用于密钥扩展算法。

)

,,,(3210MK MK MK MK MK =i MK 3,2,1,0=i ),,,(3110rk rk rk i rk ),,,(3210FK FK FK FK FK =),,,(3110CK CK CK CK =

第三十讲SM4算法

SM4术语说明

SM4轮函数

SM4密钥扩展

SM4加密算法整体结构

SM4 的轮函数

•设输入为,轮密钥为,则轮

函数为:

•其中称为合成置换,是一个由非线性变换和一个线性变换复合而成的可逆变换,即

4322

321)(),,,(Z X X X X i i i i ∈+++32

2Z rk i ∈322

322:Z Z T →(.))

((.)τL T =i 4123123(,,,,)(),0,1,

,31

i i i i i i i i i i X F X X X X rk X T X X X rk i +++++++==⊕⊕⊕⊕=

X i X i+1X i+2

X i+3

rk i

a 0a 1a 2a 3

b 0b 1b 2b 3

s

s

s

s

B<<<2B<<<10B<<<18

B<<<24

C

X i+4

A τ

B

函数T

L

SM4的S盒

y

0123456789a b c d e f

x 0d690e9fe cc e13d b716b614c228fb2c05 12b679a762a be04c3aa44132649860699 29c4250f491ef987a33540b43ed cf ac62 3e4b31c a9c908e89580df94fa758f3f a6 44707a7fc f37317ba83593c19e6854f a8 5686b81b27164da8b F8eb0f4b70569d35 61e240e5e6358d1a225227c3b01217887 7d40046579f d327524c3602e7a0c4c89e 8ea bf8a d240c738b5a3f7f2ce f96115a1 9e0ae5d a49b341a55ad933230f58c b1e3 a1d f6e22e8266ca60c02923ab0d534e6f b d5db3745de fd8e2f03ff6a726d6c5b51 c8d1b af92bb dd bc7f11d95c411f105a d8 d0a c13188a5cd7b bd2d74d012b8e5b4b0 e8969974a0c96777e65b9f109c56e c684 f18f07d ec3a dc4d2079ee5f3e D7cb3948

SM4的S 盒说明

•非线性变换τ中所使用的S 盒是一个具有很好密码学特性的、由8比特输入产生8比特输出的置换

•在设计原理上,SMS4比AES 的S 盒设计多了一个仿射变换

•即•SMS4有很高的灵活性,所采用的S 盒可以灵活地被替换,以应对突发性的安全威胁。算法的32轮迭代采用串行处理,这与AES 中每轮使用代换和混淆并行地处理整个分组有很大不同。

B B Ax A y ++=-1

)(

SM4的加密算法和解密算法

•设明文输入为,密文为,轮密钥为。加密变换为:

•SM4算法的解密变换和加密变换结构相同,不同的仅是轮密钥的使用顺序。

•加密时轮密钥的使用顺序为,•解密时轮密钥的使用顺序为。

4322

3210)

(),,,(Z X X X X ∈43223210)(),,,(Z Y Y Y Y ∈322Z rk i ∈i 4123123(,,,,)(),0,1,,31

i i i i i i i i i i X F X X X X rk X T X X X rk i +++++++==⊕⊕⊕⊕=),,,(),,,(323334353210X X X X Y Y Y Y =)

,,,(3110rk rk rk ),,,(03031rk rk rk

SM4解密的合理性

4012331012331353433323131343332313433323131

(,,,,)

()

()

()()Y F Y Y Y Y rk Y T Y Y Y rk X T X X X rk X T X X X rk T X X X rk X ==⊕⊕⊕⊕=⊕⊕⊕⊕=⊕⊕⊕⊕⊕⊕⊕⊕=)

,,,(),,,(323334353210X X X X Y Y Y Y =i 4123123(,,,,)(),0,1,,31

i i i i i i i i i i X F X X X X rk X T X X X rk i +++++++==⊕⊕⊕⊕=353134333231()

X X T X X X rk =⊕⊕⊕⊕

相关文档
最新文档