对称加密算法、非对称加密算法和哈希算法
Laiyong Wang Lv6

一、对称加密算法(Symmetric Encryption)

1. 分类 & 代表性算法

分类 代表算法 简介
分组加密 DES3DESAESSM4 每次加密固定长度的数据块,如128位
流加密 RC4Salsa20/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 最经典的非对称算法,支持加密和签名
基于离散对数问题 DSAElGamal 用于数字签名,ElGamal 可用于加密
基于椭圆曲线 ECC(如ECDSA, ECDH) 提供更高强度,密钥更短,适合移动设备
国密算法 SM2 国密非对称加密算法,基于ECC

2. 应用场景

  • 数字签名(如SSL证书签名)
  • 密钥交换(如HTTPS的握手阶段)
  • 区块链签名(如比特币用ECDSA)
  • 身份认证、电子合同、电子邮件加密

3. 优缺点

优点 缺点
不需要共享密钥,安全性高 运算复杂,效率低,不适合大数据量加密
可用于签名,确保身份认证和完整性 算法设计复杂,容易因参数选择错误而不安全
可用于构建PKI(公钥基础设施)体系 密钥长度较长,传输和存储成本高

三、哈希算法(Hash Functions)

1. 分类 & 代表性算法

类型 代表算法 简介
常规哈希 MD5SHA-1SHA-256/512SM3 生成固定长度的摘要,用于校验、签名等
密钥哈希 HMAC-MD5HMAC-SHA256 加盐(带密钥)哈希,用于认证
特殊哈希 bcryptscryptArgon2 专为密码保护设计,抗暴力破解

2. 应用场景

  • 数据完整性校验(如Git、文件下载校验)
  • 数字签名(如SSL证书中的签名)
  • 密码保护(如系统登录密码存储)
  • 区块链(如比特币区块结构)

3. 优缺点

优点 缺点
一致性强,相同输入一定生成相同输出 一旦被破解(如MD5、SHA-1),将不再安全
摘要固定长度,节省存储 无法还原原文,只用于验证和比对
算法计算快,适合大规模数据校验 对碰撞攻击较敏感,需选用安全算法(如SHA-256、SM3)

四、三者综合对比

特性 对称加密 非对称加密 哈希算法
加解密双方 相同密钥 公钥加密,私钥解密 仅单向处理,无解密
用途 数据保密 签名、身份认证、密钥交换 数据校验、签名辅助
性能 非常快
安全性 依赖密钥安全 更安全,适合开放场景 摘要碰撞要避免
是否可逆 否(单向)

五、常见组合应用场景举例

  • HTTPS / TLS:使用非对称加密(RSA/ECDHE)交换对称密钥(AES),传输数据用AES加密,消息摘要用哈希(SHA-256)进行签名验证。
  • 区块链:用ECC签名交易,用SHA256进行数据摘要与区块链接。
  • 文件签名:文件内容生成哈希 → 用私钥签名该哈希 → 公钥验证签名是否一致。

如你有某个算法或场景想深入探讨(如TLS、区块链、国密SM系列),我也可以继续展开。