加密算法

1、常用的加密算法分类
常见的加密算法可以分成五类:
对称加密算法、非对称加密算法和、Hash 算法(也称摘要算法)、数字签名(Hash&RSA)和数字证书(Hash&RSA&CA)。
https://blog.csdn.net/liwei16611/article/details/84838554

(1)对称加密算法
DES(Data Encryption Standard)、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6 和 AES(Advanced Encryption Standard)
(2) 非对称加密算法
RSA:应用广泛,解密速度通常很慢,但加密较快
DSA(Digital Signature Algorithm): 解密速度通常很快,但加密较慢,秘钥量短
ECC
https://cloud.tencent.com/developer/news/254061

(3)Hash 算法
Hash 算法特别的地方在于它是一种单向算法,用户可以通过 Hash 算法对目标信息生成一段特定长度的唯一的 Hash 值,却不能通过这个 Hash 值重新获得目标信息。
过程是:
Hash(明文)--> 固定长度的摘要
因此 Hash 算法常用在不可还原的密码存储、信息完整性校验等。
MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

(4)数字签名:将明文进行摘要,然后再通过私钥进行加密的结果
MD5&RSA 算法和 SHA1&RSA 算法

(5)数字证书

A 给 B 发送消息,A生 成公钥和私钥;
A 将公钥、公钥持有者、签名算法和过期时间等信息发送给 CA(数字证书认证机构);
CA 认可信息之后,通过 CA 的私钥进行签名,这时候数字证书就产生了;
接着 A 将明文、明文数字签名和数字证书一起发送给 B;
B 接受到后,通过 CA 的公钥进行解密,进行第一次校验,校验数字证书;
验证成功后,进行第二次检验,提取数字证书中的公钥,对密文进行解密。
在数字签名的基础上,再发送一个数字证书,这样的话接收方不需要维护一个公钥库,通过 CA 验证后在数字证书提取,获得公钥。

DES 密钥长度不够、MD2 速度较慢已逐渐被淘汰

2、加密算法的选择

1)由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度;
2)对称加密算法不能实现签名,因此签名只能非对称算法;
3)由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
4)在实际的操作过程中,我们通常采用的方式是:
采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

3、如何选择采用多少位的密钥

一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA 建议采用 1024 位的数字,ECC 建议采用 160 位,AES 采用 128 为即可,对于安全性较高的场合需要使用相应长度的秘钥。

你可能感兴趣的:(加密算法)