密码学算法分类指南

密码算法是现代信息安全的核心,广泛用于加密通信、身份认证、数据完整性校验等,这里主要介绍密码学通用的三个分类。


一、密码算法主流分类(按密钥机制与功能)

这是最常见的分类方式,分为三大类


1. 对称加密算法

特点

  1. 加解密使用同一密钥
  2. 速度快、效率高
  3. 密钥分发困难(需安全通道)

代表算法

算法 类型 状态
AES 块密码 推荐,广泛使用
SM4 块密码 国密标准
ChaCha20 流密码 快速,适用于移动设备
RC4 流密码 已淘汰
DES 块密码 已不安全
3DES 块密码 逐步淘汰(NIST已禁用)

1.1 工作模式(ECB、CBC、GCM)

对称"块加密算法"需要配合工作模式来处理多块数据。

模式 安全性 并行支持 认证加密( AEAD ) 用途
ECB 不安全 演示
CBC 安全 文件、老 TLS
GCM 安全 HTTPS、TLS 1.3

工作模式结构图(简化版)

1.1.1. ECB(Electronic Codebook)模式:电子密码本
  1. 每个明文块独立加密,不依赖其他块。
  2. 同样的明文块 → 相同的密文块(无随机性)。

优点: 实现简单、支持并行处理。

缺点: 易泄露数据模式,不安全。

1.1.2. CBC(Cipher Block Chaining)模式:密码块链接
  1. 每个明文块在加密前先与上一个密文块异或(XOR)
  2. 第一个块使用随机的初始向量(IV)参与运算。

优点: 增加随机性,避免明文模式泄露。

缺点: 加密过程不能并行,因为每块依赖前一块。

更安全,适用于文件加密、旧版 TLS 等场景。

1.1.3. GCM(Galois/Counter Mode):计数器模式 + 完整性认证
  1. 每个明文块与计数器加密值异或(CTR 模式),计数器每块递增。
  2. 同时使用 Galois 哈希函数对密文和附加数据生成身份验证标签(Tag)

优点:

支持 **并行加密、**内建 **完整性验证(AEAD).**安全性高,适合现代通信协议

缺点: 实现稍复杂,对计数器唯一性要求严格。

推荐用于现代应用: HTTPS、TLS 1.3、IPSec等。


2. 非对称加密算法

特点

  1. 使用一对密钥(公钥 / 私钥)
  2. 用于加密、签名、密钥交换
  3. 适合公开密钥交换和身份认证

代表算法

功能类型 代表算法 说明
加密 RSA、SM2(加密) SM2 是国密算法,支持加密
签名 ECDSA、EdDSA、SM2(签名) 数字签名,确保身份和不可抵赖性
密钥交换 DH、ECDH、SM2(密钥协商) 建立对称密钥

SM2 是一个完整的公钥密码体系,支持加密、签名、密钥协商。


3. 摘要算法

特点

  • 无密钥、单向、不可逆
  • 将任意长度输入映射为固定长度输出
  • 提供完整性验证和数据指纹

代表算法

算法 状态 特点
SHA-256 推荐 标准哈希函数
SHA-3 推荐 基于 Keccak,抗量子结构
SM3 国密标准 国密摘要算法
MD5 / SHA-1 不安全 已被攻破,仅用于非安全应用
BLAKE3 推荐 高性能、现代应用友好
  1. 哈希函数并不保证"唯一性",但提供"近似唯一的指纹"。
  2. 抗碰撞性、一致性、原像抗性是关键安全属性。

4. 密钥派生函数 & 密码哈希函数(独立分类)

这些算法一般基于哈希函数,可以根据用途和安全设计目标不同,单独分类。

类型 代表算法 用途
密码哈希函数 bcrypt、Argon2 用于密码存储,抗暴力破解
KDF PBKDF2、HKDF 从主密钥派生不同用途的密钥

密码哈希函数通常设计为"慢"和"带盐",以防止彩虹表攻击和爆破。


二、其他密码算法分类方法

1. 按用途分类

用途 示例
加密 AES、SM4、RSA
签名 RSA签名、ECDSA、SM2签名
完整性校验 SHA-256、SM3、HMAC
密钥派生 PBKDF2、Argon2、HKDF

2. 按是否可逆

类型 示例
可逆算法 AES、RSA、SM4
不可逆 SHA-256、SM3、bcrypt

3. 按数学基础

数学基础 示例算法
大整数分解 RSA
椭圆曲线离散对数 ECC、SM2、ECDSA
离散对数问题 DSA、DH
哈希基础 SHA-3、SPHINCS+
格理论(后量子) Kyber(KEM)、Dilithium(签名)

4. 按抗量子能力

类型 示例算法 抗量子能力
传统密码 RSA、ECC 部分可破解
AES-256 对称加密推荐强度 抗量子
PQC 算法 Kyber、Dilithium NIST 标准

数字签名 ≠ 加密

签名和加密是两种不同的密码学原语,具有不同的安全目标和使用规范。不要将签名视为加密,也不要混用签名密钥与加密密钥。


5. 密码算法整体对比表

类别 是否使用密钥 是否可逆 功能 示例算法
对称加密 保密性(含 AEAD 模式如 GCM) AES、ChaCha20、SM4
非对称加密 保密性、签名 RSA、SM2、ECC
摘要算法 完整性校验 SHA-256、SHA-3、SM3
密码哈希函数 否(使用盐) 密码保护 bcrypt、Argon2
KDF 密钥扩展 PBKDF2、HKDF
数字签名(非对称) 身份认证 ECDSA、SM2(签名)、Ed25519

三、总结

  1. "对称 / 非对称 / 哈希" 是密码学最主流的三大类。
  2. 密码哈希、KDF 因为应用需求被单独分类。
  3. 工作模式(ECB、CBC、GCM 等)对实际加密效果有很大的影响。
  4. 实际系统推荐使用混合加密结构(非对称加密传密钥 + 对称加密传数据 + HMAC/SHA 传完整性)。
相关推荐
绝无仅有8 小时前
某游戏大厂的 Redis 面试必问题解析
后端·算法·面试
微笑尅乐8 小时前
三种方法解开——力扣3370.仅含置位位的最小整数
python·算法·leetcode
MMjeaty8 小时前
查找及其算法
c++·算法
寂静山林9 小时前
UVa 1597 Searching the Web
数据结构·算法
云泽8089 小时前
排序算法实战:从插入排序到希尔排序的实现与性能对决
算法·排序算法
多恩Stone9 小时前
【3DV 进阶-5】3D生成中 Inductive Bias (归纳偏置)的技术路线图
人工智能·python·算法·3d·aigc
.ZGR.10 小时前
蓝桥杯高校新生编程赛第二场题解——Java
java·算法·蓝桥杯
blammmp10 小时前
算法专题十七:穷举vs暴搜vs深搜vs回溯vs剪枝
算法·机器学习·剪枝
haofafa10 小时前
高精度加减法
java·数据结构·算法