以下是主流商用密码算法分类,大致可以分为以下三类:
1.公钥密码算法:SM2,SM9,RSA
2.对称密码算法:SM1,SM4
3.杂凑密码算法:SM3,SHA1,SHA256,SHA512,MD5
一、公钥密码算法(非对称密码算法)
公钥密码算法又称非对称密码算法。
常见算法有SM2算法和SM9算法
- SM2:国产算法,基于椭圆曲线公钥密码体制,密钥长度为256比特,其加密强度等同于3072位RSA证书,是国内用于代替国外RSA算法的商用密码算法。常用于数据加密、数字签名、身份认证、网络安全等场景。在实现数字签名过程种,公钥用于签名,私钥用于验签。
- SM9:国产算法,基于标识的密码算法(IBC),不用传统的数字证书验证公钥合法性,直接使用用户的标识(如电子邮件地址、电话号码等)作为公钥,简化了密钥管理和分发过程,更快捷高效。常用于安全通信、数字签名、身份认证、物联网与云计算等场景。
- RSA:非国产算法,基于大数分解问题,常用的密钥长度为1024位,其还有2048位和4096位的密钥长度类型,但目前1024位的RSA算法已然不满足时代发展的脚步,面临严重的安全威胁。虽然面临一些安全威胁,但RSA算法仍然是全球范围内广泛使用的公钥密码算法之一。它适用于各种需要加密和解密操作的场景,如网络通信、数据传输等等。
二、对称密码算法
对称密码算法是指加密和解密数据使用同一个密钥的加密方法,使用此类算法可显著提升数据加解密效率。
常见的对称密码算法有SM1算法和SM4算法。
- SM1:国产算法,分组长度和密钥长度均为128位,安全保密强度及相关软硬件实现性能与AES相当,但不公开,仅以IP核的形式存在于芯片中。
- SM4:国产算法,分组长度和密钥长度均为128位,SM4算法是SM系列算法中使用最为广泛的密码算法,也是目前主流的对称加密算法。
三、杂凑算法
杂凑算法(也称散列算法或哈希算法)是对任意长度的消息进行压缩,输出定长的消息摘要或杂凑值的算法。得益于其运算速度快,过程不可逆等特性,适用于数字签名、消息认证等场景。
常见的杂凑算法类型有SM3算法,SHA1,SHA256,SHA512,MD5等等。
- SM3:国产算法,用于对任意长度的信息进行压缩,输出定长的信息摘要值。常用于数字签名常见,用于验证数据的完整性和真实性。
- SHA1:非国产算法,已被弃用,不再适用于大多数应用程序。过去曾用于数字签名和SSL证书等领域。
- SHA256:非国产算法,是TLS(传输层安全性)协议的组成部分,广泛用于加密、数字签名、密码学以及区块链等领域。
- SHA512:非国产算法,具有更高的安全性,但由于其哈希值更长,需要更多的计算资源和存储空间,可能不适用于性能敏感型应用程序。
四、总结
综上所述,常见的密码算法分类分为公钥密码算法,对称密码算法和杂凑算法,其中公钥密码算法常见有SM2和SM9;对称密码算法有SM1和SM4,目前以SM4算法为主流;杂凑密码算法有SM3、SHA1、SHA256、SHA512等,目前以SM3算法为主,SHA1算法目前已经被时代抛弃。