密码算法与安全通信协议分析 - 第1节

1.1 密码学发展史:从古典到量子

密码学并非现代计算机的产物,其历史可追溯至四千年前的古埃及。理解这段历史,有助于把握密码技术演进的底层逻辑——始终是“加密者”与“破译者”之间的对抗博弈。

时期 代表算法/事件 核心特征 典型弱点
古典密码(~1940s) 凯撒密码、维吉尼亚密码、恩尼格玛机 基于字母替换或换位,依赖算法保密 频率分析可攻破;密钥空间有限
近代密码(1949–1975) 香农《保密系统的通信理论》 引入信息论,奠定理论安全基础 仍以对称密码为主,密钥分发困难
现代密码(1976–至今) DES、RSA、ECC、AES 公钥密码革命;算法公开、密钥保密 量子计算威胁现有公钥体系
后量子密码(演进中) 格密码、多变量密码、哈希签名 抗量子计算攻击;NIST 标准化进行中 性能开销较大,尚未广泛部署
里程碑事件:1976 年 Diffie 与 Hellman 发表《密码学的新方向》,首次提出公钥密码概念,彻底解决了对称密码中“密钥分发”这一千年难题。
密码学发展时间线 古典密码 凯撒/维吉尼亚 近代密码 香农信息论 现代密码 RSA / AES 后量子密码 格密码 对抗博弈驱动密码算法持续演进,每一次破译突破都催生更强的加密体系

1.2 密码学基本概念

无论算法多么复杂,密码系统始终围绕三个核心要素构建:明文、密文和密钥。加密过程将明文转换为密文,解密过程则逆向恢复。

  • 明文(Plaintext):原始的可读消息,如 "HELLO" 或一段 JSON 数据。
  • 密文(Ciphertext):加密后的乱码,对未授权方无意义,如 "XJQQZ"。
  • 密钥(Key):控制加密/解密算法的秘密参数,是密码系统的安全核心。
  • 加密算法(Encryption Algorithm):将明文与密钥结合生成密文的数学变换。
  • 解密算法(Decryption Algorithm):使用密钥将密文还原为明文的逆变换。
柯克霍夫原则(Kerckhoffs's Principle):密码系统的安全性应仅依赖于密钥的保密性,而非算法的保密性。算法可以公开,只要密钥不泄露,系统就是安全的。这是现代密码设计的基石。
加密/解密基本流程 明文 加密算法 E(P, K) 密文 解密算法 D(C, K) 密钥 K 密钥 K 加密:C = E(P, K)  解密:P = D(C, K)  必须满足 D(E(P, K), K) = P

1.3 密码学分类

根据密钥的使用方式,密码算法分为三大类:对称密码、非对称密码和哈希函数。三者各有适用场景,现代安全协议通常组合使用。

类型 密钥数量 典型算法 主要用途 性能
对称密码 1 个(共享密钥) AES, ChaCha20, SM4 数据加密、批量通信加密 快(硬件加速)
非对称密码 2 个(公钥 + 私钥) RSA, ECDSA, SM2 密钥交换、数字签名、身份认证 慢(数学运算复杂)
哈希函数 无密钥 SHA-256, SM3, BLAKE3 完整性校验、密码存储、数字签名辅助 快(单向不可逆)
常见误区:哈希函数不是“加密算法”。加密是可逆的(有解密算法),而哈希是单向的,无法从摘要恢复原始输入。将哈希称为“加密”会导致安全设计上的严重错误。

1.4 安全目标:CIA + 不可否认性

密码学的最终目的是保障信息系统的四大安全目标。任何安全协议的设计,本质上都是在权衡这些目标的实现成本与风险。

  1. 机密性(Confidentiality):确保信息不被未授权方获取。通过加密实现,防止窃听。
  2. 完整性(Integrity):确保信息在传输或存储中未被篡改。通过哈希或消息认证码(MAC)实现。
  3. 可用性(Availability):确保授权用户能够正常访问信息和服务。密码学通过冗余、抗拒绝服务设计间接保障。
  4. 不可否认性(Non-repudiation):防止发送方或接收方事后否认行为。通过数字签名实现,提供法律级证据。
密码学四大安全目标 安全 目标 机密性 加密 → 防窃听 完整性 哈希/MAC → 防篡改 可用性 冗余/抗DoS 不可否认性 数字签名 → 防抵赖
现实案例:HTTPS 协议同时实现了四大目标——TLS 握手使用非对称密码认证身份(不可否认性),会话使用对称密码加密数据(机密性),消息认证码校验数据是否被篡改(完整性),而 TLS 的重传机制和证书吊销检查保障了服务的可用性。