docs(密码学): 添加基础概念与术语章节和现代密码简述

为初学者添加密码学核心概念解释,包括明文/密文、加密/解密、密钥类型等基础术语。同时补充现代密码学中对称加密、非对称加密和数字签名的简要说明,帮助建立基本认知框架。
This commit is contained in:
祀梦
2025-10-29 13:45:37 +08:00
parent 60b9923302
commit 868cc9b514
+83 -199
View File
@@ -38,6 +38,68 @@ permalink: /theory/cryptography/
- **移动通信**:SIM卡加密、移动支付安全
- **物联网安全**:设备身份认证、数据传输加密
### 1.5 基础概念与术语(入门)
为方便初学者快速建立直觉,先认识密码学中最核心的几个概念:
**明文(Plaintext)与密文(Ciphertext**
- 明文:未加密的原始消息,例如“HELLO”。
- 密文:加密后的消息,人类或未授权系统难以直接理解。
**加密(Encryption)与解密(Decryption**
- 加密:用密钥将明文转换为密文,记为:
$$
C = E_k(P)
$$
- 解密:用密钥将密文还原为明文,记为:
$$
P = D_k(C)
$$
其中,$P$ 表示明文,$C$ 表示密文,$k$ 表示密钥,$E$ 为加密算法,$D$ 为解密算法。
**密钥(Key):对称密钥 vs 非对称密钥**
- 对称密钥:加密和解密使用相同的密钥,速度快,但密钥分发与管理是难点。
- 非对称密钥(公钥密码):加密使用“公钥”,解密使用“私钥”,便于密钥分发,还能支持数字签名。
对称加密流程示意(同一把密钥):
```mermaid
flowchart LR
S[发送者] -- 使用共享密钥 K 加密 --> C[(密文)]
C -- 使用共享密钥 K 解密 --> R[接收者]
```
非对称加密流程示意(公钥/私钥):
```mermaid
flowchart LR
S[发送者] -- 使用接收者公钥加密 --> C[(密文)]
C -- 使用接收者私钥解密 --> R[接收者]
```
在典型的 RSA 公钥体制中,还可以用一个简洁的数学表达式表示加解密:
$$
\begin{aligned}
c &= m^{e} \bmod n,\\
m &= c^{d} \bmod n,
\end{aligned}
$$
其中 $(e, n)$ 为公钥,$(d, n)$ 为私钥,$m$ 为明文,$c$ 为密文。
**常见攻击模型简介(只需直观理解)**
- 唯密文攻击(COA):攻击者只有密文,尝试恢复明文或密钥。
- 已知明文攻击(KPA):攻击者拥有部分“明文-密文”对,用于分析算法或密钥。
- 选择明文攻击(CPA):攻击者可选择明文并获取其密文,用于推断密钥或算法结构。
- 选择密文攻击(CCA):攻击者可选择密文并得到其解密结果,进一步分析系统弱点。
直观结论:设计良好的现代密码系统,应当在这些攻击模型下仍保持安全(在合理的参数与假设下)。
## 2. 密码学历史简述
### 2.1 古代密码学(公元前-15世纪)
@@ -51,6 +113,11 @@ permalink: /theory/cryptography/
- 时间:公元前5世纪
- 原理:缠绕在特定直径木棒上的皮条
古典密码简述:
- 核心思路:替换或移位(重新排列)字符。
- 代表示例:凯撒(替换)、栅栏(移位)、维吉尼亚(多表替换)。
- 直觉目标:混淆结构、增加猜测难度;但易受频率分析。
### 2.2 文艺复兴时期(15-18世纪)
**维吉尼亚密码(Vigenère Cipher**
@@ -87,6 +154,22 @@ permalink: /theory/cryptography/
- 时间:2001年
- 意义:取代DES的新一代加密标准
现代密码简述:
- 对称加密:同一密钥加解密,适合大量数据(示例:AES/DES/3DES)。
$$
C = E_k(P), \quad P = D_k(C)
$$
- 非对称加密:公钥加密、私钥解密,便于密钥分发与数字签名(示例:RSA/ECC)。
$$
c = m^{e} \bmod n, \quad m = c^{d} \bmod n
$$
- 密钥交换:Diffie–Hellman 在不安全信道建立共享密钥。
- 数字签名:私钥签名、公钥验证,保障真实性与不可否认性。
### 2.5 关键历史时间线
```
@@ -99,206 +182,7 @@ permalink: /theory/cryptography/
2001年:AES标准
```
## 3. 密码分类
### 3.1 古典密码
#### 3.1.1 替换密码(Substitution Cipher
**原理**:将明文中的每个字符替换为另一个字符
**凯撒密码示例**
```
明文:HELLO
密钥:移位3
密文:KHOOR
加密公式:C = (P + K) mod 26
解密公式:P = (C - K) mod 26
```
**单表替换密码**
- 特点:每个明文字符对应固定的密文字符
- 弱点:频率分析攻击
#### 3.1.2 移位密码(Transposition Cipher
**原理**:重新排列明文字符的顺序
**栅栏密码示例**
```
明文:CRYPTOGRAPHY
写入: 读取:
C R Y P C Y R H A R Y
T O G R T O G P P
A P H Y
密文:CYRHARYTOGPP
```
#### 3.1.3 维吉尼亚密码
**原理**:使用关键词进行多表替换
**加密过程**
```
明文:ATTACKATDAWN
密钥:LEMON
密文:LXFOPVEFRNHR
计算:
A(0) + L(11) = L(11)
T(19) + E(4) = X(23)
T(19) + M(12) = F(5)
...
```
#### 3.1.4 古典密码的局限性
- 易受频率分析攻击
- 密钥空间有限
- 缺乏严格的数学证明
- 无法抵抗现代计算攻击
### 3.2 现代密码
#### 3.2.1 对称加密(Symmetric Cryptography
**定义**:加密和解密使用相同密钥的密码系统
**基本原理**
```
加密:C = E(K, P)
解密:P = D(K, C)
其中:
C - 密文
P - 明文
K - 密钥
E - 加密函数
D - 解密函数
```
**常见算法**
**AES(高级加密标准)**
- 密钥长度:128/192/256位
- 分组大小:128位
- 轮数:10/12/14轮
- 结构:SPN网络
**DES(数据加密标准)**
- 密钥长度:56位(实际64位)
- 分组大小:64位
- 轮数:16轮
- 结构:Feistel网络
**3DES(三重DES**
- 原理:三次DES加密
- 密钥长度:168位
- 兼容DES但更安全
**对称加密优缺点**
**优点**
- 加密速度快
- 计算资源需求低
- 适合大量数据加密
**缺点**
- 密钥分发困难
- 密钥管理复杂
- 不支持数字签名
**应用场景**
- 文件加密
- 数据库加密
- 网络通信加密
- 磁盘加密
#### 3.2.2 非对称加密(Asymmetric Cryptography
**公钥密码体系概念**
使用一对数学相关的密钥:
- **公钥(Public Key)**:公开分发,用于加密
- **私钥(Private Key**:秘密保存,用于解密
**加密过程示意图**
```
发送方 接收方
| |
明文 + 接收方公钥 → 密文 → 密文 + 接收方私钥 → 明文
| |
加密 解密
```
**典型算法**
**RSA算法**
- 基于大数分解难题
- 密钥生成:选择两个大质数p,q,计算n=pq,φ(n)=(p-1)(q-1)
- 公钥:(e, n),其中1<e<φ(n)且gcd(e,φ(n))=1
- 私钥:(d, n),其中d≡e⁻¹ mod φ(n)
**RSA加密示例**
```
假设:
p=61, q=53, n=3233, φ(n)=3120
选择e=17, 计算d=2753
公钥:(17, 3233)
私钥:(2753, 3233)
加密:C = M¹⁷ mod 3233
解密:M = C²⁷⁵³ mod 3233
```
**ECC(椭圆曲线加密)**
- 基于椭圆曲线离散对数问题
- 相同安全强度下密钥更短
- 计算效率更高
**ElGamal加密**
- 基于离散对数问题
- 可用于加密和数字签名
**数字签名应用**
```
签名过程:
1. 对消息计算哈希值 H(M)
2. 使用私钥加密哈希值 S = Sign(私钥, H(M))
3. 发送 (M, S)
验证过程:
1. 对消息计算哈希值 H(M)
2. 使用公钥解密签名 Verify(公钥, S) = H'(M)
3. 比较 H(M) == H'(M)
```
**密钥交换应用**
- Diffie-Hellman密钥交换
- 在不安全信道建立共享密钥
**与对称加密的比较分析**
| 特性 | 对称加密 | 非对称加密 |
|------|----------|------------|
| 密钥数量 | 1个 | 2个(公钥+私钥) |
| 加密速度 | 快 | 慢 |
| 密钥分发 | 困难 | 容易 |
| 数字签名 | 不支持 | 支持 |
| 适用场景 | 大量数据 | 小量数据、密钥交换 |
**混合加密系统**
实际应用中常结合两种加密方式:
```
1. 使用非对称加密交换对称密钥
2. 使用对称加密加密实际数据
3. 结合两种加密的优势
```
## 总结