国密算法(GM/T系列)是由中国国家密码管理局制定并发布的国产密码标准,旨在保障信息安全并减少对外部密码技术的依赖。其核心目标是实现密码技术的自主可控,应用于金融、电子政务、安防等高安全需求领域。
- 不公开算法: SM1、SM7,均为对称算法
- 公开算法: SM2、SM3、SM4、SM9、ZUC(祖冲之) ,分别是非对称算法、哈希算法和对称算法、非对称算法、对称算法
SM1
- SM1 指的是国家密码管理局编制的一种商用密码分组标准对称算法。
- 该算法是国家密码管理部门审批的 SM1 分组密码算法 , 分组长度和密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP 核的形式存在于芯片中。
- 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM2
- SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括:
- SM2-1 椭圆曲线数字签名算法
- SM2-2 椭圆曲线密钥交换协议
- SM2-3 椭圆曲线公钥加密算法
- 分别用于实现数字签名、密钥协商和数据加密等功能。
- SM2 算法与 RSA 算法不同的是,SM2 算法是基于 椭圆曲线上点群离散对数 难题,相对于 RSA 算法,256 位的 SM2 密码强度已经比 2048 位的 RSA 密码强度要高
SM3
- SM3杂凑算法是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
- 为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如 MD5 输出 128 比特杂凑值,输出长度太短,影响其安全性 SHA-1 算法的输出长度为 160 比特,SM3算法的输出长度为 256 比特,因此 SM3 算法的安全性要高于 MD5 算法和 SHA-1 算法。
SM4
- SM4 分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。
- 要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4 算法与 AES 算法具有相同的密钥长度分组长度 128 比特,因此在安全性上高于 3DES 算法。
SM7
- 一种分组密码算法。
SM9
- SM9 是一种标识密码标准,相关标准为“GM/T 0044-2016 SM9标识密码算法”。
- 在商用密码体系中,SM9 主要用于用户的身份认证。
- SM9 算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。据称,SM9 的加密强度等同于 3072 位密钥的 RSA 加密算法。
开发
- OpenSSL:自 1.1.1 版本起支持 SM2/SM3/SM4 算法,但 ZUC 等需依赖其他库实现7。
- 硬件加速:SM1/SM7 等算法以 IP 核形式嵌入芯片,提升加密效率。