跳转至

第 2 章:密码学基础 —— 信息的"锁"与"钥匙"

场景: 你要给朋友寄一封密信,不想让任何人看到内容。你可以把信锁进一个盒子,用钥匙锁上——朋友用同样的钥匙打开(对称加密)。或者,朋友给你一把"公开的锁",你用这把锁锁上盒子——只有朋友的"私人钥匙"能打开(非对称加密)。


2.1 密码学基本概念

术语 含义 比喻
明文(Plaintext) 原始的可读信息 没上锁的信
密文(Ciphertext) 加密后的不可读信息 锁进保险箱的信
加密(Encryption) 明文 → 密文的过程 把信锁进保险箱
解密(Decryption) 密文 → 明文的过程 用钥匙打开保险箱
密钥(Key) 控制加密/解密的参数 保险箱的钥匙
算法(Algorithm) 加密/解密的数学方法 保险箱的锁芯设计
明文 ──── 加密算法 + 密钥 ────→ 密文 ──── 解密算法 + 密钥 ────→ 明文
"Hello"                          "Ifmmp"                          "Hello"

2.2 对称加密

核心比喻:对称加密就是"一把钥匙开一把锁"

你和朋友各有一把相同的钥匙。你锁上盒子,朋友用同样的钥匙打开。问题是:怎么安全地把钥匙交给朋友?如果钥匙在传递途中被截获,加密就失效了。

对称加密特点

特点 说明
密钥数量 加密和解密使用 同一密钥
加密速度 (适合大量数据加密)
密钥分发 困难 (需要安全通道传递密钥)
密钥管理 n 个人两两通信需要 \(n(n-1)/2\) 个密钥

常见对称加密算法

算法 密钥长度 分组长度 安全性 现状
DES 56 位 64 位 ❌ 已被暴力破解 淘汰
3DES 112/168 位 64 位 ⚠️ 较弱 逐步淘汰
AES 128/192/256 位 128 位 ✅ 安全 当前标准
SM4 128 位 128 位 ✅ 安全 中国国密标准
ChaCha20 256 位 流密码 ✅ 安全 移动端常用

分组密码工作模式

模式 全称 特点
ECB Electronic Codebook 简单但不安全(相同明文产生相同密文)
CBC Cipher Block Chaining 前一个密文块影响后一个(需要 IV)
CTR Counter 将分组密码转为流密码,支持并行
GCM Galois/Counter Mode CTR + 认证,提供加密和完整性保护

2.3 非对称加密

核心比喻:非对称加密就是"公开的锁 + 私人的钥匙"

朋友给你寄了一个打开的锁(公钥),任何人都能拿到这把锁。你用这把锁锁上盒子——之后只有朋友的私人钥匙(私钥)能打开。

公钥可以公开分发,私钥必须严格保密。这完美解决了对称加密的"密钥分发难题"。

非对称加密特点

特点 说明
密钥数量 公钥 (公开)+ 私钥 (保密)
加密速度 (比对称加密慢 100~1000 倍)
密钥分发 简单 (公钥可以公开)
密钥管理 n 个人只需 n 对密钥

常见非对称加密算法

算法 基于的数学难题 密钥长度 用途
RSA 大整数分解 2048/4096 位 加密、数字签名
ECC 椭圆曲线离散对数 256 位 加密、签名(移动端)
SM2 椭圆曲线 256 位 中国国密标准
DSA 离散对数 仅数字签名

RSA vs ECC

ECC 用更短的密钥达到与 RSA 相同的安全强度:

安全强度 RSA 密钥长度 ECC 密钥长度
128 位 3072 位 256 位
256 位 15360 位 512 位

ECC 特别适合移动设备和物联网设备(计算能力有限)。


2.4 哈希函数

核心比喻:哈希就是给文件盖"防伪印章"

你有一份重要合同,你在上面盖了一个防伪印章——印章图案由合同内容唯一决定。哪怕合同只改了一个标点符号,印章图案就完全不同了。

哈希函数就是数学版的"防伪印章"——输入任意长度的数据,输出固定长度的"指纹"。

哈希函数特性

