{"name":"密码学","id":"计算机网络-网络安全-密码学-密码学","content":"# 密码学\n\n> **密码学不是一组算法，而是一套在不可信环境中建立\"可计算信任\"的系统工程。**\n\n---\n\n## 一、密码学要解决的根本问题（第一性原理）\n\n在开放网络中，**通信双方默认彼此不可信，通信介质也不可信**。\n密码学的本质目标不是“加密数据”，而是：\n\n> **在敌对环境中，用可验证的计算成本，约束攻击者的能力边界。**\n\n因此，密码学关注的不是“是否能破解”，而是：\n\n* 破解需要付出多大的 **计算代价**\n* 是否在 **可接受时间内不可行**\n* 是否存在 **系统性绕过路径**\n\n---\n\n## 二、密码学的能力目标（Why）\n\n所有密码学机制，最终都服务于四类**稳定的安全目标**：\n\n| 安全目标  | 本质含义             |\n| ----- | ---------------- |\n| 机密性   | 未授权者无法获知信息内容     |\n| 完整性   | 信息在传输与存储过程中不可被篡改 |\n| 认证性   | 确认通信实体或消息来源的真实性  |\n| 不可否认性 | 行为发生后无法被否认       |\n\n> 重要结论：\n> **任何单一密码机制都无法同时满足全部目标。**\n\n---\n\n## 三、密码学的分层认知结构（How）\n\n这是理解密码学的**核心认知模型**。\n\n### 1️⃣ 原语层（Primitive）\n\n> 不可再分的数学或计算构件\n\n* 单向散列函数\n* 对称分组密码\n* 公钥数学难题（大整数分解、离散对数、椭圆曲线）\n\n**特点**：\n\n* 只解决局部问题\n* 本身不可直接使用\n\n---\n\n### 2️⃣ 构造层（Construction）\n\n> 将原语组合成可用安全能力\n\n* MAC（消息认证码）\n* 数字签名\n* AEAD（认证加密）\n* 密钥派生函数（PBKDF、HKDF）\n\n**特点**：\n\n* 开始具备安全语义\n* 安全性依赖组合方式，而非单一算法\n\n---\n\n### 3️⃣ 协议层（Protocol）\n\n> 多方在时间维度上的安全交互规则\n\n* TLS / HTTPS\n* Kerberos\n* Diffie-Hellman 密钥交换\n* PGP 信任模型\n\n**特点**：\n\n* 引入状态、时序、角色\n* 攻击面显著扩大\n\n---\n\n### 4️⃣ 系统层（System）\n\n> 密码学在真实系统中的落地\n\n* 密钥生命周期管理\n* 随机数治理\n* 错误处理与边信道防护\n* 算法弃用与迁移\n\n**结论**：\n\n> **密码学失败，几乎总发生在系统层。**\n\n---\n\n## 四、攻击者模型与安全边界（Against What）\n\n现代密码学不是“防君子”，而是**假设最坏情况**。\n\n### 攻击能力分级\n\n| 攻击模型   | 含义         |\n| ------ | ---------- |\n| 唯密文攻击  | 只能看到密文     |\n| 已知明文攻击 | 知道部分明文与密文  |\n| 选择明文攻击 | 可构造明文并观察密文 |\n| 选择密文攻击 | 可诱导系统解密    |\n\n> **现代安全算法必须至少抵御选择明文攻击。**\n\n---\n\n### 安全类型\n\n* **无条件安全**：不依赖计算能力（理论存在）\n* **计算安全**：破解成本超出可行范围（工程现实）\n\n---\n\n## 五、安全强度与时间维度（When）\n\n安全不是绝对概念，而是**与时间和算力相关的经济问题**。\n\n* N 位安全强度 ≈ 需要 2ⁿ 次运算\n* 算力增长 + 密码分析进展 ⇒ **安全强度持续衰减**\n\n> **算法设计必须面向未来，而非当前。**\n\n---\n\n## 六、对称密码：效率与规模的基础设施\n\n### 本质定位\n\n> **对称密码解决的是“高效、大规模数据保护”问题。**\n\n### 核心特性\n\n* 同一密钥用于加解密\n* 速度快，适合海量数据\n* 最大挑战在于：**密钥管理**\n\n---\n\n### 分组密码的设计哲学\n\n* **混淆（Confusion）**：隐藏密钥与密文关系\n* **扩散（Diffusion）**：明文变化影响整体密文\n* **雪崩效应**：一位变化导致整体变化\n\n---\n\n### 工作模式的工程意义\n\n* ECB：无状态，但泄露结构（原则上禁用）\n* CBC：引入状态，但易遭填充攻击\n* AEAD：同时解决机密性 + 完整性（现代首选）\n\n> **工程结论**：\n> **没有认证的加密 = 不安全的加密**\n\n---\n\n## 七、公钥密码：信任建立的基础设施\n\n### 本质定位\n\n> **公钥密码不是用来加密数据，而是用来建立信任关系。**\n\n### 典型能力\n\n* 密钥交换\n* 身份认证\n* 数字签名\n\n### 代价\n\n* 算法复杂\n* 性能较低\n* 通常只用于“协商阶段”\n\n---\n\n## 八、哈希与认证：完整性的核心机制\n\n### 哈希函数的角色\n\n* 数据指纹\n* 完整性检测\n* 构造更高级机制的基础\n\n### 典型风险\n\n* 碰撞攻击\n* 长度延展攻击\n\n> **设计原则**：\n> **哈希 ≠ 认证，必须引入密钥（HMAC）**\n\n---\n\n## 九、认证加密（AEAD）：现代密码工程的收敛点\n\nAEAD 统一解决：\n\n* 机密性\n* 完整性\n* 认证\n\n典型算法：\n\n* AES-GCM\n* ChaCha20-Poly1305\n\n**核心风险**：\n\n* Nonce / IV 重复 ⇒ 灾难性失败\n\n---\n\n## 十、随机数：密码系统的生命线\n\n> **随机数质量，直接决定整个系统的安全上限。**\n\n* 真随机：昂贵\n* 伪随机：依赖种子与构造安全性\n\n工程要求：\n\n* 不可预测\n* 不可重复\n* 可审计来源\n\n---\n\n## 十一、密码学的工程哲学（稳定结论）\n\n### 黄金法则\n\n* 不要自己设计密码算法\n* 不要只加密而不认证\n* 不要重复使用随机数\n* 不要暴露错误细节\n* 不要忽视系统边界\n\n---\n\n## 结语：密码学的真正价值\n\n> **密码学不是为了\"绝对安全\"，\n> 而是为了让攻击的成本，高到不值得。**\n\n它是一门：\n\n* 数学支撑\n* 工程实现\n* 经济博弈\n* 人类信任\n\n交汇而成的学科。\n\n## 关联内容（自动生成）\n\n- [/计算机网络/网络安全/安全性.md](/计算机网络/网络安全/安全性.md) 密码学是网络安全的基础，提供了实现安全性的核心技术手段，包括加密、认证、完整性保护等\n- [/计算机网络/网络安全/安全架构.md](/计算机网络/网络安全/安全架构.md) 安全架构中大量使用密码学原语和协议来构建安全系统，如TLS/SSL协议、数字证书等\n- [/计算机网络/网络安全/认证与授权.md](/计算机网络/网络安全/认证与授权.md) 密码学是实现认证与授权的基础，包括数字签名、哈希函数、公钥基础设施(PKI)等技术\n- [/计算机网络/网络安全/网络安全技术.md](/计算机网络/网络安全/网络安全技术.md) 网络安全技术中广泛使用密码学来实现数据保护、身份认证、密钥交换等功能\n- [/计算机网络/网络安全/Web安全.md](/计算机网络/网络安全/Web安全.md) Web安全依赖密码学来实现HTTPS、会话管理、数据传输保护等安全机制\n- [/操作系统/安全.md](/操作系统/安全.md) 操作系统安全与密码学密切相关，包括加密文件系统、安全启动、密钥管理等\n- [/中间件/数据库/数据库.md](/中间件/数据库/数据库.md) 数据库安全使用密码学技术实现数据加密、访问控制、审计日志等安全功能\n- [/数据技术/合规与安全.md](/数据技术/合规与安全.md) 数据安全合规需要密码学技术来实现数据加密、脱敏、完整性校验等要求\n- [/计算机网络/网络安全/业务安全.md](/计算机网络/网络安全/业务安全.md) 业务安全中使用密码学技术保护交易数据、用户隐私、数字签名等关键业务信息\n- [/计算机网络/网络安全/网络协议安全.md](/计算机网络/网络安全/网络协议安全.md) 网络协议安全依赖密码学来实现协议层的数据保护、身份验证和完整性校验\n","metadata":"tags: ['密码学', '安全', '加密', '认证', '完整性', '机密性']","hasMoreCommit":true,"totalCommits":21,"commitList":[{"date":"2026-02-12T14:56:23+08:00","author":"MY","message":"docs(密码学): 添加标签和关联内容链接","hash":"d8762271ec4b3d85be020ec1b6fe208834a9c223"},{"date":"2025-12-20T19:35:43+08:00","author":"MY","message":"docs(cryptography): 重构密码学文档结构，强化核心概念与安全边界","hash":"d4c6bd5a3bdcded369eeef9b1544e1b0c3787645"},{"date":"2023-04-06T15:54:04+08:00","author":"MY","message":"✏密码学","hash":"3fd1a08aaad81df9fea3bc967c7fac7b92278161"},{"date":"2023-04-04T15:42:48+08:00","author":"MY","message":"✏密码学","hash":"75235efabb9e1533a537a35a832cc6fffb945d44"},{"date":"2023-03-31T17:23:59+08:00","author":"MY","message":"✏密码学","hash":"b20596db826d6e13a6720fca095cb4a97e839fd4"},{"date":"2023-03-29T14:59:03+08:00","author":"MY","message":"✏密码学","hash":"4424b1b2a236c55d298c5f223597de6d935c0ec0"},{"date":"2023-03-28T22:04:29+08:00","author":"MY","message":"✏️密码学","hash":"a62680a236da89d8381f872846cfe08d734ee168"},{"date":"2022-06-13T21:25:34+08:00","author":"MY","message":"✏️更新 网络安全相关","hash":"b63f8d14136140a18b8f72fbe7e5aad417ff0328"},{"date":"2022-06-01T16:30:01+08:00","author":"cjiping","message":"📦整理 网络安全","hash":"269283053fdd22fc22929e391e7b5476aad253a8"},{"date":"2022-03-10T14:44:34+08:00","author":"cjiping","message":"📦整理 网络安全","hash":"0627c76525382c476b79af5063e287699dfd8be6"}],"createTime":"2020-06-03T11:37:57+08:00"}