1.SM4分组密码算法(GMT0002)
SM4分组密码算法的结构与描述,在密码应用中用分组密码的需求适用。
SM4算法的分组长度与密钥长度分别是128、128比特。加密与密钥扩展算法用的都是32轮非线性迭代结构,数据加、解密算法结构一样,解密轮密钥与加密轮密钥顺序相反。
本规范详细介绍了轮函数F和算法。轮函数F包括轮函数结构与合成置换T,算法描述含加密、解密和密钥扩展3种。
2.SM2椭圆曲线公钥密码算法(GMT0003)
总则给出了本算法必要的数学基础知识和有关的密码技术,来促使实现其他各部分规定的密码机制,对基域是素域与二元扩域的椭圆曲线公钥密码算适用。
数字签名算法有数字签名生成算法与验证算法,对商用密码应用中的签名和验证适用,可达到多种身份认证与数据完整性、真实性的安全需求。
密钥交换协议可支持通信双方经两或三次信息传递过程,计算得到一个由双方一起决定的共享秘密密钥。
公钥加密算法有消息加解密示例和相应的流程。对商用密码应用中的消息加解密合适,消息发送者可用接收者的公钥加密消息,接收者用对应私钥解密,得到消息。
参数定义有本算法的曲线参数。
3.SM3密码杂凑算法(GMT0004)
本算法的计算方法和步骤对商用密码应用中的数字签名与验证、消息认证码的生成与验证及随机数的生成适用,可支持多种密码应用的安全需求。同时,还能给安全产品生产商给出产品与技术的定位及标准化的参考,提高产品的可信性与互操作性。
SM3算法可概述为:对长为n(n<2^64)位的消息m,本算法通过经与迭代压缩,得到杂凑值,杂凑值长度为256位。