# 加密

> CIE A-Level 计算机科学 · 9618
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u6-encryption/

本模块涵盖CIE A-Level 9618的核心加密概念，包括简单密码、对称和非对称系统、它们的应用，以及考试要求掌握的比较和计算。

**先修:** [掌握质数和模运算的基础知识](https://www.owlsprep.com/zh/study/cie-9618-u1-data-representation/)

## 学习目标

- 区分对称加密系统和非对称加密系统
- 解释加密在传输中数据和静态数据中的应用
- 完成凯撒密码和RSA密码的简单加密计算
- 在考题中评估不同加密方法之间的权衡

## 核心概念与简单密码

**加密** — 将可读的明文转换为不可读的密文，防止未授权访问的过程，解密使用密钥将该过程逆转。

*例:* 在存储到公司数据库之前加密客户支付数据

简单替换密码常用于CIE考题中考察基础加密原理，最常见的例子是凯撒密码。

**凯撒密码** — 一种替换密码，每个明文字母沿字母表移动$k$个位置，解密需要向相反方向移动相同的$k$。

*记法:* Shift = $k$

**例题:** 使用凯撒密码加密明文*CODE*，偏移量$k=3$，其中$A=0, B=1, ... Z=25$。

1. 将每个明文字母转换为对应数值：
2. $$C = 2, O = 14, D = 3, E = 4$$
3. 给每个数值加上偏移量，对26取模：
4. $$2+3=5, 14+3=17, 3+3=6, 4+3=7$$
5. 将新数值转换回字母：
6. $$5=F, 17=R, 6=G, 7=H$$
7. 最终密文是**FRGH**

> **考试提示:** 一定要检查题目中将A定义为0还是1，这会改变最终的密文输出。

## 对称加密

**对称加密** — 加密和解密使用同一个秘密密钥的加密系统，该密钥只能在授权方之间共享。

考试常考的对称算法包括AES（高级加密标准）、DES和3DES。对称加密速度非常快，非常适合加密大量数据。

> **info**
>
> 对称加密的主要局限是安全密钥分发：如果密钥在共享过程中被拦截，第三方就能解密所有消息。

**例题:** Alice和Bob想要通过不安全的公共信道使用AES-256对称加密通信，为什么这种方式不安全？

1. 通过不安全公共信道发送的任何密钥都可能被攻击者拦截
2. 如果攻击者获得了秘密密钥，他们就能解密Alice和Bob之后所有的加密消息
3. 交换过程中没有预先存在的共享密钥来加密密钥本身，因此无法保证其安全性

## 非对称加密

**非对称加密** — 使用一对数学上关联的密钥的加密系统：一个公钥（公开共享）和一个私钥（由所有者秘密保管）。

- 使用用户公钥加密的数据只能用对应的私钥解密
- 使用用户私钥签名的数据可以被任何拥有该用户公钥的人验证（用于数字签名）

考试最常考的非对称算法是RSA，它依赖质数的性质。下面是一个供考试练习的简单RSA示例：

**例题:** 已知RSA参数$n = 55 = 5 \times 11$，公钥指数$e = 7$，加密明文$M = 12$。

1. RSA加密公式为：
2. $$C = M^e \mod n$$
3. 代入数值：
4. $$C = 12^7 \mod 55$$
5. 分解指数简化计算：$12^7 = 12^4 \times 12^2 \times 12^1$
6. $$12^2 = 144 \equiv 144 - 2(55) = 34 \mod 55$$
7. $$12^4 = (12^2)^2 = 34^2 = 1156 \equiv 1156 - 21(55) = 1 \mod 55$$
8. 相乘后对55取模：
9. $$C = 1 \times 34 \times 12 = 408 \equiv 408 - 7(55) = 23 \mod 55$$
10. 最终密文$C = 23$

**方法对比**

CIE经常要求比较对称加密和非对称加密，核心性质如下：

- **对称加密** — 加密和解密使用相同密钥，密钥必须保密
  - 优点: 速度极快，适合处理大型数据集; 相同安全强度下密钥尺寸更小
  - 缺点: 安全分发密钥需要预先共享秘密; 对数字签名的支持不佳

- **非对称加密** — 公钥和私钥分离，公钥可以公开共享
  - 优点: 可以在公共信道上安全交换密钥; 原生支持数字签名
  - 缺点: 速度慢，计算量大; 不适合处理大量数据

> **考试提示:** 将RSA的指数分解为2的幂次，避免计算大数字，这样可以节省时间并减少计算错误。

## 加密的应用

加密用于保护两种主要状态的数据：

- **静态数据**：加密存储的数据，例如整个硬盘、密码数据库和客户支付信息
- **传输中数据**：加密通过公共网络发送的数据，例如HTTPS网络流量、电子邮件和VPN连接
- **数字签名**：通过使用发送者的私钥对内容的散列值签名，验证软件更新、法律文件和网站的真实性

**概念自测**

测试你的理解

1. HTTPS传输的批量数据使用哪种加密方式加密？

   - 对称加密
   - 非对称加密
   - RSA加密
   - 不加密

   *答案:* 对称加密

   *解析:* 正确！HTTPS使用非对称加密交换对称会话密钥，之后使用速度更快的对称加密处理所有批量数据传输。

## 常见错误

- **错误做法:** 混淆加密和散列（哈希）
  - 原因: 考官经常考察这个区分，混淆两者会丢失轻松可得的分数
  - 正确做法: 记住：加密=可逆向的保密性，散列=单向完整性检查
- **错误做法:** 认为非对称加密一定比对称加密好
  - 原因: 非对称加密慢得多，因此不用于处理大量数据
  - 正确做法: 说明两种方法结合使用：非对称加密用于密钥交换，对称加密用于批量数据
- **错误做法:** 混淆非对称加密中加密/解密分别使用哪个密钥
  - 原因: 这是对公钥/私钥角色的常见误解
  - 正确做法: 给某人发送消息时：用对方的公钥加密，只有对方的私钥可以解密
- **错误做法:** 在RSA题目中计算完整的大指数
  - 原因: 这会导致计算错误，浪费宝贵的考试时间
  - 正确做法: 将指数分解为2的幂次，每一步都对$n$取模以保持数值较小
- **错误做法:** 认为非对称加密使用一个共享密钥
  - 原因: 混淆了对称和非对称的核心性质，是常见的考试陷阱
  - 正确做法: 记住：对称加密=1个共享密钥，非对称加密=每个用户2个密钥（公钥+私钥）

## 速查表

| 性质 | 对称加密 | 非对称加密 |
| --- | --- | --- |
| 密钥数量 | 1个共享秘密密钥 | 每个用户2个密钥：公钥 + 私钥 |
| 密钥分发 | 需要安全的预先共享信道 | 公钥可以公开共享 |
| 速度 | 速度极快，计算量低 | 速度慢，计算量高 |
| 最适合 | 批量数据、静态数据 | 密钥交换、数字签名 |

## 下一步

加密是CIE 9618试卷2所有安全主题的基础概念，在扩展回答题中经常会结合其他安全概念考察。理解对称加密和非对称加密之间的权衡对于回答HTTPS、数字证书和安全网络通信相关的问题至关重要。加密通常与散列结合保证数据完整性，是所有现代安全系统的基础。接下来，你可以学习相关安全主题，建立对本单元的完整理解。

- [访问控制](https://www.owlsprep.com/zh/study/cie-9618-u6-access-control/)
- [数据完整性](https://www.owlsprep.com/zh/study/cie-9618-u6-data-integrity/)
- [隐私问题](https://www.owlsprep.com/zh/study/cie-9618-u6-privacy-issues/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u6-encryption/
