加密算法梳理
对称加密算法
对称加密指加密和解密使用同一密钥。
对称加密过程:采用单秘钥加密,发送方将发送数据分割成固定大小的块,经过秘钥和加密算法加密后发送。接收方收到报文后,结合解密算法使用相同的密钥解密得出原始数据。N个用户需要N*(N-1)/2个不同的密钥。
优点:效率高,算法简单,系统开销小,适合加密大量数据。
缺点:安全性差(密钥泄露),扩展性差(通信双方要协商密钥,密钥生成过多不易于管理)。
常见的对称加密算法:DES、AES、sm4
非对称加密算法
非对称加密指的是加密和解密使用不同的密钥,一把公开的公钥,一把私有的私钥。公钥加密的信息只有私钥才能解密,私钥加密的信息只有公钥才能解密。
N个用户,需要2N个密钥。
非对称加密过程:甲使用乙的公钥并结合相应的非对称算法将明文加密发送给乙,乙结合自己的私钥和非对称算法解密得到明文。
优点:更安全
缺点:算法复杂度高,加密之后报文冗长,适合对少量数据加密,增加了网络传输成本。
RSA算法 sm2算法
SM2 | RSA | |
---|---|---|
算法结构 | 椭圆曲线 | 可逆模幂运算 |
计算复杂度 | 指数级 | 亚指数级 |
存储空间 | 192-256bit | 2048-4096bit |
秘钥生成速度 | 比RSA快百倍以上 | 慢 |
加解密速度 | 较快 | 一般 |
单向加密
单向加密算法只能对数据加密,不能解密。特点为定长输出,雪崩效应(少量消息位的变化会引起信息摘要的许多位的变化)。
单向加密常用于验证数据完整性、数字摘要、数字签名等。
加密过程:发送方对明文进行加密发送,接收方对同样的明文进行加密,比对。
常见的单向加密算法:MD5、sm3