安全技术
当前位置: 首页 > 安全技术 > 信息安全技术
国内算法标准介绍

1.祖冲之序列密码算法(GM/T 0001)

GM/T 0001-2012《祖冲之序列密码算法》

本规范包含3个部分:算法描述、基于祖冲之算法的机密件算法、基于祖冲之算法的完整性算法。

第1部分为算法描述,描述了祖冲之序列密码算法,可用于指导祖冲之算法相关产品的研制、检测和使用。本部分主要包括算法整体结构、线性反馈移位寄存器LFSR、比特重组BR、非线性函数F、密钥装入和算法运行内容,并在附录中给出了算法计算实例。

第2部分为基于祖冲之算法的机密性算法,可适用于3GPP LTE通信中的加密和解密,可用于指导基于祖冲之算法的机密性算法的相关产品的研制、检测和使用。本部分主要包括算法输入与输出和算法工作流程内容,并在附录中给出了算法计算实例。

第3部分为基于祖冲之算法的完整性算法,可适用于3GPP LTE通信中消息的完整性保护,可用于指导基于祖冲之算法的完整性算法的相关产品的研制、检测和使用。本部分主要包括算法输入与输出和算法工作流程内容,并在附录中给了算法计算实例。

2.SM4分组密码算法(GM/T 0002)

GM/T 0002-2012 《SM4分组密码算法》

本规范规定了SM4分组密码算法(原SMS4)的算法结构和算法描述,并给出了运算示例,适用于密码应用中使用分组密码的需求。SM4密码算法是一个分组算法,分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构,数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

本规范对轮函数F和算法进行了详细的介绍。轮函数F包括轮函数结构和合成置换T,算法描述包括加密算法、解密算法和密钥扩展算法,并在附录中给出了运算示例。

3.SM2椭圆曲线公钥密码算法(GM/T 0003)

GM/T 0003-2012 《SM2椭圈曲线公钥密码算法》

本规范包括5个部分:总则、数字签名算法、密钥交换协议、公钥加密算法、参数定义。

第1部分为总则,给出了SM2椭圆曲线公钥密码算法涉及的必要数学基础知识与相关密码技术,以帮助实现其他各部分所规定的密码机制,适用于基域为素域和二元扩域的椭圆曲线公钥密码算法。本部分主要包括域和椭圆曲线、数据类型及其转换、椭圆曲线系统参数及其验证、密钥对的生成、公钥的验证等内容,并在附录中给出了椭圆曲线的背景知识、数论算法、曲线示例和椭圆曲线方程参数的拟随机生成及验证。

第2部分为数字签名算法,规定了SM2椭圆曲线公钥密码算法的数字签名算法,包括数字签名生成算法和验证算法,并给出了数字签名与验证示例及其相应的流程,适用于商用密码应用中的数字签名和验证,可满足多种密码应用中的身份认证和数据完整性、真实性的安全需求。本部分主要包括数字签名算法、数字签名的生成算法及流程、数字签名的验证算法及流程等内容,并在附录中给出了数字签名与验证的示例。

第3部分为密钥交换协议,规定了SM2椭圆曲线公钥密码算法的密钥交换协议,并给出了密钥交换与验证示例及其相应的流程。适用于商用密码应用中的密钥交换,可满足通信双方经过两次或三次信息传递过程,计算获取一个由双方共同决定的共享密钥(会话密钥)。本部分主要包括参数与辅助参数、密钥交换协议及流程内容,并在附录中给出了密钥交换及验证示例。

第4部分为公钥加密算法,规定了SM2椭网曲线公钥密码算法的公钥加密算法,并给出了消息加解密示例和相应的流程。适用于国家商用密码应用中的消息加解密,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解密,获取消息。本部分主要包括算法参数与辅助函数、加密算法及流程、解密算法及流程等内容并在附录中给出了消息加解密示例。

第5部分为参数定义,规定了SM2椭圆曲线公钥密码算法的曲线参数,并在附录中给出了数字签名签名验签、密钥交换与验证、消息加解密示例。

4.SM3密码杂凑算法(GM/T 0004)

GM/T 0004-2012 《SM3密码杂凑算法》

该规范规定了SM3密码杂凑算法的计算方法和计算步骤,并给出了运算示

例,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。同时,本规范还可为安全产品生产商提供产品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。

SM3算法可概述为:对长度为n(n<2^64)位的消息m,SM3杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256位。本规范从算法概述、迭代演练等方式对SM3算法进行描述,并通过具体示例进行剖析展示。

5.SM2密码算法使用规范(GM/T 0009)

GM/T 0009-2012 《SM2密码算法使用规范》

本规范定义了 SM2密码算法的使用方法,以及密钥、加密与签名等数据格式,适用于SM2密码算法的使用,以及支持SM2密码算法的设备和系统的研发和检测。

本规范介绍了SM2公钥和私钥的数学本质。SM2私钥是一个大于或等于1且小于n-1的整数(n为SM2算法的阶,其值参见GM/T  0003).简记为k,长度为256位;SM2公钥是SM2曲线上的一个点,由横坐标和纵坐标两个分量来表示,记为(x,y),简记为Q,每个分量的长度为256位。

本规范介绍了8位字节串和位串之问的转换,包括位串到8位字节串的转换、8位字节串到位串的转换、整数到8位字节串的转换、8位字节串到整数的转换。

本规范介绍了SM2算法的数据格式,包括密钥数据格式、加密数据格式、签名数据格式、密钥对保护数据格式。

本规范还介绍了预处理和计算过程,包括生成密钥、加密、解密、签名、验签和密钥协商。

6.SM2密码算法加密签名消息语法规范(GM/T 0010)

GM/T 0010-2012 (SM2密码算法加密签名消息语法规范)

本规范定义了使用SM2密码算法的加密签名消息语法,适用于使用SM2算法进行加密和签名操作时对操作结果的标准化封装。

本规范对6类对象 data,signedData,envelopedData,encryptedData,

keyAgreementInfo和SignedAndEnvelopedData的标识符进行了定义。


对象标识符OID

对象标识符定义

1.2.156.10197.6.1.4.2

SM2密码算法加密签名消息语法规范

1.2.156.10197.6.1.4.2.1

数据类型data

1.2.156.10197.6.1.4.2.2

签名数据类型signedData

1.2.156.10197.6.1.4.2.3

数字信封数据类型envelopedData

1.2.156.10197.6.1.4.2.4

签名及数字信封数据类型signedAndEnvelopedData

1.2.156.10197.6.1.4.2.5

加密数据类型encryptedData

1.2.156.10197.6.1.4.2.6

密钥协商类型keyAgreementInfo


本规范对上述6类对象的数据类型结构进行了详细定义。