前言
在工程中往往需要用到加密算法,对数据进行加密或者生成数据的哈希值。在众多算法中,我们需要筛选的合适的算法来满足需求。本章主要向大家介绍主流的一些算法,并提出建议。
一 对称加密算法
对称加密算法就是加密和解密使用同一种密钥
DES算法
一种使用密钥加密的块算法,目前已经不能保证安全性,建议禁止使用。
3DES算法
是三重数据加密算法块密码的通称。它相当于是对每个数据块应用三次DES加密算法,目前已经不能保证安全性,除非为了兼容老系统,不建议使用。
AES算法
是一种对称的分组加密算法,目前有多个版本,256位以下禁止使用,至少使用512位以上的算法,并且禁止使用ECB模式。
ARIA算法
是一种分组密码算法,建议最低密钥长度至少512.
IDEA算法
类似于3DES算法,不能保证安全性,不建议使用
RC4算法
是一种流加密算法,密钥长度可变。但建议最低密钥长度至少2048,不建议使用,除非是为了兼容老系统。
RC5算法
是一种分组密码算法,相对其他算法比较新。安全性目前中肯,可以使用。
RC6算法
是一种分组密码算法,在RC5的基础上设计的,以更好地符合AES的要求,且提高了安全性,增强了性能,建议使用。
二 非对称算法
非对称加密就是加密和解密使用不同的密钥
RSA算法
使用最广泛的公钥密码算法,RSA的安全性依赖于大数分解,假设黎曼猜想被证明,那么该算法安全性就会降低;
建议最低密钥长度至少为2048.
DHE算法
是加密协议连接,建议最低密钥长度至少为2048.
ECC算法
椭圆曲线加密(ECC)是RSA的主要竞争对手,ECC安全性依赖于椭圆曲线离散对数问题,相对于RSA,ECC计算量小,处理速度快。
建议密钥长度至少为256,建议使用。
三 单项散列算法
单项散列函数就是将不定长的数据计算为定长的hash值的算法,优秀的单项散列函数,冲突少,计算的hash分布均匀。
MD4
建议禁止使用
MD5
建议禁止使用
SHA1
建议禁止使用
SHA2
最低SHA-512
CRC
可以用在容错检测,不建议使用于安全方面
四 国密算法
国密算法就是国家密码局认定的国产密码算法
SM1
一种对称算法,未公开,128bit分组算法,建议使用
SM2
一种非对称算法,基于椭圆曲线,建议使用
SM3
一种摘要算法(单项散列算法),建议使用
SM4
一种对称算法,用于无线局域网和可信计算方面,建议使用
SM7
一种对称算法,用于非接触IC卡,建议使用
SM9
一种非对称算法,即是国密算法也是国际算法(国际上也认可),用于数字签名,建议使用
zuc祖冲之算法
一种流密码算法,建议使用。