GB/T32907-2016

信息安全技术SM4分组密码算法

Informationsecuritytechnology—SM4blockcipheralgorthm

本文分享国家标准信息安全技术SM4分组密码算法的全文阅读和高清PDF的下载,信息安全技术SM4分组密码算法的编号:GB/T32907-2016。信息安全技术SM4分组密码算法共有9页,发布于2017-03-01
  • 中国标准分类号(CCS)L80
  • 国际标准分类号(ICS)35.040
  • 实施日期2017-03-01
  • 文件格式PDF
  • 文本页数9页
  • 文件大小277.16KB

信息安全技术SM4分组密码算法


国家标准 GB/T32907一2016 信息安全技术SM14分组密码算法 nformationseeuritytechnoogy一SM4bockcipheralgorithm 2016-08-29发布 2017-03-01实施 国家质量监督检验检疫总局 发布 国家标准化管理委员会国家标准
GB/T32907一2016 前 言 本标准按照GB/T1.1一2009给出的规则起草 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别这些专利的责任 本标准由国家密码管理局提出 本标准由全国信息安全标准化技术委员会(SAC/Tc260)归口 本标准起草单位;科学院数据与通信保护研究教育中心,国家密码管理局商用密码检测中心、 北京信息科学技术研究院 本标准主要起草人:吕述望、李大为、邓开勇、张超、罗鹏、张众、董芳,毛颖颖、刘振华
GB/T32907一2016 信息安全技术SM4分组密码算法 范围 本标准规定了sSM4分组密码算法的算法结构和算法描述,并给出了运算示例 本标准适用于商用密码产品中分组密码算法的实现、检测和应用 术语和定义 下列术语和定义适用于本文件 2.1 分组长度hekengh 个信息分组的比特位数 2.2 密钥长度keylength 密钥的比特位数 2.3 密钥扩展算法keye%pansionalgorithm 将密钥变换为轮密钥的运算单元 2.4 轮数 rounds 轮函数的迭代次数 2.5 轮密钥 oundkey 又称子密钥,在迭代分组密码中每一轮使用的密钥,根据输人密钥用密钥编排算法推导得出 2.6 字word 长度为32比特的组(串) s盒S-box s盒为固定的8比特输人8比特输出的置换,记为Sbox(.) 符号和缩略语 下列符号和缩略语适用于本文件 32位异或 <<<; 32位循环左移位 比特长度为n的二进制序列集合
GB/T32907一2016 算法结构 SM4密码算法是一个分组算法 该算法的分组长度为128比特,密钥长度为128比特 加密算法 与密钥扩展算法均采用非线性迭代结构,运算轮数均为32轮 数据解密和数据加密的算法结构相同 只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序 密钥及密钥参量 密钥长度为128比特,表示为MK=(MK ,MKi,MKa,MK,),其中MK.(i=0,1,2,3)为字 轮密钥表示为(rk,rki,,k),其中k,(i=0,,31)为32比特字 轮密钥由密钥生成 FK=(FK ,FK1,FKa,FK)为系统参数,CK=(CK,CK1,,CK)为固定参数,用于密钥扩 展算法,其中FK,(i=0, 0,,3),CK.(i =0 ,31)为字 轮函数 轮函数结构 6.1 设输人为(X ,xi.Xe,X.)E(Z',轮密钥为rkEZ,则轮函数F见式(1). F(X ,X1,X,Xg,)=X 田T(X1田X.田X田k 6.2合成置换 T;Z”-Z”是一个可逆变换,由非线性变换丁和线性变换L复合而成,即T(.)=L(r(.). a)非线性变换 由4个并行的s盒构成 设输人为A=(a0,a,a,a.)E(Z)',输出为B=(b ,b,b,b)E(Z)',则见式(2) ( ,b=r(A=(Sbox(a,Sbox ),Sbox ),Sbox(a (2 ,b1,b a1 a2 式中,Sbox数据见表1 表1sho数据 C E F D6 90 E9 FE CC 日 3D B7 16 B6 14 C2 28 FB 2C 05 67 13 49 2B 9A 76 2A BE 04 C3 AA 44 26 86 06 99 42 F 9C 50 91 EF 98 7A 33 54 0B 43 ED CF AC 62 E4 B3 E8 DF FA 7 8F 3F C9 95 1C A9 08 80 94 A6 47 07 A7 Fc F3 73 17 BA 83 59 3c 19 4F E6 85 A8 8 64 70 68 6B 2 71 DA 8B F8 EB 0F 4B 56 9D 35 24 o1 1E 0E 5E 63 58 D1 A2 25 22 7C 3B 21 78 87 00 57 !C D1 46 9F D3 27 52 36 02 E7 A0 C4 C8 9E D2 40 C A3 F9 15 Ai EAN BF 8A 38 B5 F7 F2 CE 61 E0 AE 5D A4 9B 34 1A 55 AD 93 32 30 F5 8C B E
GB/T32907一2016 表1(续 F6 2E 82 CA AB oD 6F 1D E 66 60 C0 29 53 4E 23 B 45 D5 DB 37 DE FD 8E 2F 03 FF 6A 72 6D 6C 5B 51 92 11 4 8D B AF BB DD BC 7F D9 5C 1F 10 5A D8 D C CD BD 12 B8 BH 0A 31 88 A5 7B 2D 74 D0 E5 B0 E 89 69 97 4A 0C 96 77 7E 65 B9 F 09 C5 6E C6 84 18 F0 7D EEC 3A DC 4D 20 79 EE 5F 3E D7 CB 39 48 例如输人‘EF',则经S盒后的值为表中第E行和第F列的值,Sbox(EF)=84 b线性变换L 非线性变换的输出是线性变换L的输人 设输人为BZ”,输出为CEZ!,则见式(3) C=L(B)=B田(B<<<2)田(B <10)B<<<18)田B<<<24)3 算法描述 7.1 加密算法 本加密算法由32次迭代运算和1次反序变换R组成 设明文输人为(X ,Xi,X.,X,)E(z',密文输出为(Y ,Y,Y,Y,)E(z)',轮密钥为rk, Z”,i=0,1,2,,31 加密算法的运算过程如下 32次迭代运算见式(4) X样,=F(X,X,X2,X3,rk,),i=0,1,,31 反序变换见式(5): b 5 Y,Y,Y,Y)=R(X,Xa,X,X=(X站,X,Xa,Xn 加密运算过程的示例参见附录A 7.2解密算法 本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序 解密时,使用轮密钥序 rk,rk,,kw) 7.3密钥扩展算法 加密过程使用的轮密钥由加密密钥生成,其中加密密钥MK=(MK ,MK,MK.,MK.)s Z',加密过程中的轮密钥生成方法见式(6)和式(7) K .K,K.K;)=(MK田FK,.MK田FK.MK.田FKMK.田FK) (6 rk,=K洋,=K田r'K4田K2田K4CK,)i=0,1,,31( 式中 a)T'是将6.2中合成置换T的线性变换L替换为L',见式(8): L'B)=B田(B<<<13)田(B<<一23) 8 b)系统参数FK的取值为 FK =(A3BIBAC6),FK,=(56AA3350),FK =(677D9197),FK =(EB27022DC):; 固定参数CK取值方法为
GB/T32907一2016 .,31j=0,l.,2,3),即cK,=(ck.ck..ck.,ck.)e 设ck.为CK,的第j字节(i=0,l, Z',则ck,=(4i十)×7(mod256) 固定参数CK,(i=0,l,,31)具体值为 0007oE15, 383F464D. 545B6269 1C232A31 70777E85 8C939AA1, A8AFB6BD,C4CBD2D9 EoE7EEF5,FC030A11, 181F262D. 343B4249 50575E65, 6C737A81, 888F969D, A4ABB2B9 F8Fro6oD. C0C7CED5,D(CE3EAF1, 141B2229 30373E45, 4C535A61, 848B9299, 686F767D. A0A7AEB5,BCC3CAD1,D8DFE6ED,F4FB0209 484F565D. 10171E25,2C333A41, 646B7279 解密密钥同加密密钥,解密使用的轮密钥由解密密钥生成,其轮密钥生成方法同加密过程的轮密钥 生成方法
GB/T32907一2016 附 录A 资料性附录 运算示例 A.1示例1 本附录为SM4分组密码算法对一组明文进行加密的运算示例 输入明文:0123456789ABCDEFFEDCBA98765432 0 输入密钥:0123456789ABCDEFFEDCBA9876543210 轮密钥与每轮输出状态 rk[0]=F12186F9g X[]=27FAD345 rk[1]=41662B6 X[5]=A18BCB2 rk[2]=5A6AB19A X[6]=11CIE22A xC 7]=CC13E2EE k[3]一7BA9207m k[]=367380F! xC 8]=F87C5BD5 5]=776.Ac61 X[9]=33220757 k[]=B6BB89Bs X[10 77F4C297 7刀- s =24763151 X11]=7A96F2EB k[8]=A520307C X12]=27DAC07F rk[]=B7584DBD X[13]=42DD0F19 rk[10]=C30753ED X[14]=B8A5DA02 x[15] =907127FA rk[l1]=7EE55B57 x[16]=8B952183 k[12]=6988608C x[17]=D42B7C59 rk[13]=30D895B7 k[14]- =44BAl4AF XL18]=2FFC5831 x[19]=F69E6888 k[15]=1044!95A [16]=D120B128 X[20 rk[ AF2432C4 x[21]=ED1EC85E rk[17]=73B5aFA x[22]=55A3BA22 k[18]-cC87496 x[23]=124B18AA k[19] =92244439 x[24]=6AE7725F k[20]=E89Ea41IF X[25]=F4CBAIF9 " [21]一98CA15AN k[22-7153o x[26]=1DCDFA10 rk[23]=99E1FD2E X[27]=2FF60603 rk[24]=379BD80c x[28]=EFF24FDC rk[25]=1D2115B0 X[29]=6FE46B75 rk[26]=0E228AEB x[30一893450AD X[31]=7B938F4C rk[27]=F1780C81 rk[28]=428D3654 X[32]=536E41246 X[33]=86B3E94 rk[29]=62293496 rk[30=01CF72E5 X[34]=D206965E
GB/T32907一2016 rk[31]=9124A012 X[35]=681EDF34 输出密文:681EDF34D206965E86B3E94F536E4246 A.2示例2 本附录为SM4分组密码算法使用固定的加密密钥,对一组明文反复加密1000000次的运算示例 输入明文:0123456789ABCDEFFEDCBA9876543210 输入密钥:0123456789ABCDEFFEDCBA9876543210 输出密文:595298C7C6FD271F0402F804C33D3F66

了解信息安全技术SM4分组密码算法GB/T32907-2016

什么是SM4分组密码算法?

SM4分组密码算法是中国政府发布的一种对称加密算法,于2012年被公开。它是一种分组密码算法,适用于各种安全保护应用,如数据加密、数字签名等等。

SM4分组密码算法的特点

SM4分组密码算法具有以下特点:

  • 安全性高:SM4算法采用128位密钥长度,加密强度高,能够有效防止各种攻击。
  • 效率高:SM4算法的加密与解密速度快,适用于大规模数据传输。
  • 易于实现:SM4算法的实现相对简单,可以在硬件和软件上都很容易实现。

SM4分组密码算法的应用

SM4分组密码算法已经在多种领域得到了广泛应用:

  • 数据加密:SM4算法可以对敏感数据进行加密保护,防止被未经授权的人员获取。
  • 数字签名:SM4算法可以用于生成数字签名,在保证信息不被篡改的同时,验证信息是否是合法来源生成的。
  • 电子认证:SM4算法可以用于电子认证,确保通信双方的安全性和身份的真实性。

SM4分组密码算法的规范标准

SM4分组密码算法的规范标准是GB/T32907-2016,其中规定了SM4算法的参数、结构、加解密流程等内容,是SM4算法的权威规范。

总结

SM4分组密码算法作为一种高效、安全的分组密码算法,在各种领域得到了广泛应用。我们需要遵循相关规范标准,正确使用SM4算法,保障数据的安全性和保密性。

和信息安全技术SM4分组密码算法类似的标准

信息安全技术SM3密码杂凑算法
上一篇 本文分享国家标准信息安全技术SM3密码杂凑算法的全文阅读和高清PDF的下载,信息安全技术SM3密码杂凑算法的编号:GB/T32905-2016。信息安全技术SM3密码杂凑算法共有15页,发布于2017-03-01
信息安全技术信息安全服务提供方管理要求
本文分享国家标准信息安全技术信息安全服务提供方管理要求的全文阅读和高清PDF的下载,信息安全技术信息安全服务提供方管理要求的编号:GB/T32914-2016。信息安全技术信息安全服务提供方管理要求共有10页,发布于2017-03-01 下一篇
相关推荐