feat: v1.0.0 祀梦笔记:从 0 到 1 的数字化花园建设
This commit is contained in:
193
docs/notes/theory/cryptography/README.md
Normal file
193
docs/notes/theory/cryptography/README.md
Normal file
@@ -0,0 +1,193 @@
|
||||
---
|
||||
title: 密码学基础
|
||||
createTime: 2025/10/27 10:38:57
|
||||
permalink: /theory/cryptography/
|
||||
---
|
||||
|
||||
# 密码学基础
|
||||
|
||||
## 1. 密码学的定义
|
||||
|
||||
### 1.1 基本概念
|
||||
|
||||
**密码学(Cryptography)** 是一门研究信息安全的学科,主要关注如何在不安全的环境中实现安全通信。其核心是通过数学方法对信息进行变换,使得只有授权方能够理解信息内容。
|
||||
|
||||
### 1.2 核心目标
|
||||
|
||||
密码学追求以下四个主要安全目标:
|
||||
|
||||
- **机密性(Confidentiality)**:确保信息只能被授权的人访问
|
||||
- **完整性(Integrity)**:确保信息在传输过程中不被篡改
|
||||
- **认证性(Authentication)**:确认通信双方的身份真实性
|
||||
- **不可否认性(Non-repudiation)**:防止发送方事后否认发送过信息
|
||||
|
||||
### 1.3 重要作用
|
||||
|
||||
密码学在现代信息安全中扮演着至关重要的角色:
|
||||
|
||||
- 保护个人隐私和商业机密
|
||||
- 确保金融交易的安全性
|
||||
- 维护国家安全和军事通信
|
||||
- 支撑互联网基础设施的安全运行
|
||||
|
||||
### 1.4 主要应用场景
|
||||
|
||||
- **网络安全**:HTTPS、VPN、SSL/TLS协议
|
||||
- **数字身份认证**:数字证书、数字签名、双因素认证
|
||||
- **区块链技术**:加密货币、智能合约、分布式账本
|
||||
- **移动通信**: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世纪)
|
||||
|
||||
**凯撒密码(Caesar Cipher)**
|
||||
- 时间:公元前1世纪
|
||||
- 原理:字母移位加密
|
||||
- 示例:将字母向后移动3位,A→D,B→E
|
||||
|
||||
**斯巴达密码棒(Scytale)**
|
||||
- 时间:公元前5世纪
|
||||
- 原理:缠绕在特定直径木棒上的皮条
|
||||
|
||||
古典密码简述:
|
||||
- 核心思路:替换或移位(重新排列)字符。
|
||||
- 代表示例:凯撒(替换)、栅栏(移位)、维吉尼亚(多表替换)。
|
||||
- 直觉目标:混淆结构、增加猜测难度;但易受频率分析。
|
||||
|
||||
### 2.2 文艺复兴时期(15-18世纪)
|
||||
|
||||
**维吉尼亚密码(Vigenère Cipher)**
|
||||
- 时间:16世纪
|
||||
- 原理:多表替换密码
|
||||
- 特点:比单表替换更安全
|
||||
|
||||
**博福特密码(Beaufort Cipher)**
|
||||
- 时间:18世纪
|
||||
- 原理:改进的维吉尼亚密码
|
||||
|
||||
### 2.3 近代密码学(19-20世纪中期)
|
||||
|
||||
**恩尼格玛密码机(Enigma)**
|
||||
- 时间:二战时期
|
||||
- 原理:机械转子密码机
|
||||
- 重要性:推动了现代密码分析的发展
|
||||
|
||||
**香农的信息论**
|
||||
- 时间:1949年
|
||||
- 贡献:为密码学奠定了数学理论基础
|
||||
|
||||
### 2.4 现代密码学(1970年代至今)
|
||||
|
||||
**DES算法**
|
||||
- 时间:1977年
|
||||
- 意义:第一个公开的加密标准
|
||||
|
||||
**RSA算法**
|
||||
- 时间:1977年
|
||||
- 意义:第一个实用的公钥密码系统
|
||||
|
||||
**AES算法**
|
||||
- 时间: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 关键历史时间线
|
||||
|
||||
```
|
||||
公元前5世纪:斯巴达密码棒
|
||||
公元前1世纪:凯撒密码
|
||||
16世纪:维吉尼亚密码
|
||||
1918年:一次一密密码本
|
||||
1949年:香农信息论
|
||||
1977年:DES和RSA算法
|
||||
2001年:AES标准
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 总结
|
||||
|
||||
密码学作为信息安全的基石,经历了从简单替换到复杂数学算法的漫长发展历程。现代密码学建立在严格的数学基础之上,通过对称加密、非对称加密等多种技术手段,为数字世界提供了可靠的安全保障。
|
||||
|
||||
理解密码学的基本原理和分类,有助于我们更好地应用这些技术来保护信息安全,同时也为深入学习更高级的密码学概念奠定基础。
|
||||
|
||||
本篇笔记的所有代码开源于:[https://gitea.simengweb.com/si-meng-spec/cryptography-example-code](https://gitea.simengweb.com/si-meng-spec/cryptography-example-code)
|
||||
Reference in New Issue
Block a user