国密码算法概要
密码算法是保证信息安全的核心技术,尤其是银行业核心领域长期以来都是沿用国际算法体系及相关标准,为从根本上摆脱对国外密码技术和产品的过度依赖,国家商用密码管理办公室制定了一些列密码算法标准,包括SM1、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等。
常用的国密码算法介绍
常用的国密算法SM2、SM3、SM4
SM2
SM2非对称算法。 基于ECC 椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采用了更为安全的机制。另外,SM2 推荐了一条256位的曲线作为标准曲线,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。主要用于数字签名算法,密钥交换协议以及公钥加密算法等。
SM3
SM3 是摘要算法中的一种。 是我国自主设计,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证算法的安全性,其产生值的长度不应太短,MD5输出长度128bit,输出长度太短,安全性较低目前已经在强抗碰撞性下被攻破。SHA1 算法的输出长度为160bit,SM3算法的输出长度为256bit,因此SM3算法的安全性要高于MD5算法和SHA1 算法。
SM4
SM4 分组密码算法是我国自主设计的分组对称密码算法,用于实现数据的加密/解密,以保证数据和信息的机密性。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与 AES 算法具有相同的密钥长度分组长度128bit,安全性上高于3DES算法。
RSA加密算法
RSA加密算法是一种非对称加密算法,所谓非对称,就是指该算法加密和解密使用不同的密钥,即使用加密密钥进行加密、解密密钥进行解密。在RAS算法中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。
常用的加解密库
jsencrypt:基于RSA算法加解密库
sm-crypto:SM2,SM3,SM4