SMS4算法是在国内广泛使用的WAPI无线网络标准中使用的加密算法,是一种32轮的迭代非平衡Feistel结构的分组加密算法,其密钥长度和分组长度均为128。SMS4算法的加解密过程中使用的算法是完全相同的,唯一不同点在于该算法的解密密钥是由它的加密密钥进行逆序变换后得到的。
SMS4分组加密算法是中国无线标准中使用的分组加密算法,在2012年已经被国家商用密码管理局确定为国家密码行业标准,标准编号GM/T 0002-2012并且改名为SM4算法,与SM2椭圆曲线公钥密码算法,SM3密码杂凑算法共同作为国家密码的行业标准,在我国密码行业中有着极其重要的位置。
SMS4算法的分组长度为128bit,密钥长度也是128bit。加解密算法均采用32轮非平衡Feistel迭代结构,该结构最先出现在分组密码LOKI的密钥扩展算法中。SMS4通过32轮非线性迭代后加上一个反序变换,这样只需要解密密钥是加密密钥的逆序,就能使得解密算法与加密算法保持一致。SMS4加解密算法的结构完全相同,只是在使用伦密钥时解密密钥是加密密钥的逆序。
S盒是一种利用非线性变换构造的分组密码的一个组件,主要是为了实现分组密码过程中的混淆的特性和设计的。SMS4算法中的S盒在设计之初完全按照欧美分组密码的设计标准进行,它采用的方法是能够很好抵抗差值攻击的仿射函数逆映射复合法。
128bit的明文被分为4个32bit的字,记成X0,X1,X2,X3。密文也分为4个字,记成Y0,Y1,Y2,Y3,这些明文会经过32轮的迭代加密。假设32bit的中间变量为ki,0<=i<=31,则加密变换为:
无线局域网产品使用的SMS4加密算法”是国内官方公布的第一个商用密码算法,将开辟我国密码管理的新航道。
我坚信,在不久的将来,会有适合于更广泛范围应用的、种类更加丰富的密码算法公布于众。有了公开的密码算法,密码和信息安全产品的研制者将有统一的标准和规范可以依循,可以将更多的精力放在产 品技术和服务质量的竞争上,密码和信息安全产品的使用者将可以不在担心由于产品的互操作性和可替代性差引起的另类安全问题,密码研究者可以有更加令人兴奋、更具现实意义和更具挑战性的研究课题。具有政治意义的是我们向国际上展示了我国密码研究的实力和密码管理的胆略。
SMS4加密算法的公布将有利于应用的安全,也将有利于满足公众更广泛范围的安全需求。有人曾因为密码算法破解方面的成果而惶恐万分,担心电子签名是否会因此失去法律效力,似乎天要塌下来一样。其实, 任何密码研究者都十分明白,密码设计与密码分析是既互相对立,又相辅相成、互相促进的两个领域,任何密码算法总有一天会被破解。公布算法可能会使这一天来得更早,但是有更多的人关心它,也就意味着有更多人会为此准备者,也有更多的渠道、可以更加容易地了解它的安全状态,这样也就不至于出现正在使用的算法被破解而使用者却不知情的灾难性情况。