特性 含义
定长输出 无论输入多长,输出长度固定
单向性 从哈希值无法反推出原始数据
抗碰撞性 很难找到两个不同输入产生相同哈希值
雪崩效应 输入微小变化导致输出剧烈变化
SHA-256 示例:

输入: "Hello"
输出: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

输入: "hello"  (仅 h 大小写不同)
输出: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
      ↑ 完全不同!

常见哈希算法

算法 输出长度 安全性 现状
MD5 128 位 ❌ 已被破解 仅用于非安全场景(如文件校验)
SHA-1 160 位 ❌ 已被破解 淘汰
SHA-256 256 位 ✅ 安全 广泛使用
SHA-3 可变 ✅ 安全 最新标准
SM3 256 位 ✅ 安全 中国国密标准

2.5 数字签名

核心比喻:数字签名就是"亲笔签名 + 按手印"

你在合同上签名并按手印——签名证明是你签的(不可否认),手印证明合同没被替换(完整性)。

数字签名 = 哈希 + 非对称加密:先对消息做哈希,再用私钥加密哈希值。

签名过程:
消息 ──→ 哈希 ──→ 哈希值 ──→ 用私钥加密 ──→ 数字签名
                                          └── 附在消息后一起发送

验证过程:
收到消息 + 签名
    ├──→ 消息 ──→ 哈希 ──→ 哈希值 A
    └──→ 签名 ──→ 用公钥解密 ──→ 哈希值 B

    比较 A == B?
    ├── 相等 → ✅ 签名有效,消息未被篡改
    └── 不等 → ❌ 签名无效或消息被篡改

数字证书与 PKI

数字签名解决了"消息来自谁"的问题,但"公钥属于谁"还需要数字证书来证明。

概念 说明
数字证书 由 CA 签发的"公钥身份证",绑定身份和公钥
CA 证书颁发机构(Certificate Authority),可信第三方
PKI 公钥基础设施,管理证书的签发、吊销、更新
证书链 根 CA → 中间 CA → 终端证书的信任链

2.6 常见考试题型

例题 1: 以下属于对称加密算法的是( )。

A. RSA  B. AES  C. ECC  D. SM2

查看答案

答案:B

AES(Advanced Encryption Standard)是对称加密算法。RSA、ECC、SM2 都是非对称加密算法。

例题 2: 哈希函数的"雪崩效应"是指( )。

A. 输入越长输出越长  B. 输入微小变化导致输出剧烈变化  C. 可以反推出原始数据  D. 输出长度不固定

查看答案

答案:B

雪崩效应(Avalanche Effect)是指输入数据的任何微小变化(如改变一个比特)都会导致哈希输出发生剧烈且不可预测的变化,这是安全哈希函数的重要特性。

例题 3: 数字签名使用( )对消息摘要进行加密。

A. 发送方的公钥  B. 发送方的私钥  C. 接收方的公钥  D. 接收方的私钥

查看答案

答案:B

数字签名使用发送方的私钥对消息摘要(哈希值)进行加密。验证时使用发送方的公钥解密。这样只有拥有私钥的发送方才能生成有效的签名。


要点总结

  • 对称加密:同一密钥加解密,速度快(AES),密钥分发困难
  • 非对称加密:公钥加密、私钥解密,速度慢(RSA/ECC),密钥分发简单
  • 哈希函数:定长输出、单向、抗碰撞、雪崩效应(SHA-256/SM3)
  • 数字签名 = 哈希 + 私钥加密,提供身份认证和完整性保护
  • 实际应用:HTTPS 用非对称加密交换密钥,用对称加密传输数据

课后练习

  1. 算法分类 :将以下算法分为对称加密、非对称加密和哈希三类:AES、RSA、SHA-256、3DES、ECC、MD5、SM2、SM3、SM4。

  2. 签名分析 :描述数字签名的生成和验证过程,说明为什么数字签名能同时保证完整性和不可否认性。

  3. 真题演练 :HTTPS 协议中,使用(  )加密算法安全交换会话密钥,使用(  )加密算法加密实际传输的数据。


下一章预告: 密码学解决了"数据怎么保护"的问题。但"你是谁"——身份认证——是安全的第一道门。第 3 章见。

继续第 3 章:身份认证与访问控制 →