From 868cc9b5146330c41258d49d65208bc65114c627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=80=E6=A2=A6?= <3501646051@qq.com> Date: Wed, 29 Oct 2025 13:45:37 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E5=AF=86=E7=A0=81=E5=AD=A6):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=9F=BA=E7=A1=80=E6=A6=82=E5=BF=B5=E4=B8=8E=E6=9C=AF?= =?UTF-8?q?=E8=AF=AD=E7=AB=A0=E8=8A=82=E5=92=8C=E7=8E=B0=E4=BB=A3=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E7=AE=80=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为初学者添加密码学核心概念解释,包括明文/密文、加密/解密、密钥类型等基础术语。同时补充现代密码学中对称加密、非对称加密和数字签名的简要说明,帮助建立基本认知框架。 --- docs/notes/theory/cryptography/README.md | 282 +++++++---------------- 1 file changed, 83 insertions(+), 199 deletions(-) diff --git a/docs/notes/theory/cryptography/README.md b/docs/notes/theory/cryptography/README.md index 1e1f209..0ce9650 100644 --- a/docs/notes/theory/cryptography/README.md +++ b/docs/notes/theory/cryptography/README.md @@ -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