密码学算法分类指南

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


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

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


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 传完整性)。
相关推荐
Elias不吃糖9 分钟前
LeetCode每日一练(3)
c++·算法·leetcode
小龙报25 分钟前
《算法通关指南数据结构和算法篇(2)--- 链表专题》
c语言·数据结构·c++·算法·链表·学习方法·visual studio
艾莉丝努力练剑1 小时前
【优选算法必刷100题】第031~32题(前缀和算法):连续数组、矩阵区域和
大数据·人工智能·线性代数·算法·矩阵·二维前缀和
醉颜凉1 小时前
环形房屋如何 “安全劫舍”?动态规划解题逻辑与技巧
c语言·算法·动态规划
大雨淅淅1 小时前
一文搞懂动态规划:从入门到精通
算法·动态规划
不去幼儿园1 小时前
【启发式算法】灰狼优化算法(Grey Wolf Optimizer, GWO)详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法
随意起个昵称1 小时前
【二分】洛谷P2920,P2985做题小记
c++·算法
没书读了1 小时前
计算机组成原理-考前记忆清单
线性代数·算法
Hcoco_me1 小时前
大模型面试题5:矩阵(M*M)特征值分解的步骤
算法·机器学习·矩阵
非著名架构师2 小时前
极端天气下的供应链韧性:制造企业如何构建气象风险防御体系
大数据·人工智能·算法·制造·疾风气象大模型·风光功率预测