说明:收录全文最新的团体标准 提供单次或批量下载
ICS35.040 L80 中华人民共和国国家标准 GB/T32907—2016 信息安全技术 SM4分组密码算法 Informationsecuritytechnology—SM4blockcipheralgorithm 2016-08-29发布 2017-03-01实施 中华人民共和国国家质量监督检验检疫总局 中国国家标准化管理委员会发布目 次 前言 Ⅰ ………………………………………………………………………………………………………… 1 范围 1 ……………………………………………………………………………………………………… 2 术语和定义 1 ……………………………………………………………………………………………… 3 符号和缩略语 1 …………………………………………………………………………………………… 4 算法结构 2 ………………………………………………………………………………………………… 5 密钥及密钥参量 2 ………………………………………………………………………………………… 6 轮函数 F 2 ……………………………………………………………………………………………… 6.1 轮函数结构 2 ………………………………………………………………………………………… 6.2 合成置换 T 2 ……………………………………………………………………………………… 7 算法描述 3 ………………………………………………………………………………………………… 7.1 加密算法 3 …………………………………………………………………………………………… 7.2 解密算法 3 …………………………………………………………………………………………… 7.3 密钥扩展算法 3 ……………………………………………………………………………………… 附录A(资料性附录) 运算示例 5 ………………………………………………………………………… A.1 示例1 5 ……………………………………………………………………………………………… A.2 示例2 6 ………………………………………………………………………………………………GB/T32907—2016 前 言 本标准按照GB/T1.1—2009给出的规则起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。 本标准由国家密码管理局提出。 本标准由全国信息安全标准化技术委员会(SAC/TC260)归口。 本标准起草单位:中国科学院数据与通信保护研究教育中心、国家密码管理局商用密码检测中心、 北京信息科学技术研究院。 本标准主要起草人:吕述望、李大为、邓开勇、张超、罗鹏、张众、董芳、毛颖颖、刘振华。 ⅠGB/T32907—2016 信息安全技术 SM4分组密码算法 1 范围 本标准规定了SM4分组密码算法的算法结构和算法描述,并给出了运算示例。 本标准适用于商用密码产品中分组密码算法的实现、检测和应用。 2 术语和定义 下列术语和定义适用于本文件。 2.1 分组长度 blocklength 一个信息分组的比特位数。 2.2 密钥长度 keylength 密钥的比特位数。 2.3 密钥扩展算法 keyexpansionalgorithm 将密钥变换为轮密钥的运算单元。 2.4 轮数 rounds 轮函数的迭代次数。 2.5 轮密钥 roundkey 又称子密钥,在迭代分组密码中每一轮使用的密钥,根据输入密钥用密钥编排算法推导得出。 2.6 字 word 长度为32比特的组(串)。 2.7 S盒 S-box S盒为固定的8比特输入8比特输出的置换,记为Sbox(.)。 3 符号和缩略语 下列符号和缩略语适用于本文件: ⊕ 32位异或 <<<i32位循环左移i位 Zn 2 比特长度为n的二进制序列集合 1GB/T32907—2016 4 算法结构 SM4密码算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法 与密钥扩展算法均采用非线性迭代结构,运算轮数均为32轮。数据解密和数据加密的算法结构相同, 只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。 5 密钥及密钥参量 密钥长度为128比特,表示为MK=(MK0,MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。 轮密钥表示为(rk0,rk1,…,rk31),其中rki(i=0,…,31)为32比特字。轮密钥由密钥生成。 FK=(FK0,FK1,FK2,FK3)为系统参数,CK=(CK0,CK1,…,CK31)为固定参数,用于密钥扩 展算法,其中FKi(i=0,…,3)、CKi(i=0,…,31)为字。 6 轮函数 F 6.1 轮函数结构 设输入为(X0,X1,X2,X3)∈(Z32 2)4,轮密钥为rk∈Z32 2,则轮函数F见式(1): F(X0,X1,X2,X3,rk)=X0⊕T(X1⊕X2⊕X3⊕rk)………………(1) 6.2 合成置换 T T:Z32 2→Z32 2是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。 a) 非线性变换τ τ由4个并行的S盒构成。 设输入为A=(a0,a1,a2,a3)∈(Z8 2)4,输出为B=(b0,b1,b2,b3)∈(Z8 2)4,则见式(2): (b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))…………(2) 式中,Sbox数据见表1。 表1 Sbox数据 0123456789ABCDEF 0D690E9FECCE13DB716B614C228FB2C05 12B679A762ABE04C3AA44132649860699 29C4250F491EF987A33540B43EDCFAC62 3E4B31CA9C908E89580DF94FA758F3FA6 44707A7FCF37317BA83593C19E6854FA8 5686B81B27164DA8BF8EB0F4B70569D35 61E240E5E6358D1A225227C3B01217887 7D40046579FD327524C3602E7A0C4C89E 8EABF8AD240C738B5A3F7F2CEF96115A1 9E0AE5DA49B341A55AD933230F58CB1E3 2GB/T32907—2016 表1(续) 0123456789ABCDEF A1DF6E22E8266CA60C02923AB0D534E6F BD5DB3745DEFD8E2F03FF6A726D6C5B51 C8D1BAF92BBDDBC7F11D95C411F105AD8 D0AC13188A5CD7BBD2D74D012B8E5B4B0 E8969974A0C96777E65B9F109C56EC684 F18F07DEC3ADC4D2079EE5F3ED7CB3948 例如:输入‘EF’,则经S盒后的值为表中第E行和第F列的值,Sbox(EF)=84。 b) 线性变换L 非线性变换τ的输出是线性变换L的输入。设输入为B∈Z32 2,输出为C∈Z32 2,则见式(3): C=L(B)=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)……(3) 7 算法描述 7.1 加密算法 本加密算法由32次迭代运算和1次反序变换R组成。 设明文输入为(X0,X1,X2,X3)∈(Z32 2)4,密文输出为(Y0,Y1,Y2,Y3)∈(Z32 2)4,轮密钥为rki∈ Z32 2,i=0,1,2,…,31。加密算法的运算过程如下: a) 32次迭代运算见式(4): Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki),i=0,1,…,31……………………(4) b) 反序变换见式(5): (Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)………………(5) 加密运算过程的示例参见附录A。 7.2 解密算法 本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。解密时,使用轮密钥序 (rk31,rk30,…,rk0)。 7.3 密钥扩展算法 加密过程使用的轮密钥由加密密钥生成,其中加密密钥MK=(MK0,MK1,MK2,MK3)∈ (Z32 2)4,加密过程中的轮密钥生成方法见式(6)和式(7): (K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)……(6) rki=Ki+4=Ki⊕T'(Ki+1⊕Ki+2⊕Ki+3⊕CKi),i=0,1,…,31……………(7) 式中: a) T'是将6.2中合成置换T的线性变换L替换为L',见式(8): L'(B)=B⊕(B<<<13)⊕(B<<<23) ………………(8) b) 系统参数FK的取值为: FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC); c) 固定参数CK取值方法为: 3GB/T32907—2016 设cki,j为CKi的第j字节(i=0,1,…,31;j=0,1,2,3),即CKi=(cki,0,cki,1,cki,2,cki,3)∈ (Z8 2)4,则cki,j=(4i+j)×7(mod256)。 固定参数CKi(i=0,1,…,31)具体值为: 00070E15,1C232

.pdf文档 GB-T 32907-2016 信息安全技术 SM4分组密码算法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
GB-T 32907-2016 信息安全技术 SM4分组密码算法 第 1 页 GB-T 32907-2016 信息安全技术 SM4分组密码算法 第 2 页 GB-T 32907-2016 信息安全技术 SM4分组密码算法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2025-07-16 21:10:15上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。