一、对称加密算法(Symmetric Encryption)
1. 分类 & 代表性算法
分类 |
代表算法 |
简介 |
分组加密 |
DES、3DES、AES、SM4 |
每次加密固定长度的数据块,如128位 |
流加密 |
RC4、Salsa20/ChaCha20 |
一位一位或字节流加密,适合实时通信 |
2. 密码模式(Block Cipher Modes)
用于分组加密算法,决定如何处理多个数据块:
模式 |
全称 |
特点与适用场景 |
ECB |
Electronic Codebook |
每块独立加密,易被模式分析攻击,不安全 |
CBC |
Cipher Block Chaining |
每块依赖前一块,增加随机性,适合大数据加密 |
CFB |
Cipher Feedback |
类似流加密,适合实时传输 |
OFB |
Output Feedback |
错误不传播,适合串行加密 |
CTR |
Counter Mode |
并行加密,提高效率,适合多核系统 |
GCM |
Galois/Counter Mode |
支持认证和加密,适合网络协议,如TLS |
3. 应用场景
- 文件加密(如AES-CBC)
- VPN 加密(如AES-GCM)
- 数据库存储加密(如SM4)
- HTTPS 会话数据加密(与非对称算法配合)
4. 优缺点
优点 |
缺点 |
加密解密速度快,适合大数据量传输 |
密钥必须安全分发,容易泄露即被破解 |
算法成熟,硬件支持丰富 |
无法实现数字签名,不能确保身份和完整性 |
二、非对称加密算法(Asymmetric Encryption / Public-Key Encryption)
1. 分类 & 代表性算法
类别 |
代表算法 |
简介 |
基于大数分解 |
RSA |
最经典的非对称算法,支持加密和签名 |
基于离散对数问题 |
DSA、ElGamal |
用于数字签名,ElGamal 可用于加密 |
基于椭圆曲线 |
ECC(如ECDSA, ECDH) |
提供更高强度,密钥更短,适合移动设备 |
国密算法 |
SM2 |
国密非对称加密算法,基于ECC |
2. 应用场景
- 数字签名(如SSL证书签名)
- 密钥交换(如HTTPS的握手阶段)
- 区块链签名(如比特币用ECDSA)
- 身份认证、电子合同、电子邮件加密
3. 优缺点
优点 |
缺点 |
不需要共享密钥,安全性高 |
运算复杂,效率低,不适合大数据量加密 |
可用于签名,确保身份认证和完整性 |
算法设计复杂,容易因参数选择错误而不安全 |
可用于构建PKI(公钥基础设施)体系 |
密钥长度较长,传输和存储成本高 |
三、哈希算法(Hash Functions)
1. 分类 & 代表性算法
类型 |
代表算法 |
简介 |
常规哈希 |
MD5、SHA-1、SHA-256/512、SM3 |
生成固定长度的摘要,用于校验、签名等 |
密钥哈希 |
HMAC-MD5、HMAC-SHA256 |
加盐(带密钥)哈希,用于认证 |
特殊哈希 |
bcrypt、scrypt、Argon2 |
专为密码保护设计,抗暴力破解 |
2. 应用场景
- 数据完整性校验(如Git、文件下载校验)
- 数字签名(如SSL证书中的签名)
- 密码保护(如系统登录密码存储)
- 区块链(如比特币区块结构)
3. 优缺点
优点 |
缺点 |
一致性强,相同输入一定生成相同输出 |
一旦被破解(如MD5、SHA-1),将不再安全 |
摘要固定长度,节省存储 |
无法还原原文,只用于验证和比对 |
算法计算快,适合大规模数据校验 |
对碰撞攻击较敏感,需选用安全算法(如SHA-256、SM3) |
四、三者综合对比
特性 |
对称加密 |
非对称加密 |
哈希算法 |
加解密双方 |
相同密钥 |
公钥加密,私钥解密 |
仅单向处理,无解密 |
用途 |
数据保密 |
签名、身份认证、密钥交换 |
数据校验、签名辅助 |
性能 |
快 |
慢 |
非常快 |
安全性 |
依赖密钥安全 |
更安全,适合开放场景 |
摘要碰撞要避免 |
是否可逆 |
是 |
是 |
否(单向) |
五、常见组合应用场景举例
- HTTPS / TLS:使用非对称加密(RSA/ECDHE)交换对称密钥(AES),传输数据用AES加密,消息摘要用哈希(SHA-256)进行签名验证。
- 区块链:用ECC签名交易,用SHA256进行数据摘要与区块链接。
- 文件签名:文件内容生成哈希 → 用私钥签名该哈希 → 公钥验证签名是否一致。
如你有某个算法或场景想深入探讨(如TLS、区块链、国密SM系列),我也可以继续展开。