Lec 10 密码学
资料依据:课程视频与 transcript · Lecture notes
TL;DR
- 对称密码要求通信双方预先共享密钥;Diffie–Hellman 利用离散对数难题,让双方在公开信道上协商共享秘密。
- RSA 从大素数 p,q 构造 n=pq,使用互为模逆的指数加解密;正确性由模运算定理保证,安全性则依赖分解大合数的计算困难。
- 中国剩余定理将若干两两互素模数下的余数唯一合并为乘积模数下的解,也可用于分解和加速模运算。
1. 密码学基础概念
密码学(cryptography):保护信息的艺术与科学。核心目标:加密(encrypt)消息,使得只有指定接收方能解密(decrypt)。
角色约定:
- Alice:发送方
- Bob:接收方
- Eve:窃听者(eavesdropper),能看到所有传输内容
密码方案(cryptographic scheme)= 加密算法 + 解密算法。
2. 历史演进(概览)
2.1 Caesar 密码 → Caesar 移位
- Caesar 密码: 每个字母固定向后移 3 位(A-Z 视为 1-26,加 3(mod26))。"Security by Obscurity",已知方案即可破解。
- Caesar 移位: 引入秘密密钥 k,加密 +k(mod26),解密 −k(mod26)。但密钥空间仅 26,暴力破解(brute force attack)可轻松穷举。
2.2 代换密码 (Substitution Cipher)
密钥是一张字母映射表(26! 种可能),穷举不可行。
但可被频率分析(frequency analysis)破解:高频密文字母对应高频明文字母(如英文中的 E)。
2.3 德国 Enigma 机
机械式变位设备,约 3×10114 种配置。"Security by Hubris"——设计者自认无法破解,但盟军仍将其攻破,关键利用了已知明文攻击(known plaintext attack,如固定格式的气象报文)。
2.4 一次性密码本 (One-Time Pad)
将消息视为大整数 m(0≤m<n),加密:enc(m,k)=(m+k)remn,解密:m=(enc−k)remn。
优点: k 均匀随机时,密文完全均匀随机,信息零泄露(information-theoretically secure)。
致命缺点——密钥不可复用:
- 已知明密文对 ⇒ 可还原 k(已知明文攻击)。
- 两条密文之差 = 两条明文之差(模 n),信息泄露。
根本矛盾: 安全地传送新密钥,本身就需要一个已有的安全信道——循环依赖。
3. Diffie-Hellman 密钥交换
目标: Alice 和 Bob 在公开信道上协商出共同秘密 k,Eve 无法得知。
依赖的困难问题: 离散对数问题(discrete logarithm problem)——已知 c、camodn,求 a 计算上不可行(n 为大质数时)。
协议:
- 公开大质数 n 和随机基 c(1<c<n−1);
- Alice 选随机私钥 a,计算并发送 camodn;
- Bob 选随机私钥 b,计算并发送 cbmodn;
- Alice 计算 (cb)amodn=cabmodn;
- Bob 计算 (ca)bmodn=cabmodn;
- 共同秘密 =cabmodn。
Eve 知道 camodn 和 cbmodn,但无法从中高效推出 cabmodn(需解离散对数)。
实现细节: 计算 camodn(a 有数百位)使用快速幂(repeated squaring),仅需 O(loga) 次模乘运算。
4. RSA 公钥密码系统
背景: Rivest、Shamir、Adleman 三人于 MIT 发明,2002 年获图灵奖。现代互联网安全基石。
公钥密码(public-key cryptosystem)的惊人之处:加密密钥可以公开,但只有持有私钥的人才能解密。
4.1 密钥生成
- 选取两个大质数 p,q(保密),令 n=pq(公开);
- 选取与 (p−1)(q−1) 互质的整数 e(公开);
- 用 Pulverizer 计算 d≡(p−1)(q−1)e−1(保密),即 ed≡(p−1)(q−1)1;
- 公钥 kp=(n,e),私钥 ks=(n,d)。
4.2 加解密
加密:E(m,kp)=memodn 解密:D(c,ks)=cdmodn
4.3 正确性证明
需证 med≡nm。
设 ed=1+t(p−1)(q−1)。对模 p(设 gcd(m,p)=1):
med=m1+t(p−1)(q−1)=m⋅(mp−1)t(q−1)≡pm⋅1t(q−1)≡pm
(最后一步用了 Fermat 小定理:mp−1≡p1)
同理 med≡qm,故 p∣(med−m) 且 q∣(med−m)。
因 gcd(p,q)=1,由 CRT 得 pq∣(med−m),即 med≡nm。■
4.4 安全性
- 公开: n=pq,e。
- 保密: p,q,d。
- 安全假设: 分解大整数 n=pq 计算上不可行(大整数分解困难假设)。
- 额外假设:RSA 假设(计算 e 次方根模 pq 困难)和扩展黎曼假设(ERH)。
- 量子计算机可高效分解大整数(Shor 算法),RSA 届时将不安全。
4.5 寻找大质数
- 用 Miller-Rabin 算法高效检验一个数是否为质数。
- 质数定理(Prime Number Theorem):π(k)∼k/lnk,即在 k=10300 附近,约每 ln(10300)≈700 个数中有一个质数,随机试验期望约 700 次即可找到。
5. 中国剩余定理 (Chinese Remainder Theorem, CRT)
Theorem (CRT). 设 p,q 互质,a,b∈Z。则在模 pq 意义下,方程组
x≡pa,x≡qb
存在唯一解 x(0≤x<pq)。
构造解(存在性):
定义:
- p−1:p 模 q 的逆元;eq=p−1⋅p,则 eq≡p0,eq≡q1;
- q−1:q 模 p 的逆元;ep=q−1⋅q,则 ep≡p1,ep≡q0;
- x=aep+beq。
验证:
x≡pa⋅1+b⋅0=a,x≡qa⋅0+b⋅1=b✓
唯一性:
设 x,x′ 均满足,令 y=x−x′。则 p∣y 且 q∣y。
由 gcd(p,q)=1,用 Bézout 恒等式可推出 pq∣y,即 x≡pqx′。■
Example. 0≤x<55,x≡54,x≡117。
满足 x≡117 的数:7,18,29,40,51;其中 29≡54,故 x=29。
6. 关键术语速查
| 英文 | 中文 |
|---|
| Cryptography | 密码学 |
| Encrypt / Decrypt | 加密 / 解密 |
| Eavesdropper | 窃听者 |
| Cryptographic scheme | 密码方案 |
| Brute force attack | 暴力破解 |
| Frequency analysis | 频率分析 |
| Known plaintext attack | 已知明文攻击 |
| One-time pad | 一次性密码本 |
| Discrete logarithm problem | 离散对数问题 |
| Diffie-Hellman key exchange | Diffie-Hellman 密钥交换 |
| Repeated squaring | 快速幂 / 反复平方法 |
| Public-key cryptosystem | 公钥密码系统 |
| RSA | RSA 加密算法 |
| Public key / Secret key | 公钥 / 私钥 |
| Prime Number Theorem | 质数定理 |
| Miller-Rabin | Miller-Rabin 素性检验 |
| Chinese Remainder Theorem (CRT) | 中国剩余定理 |
我的理解
我的理解
数学上的正确性与密码学的安全性是两个不同命题:前者证明合法密文能被正确解密,后者需要明确对手模型和难题假设。教材版 RSA 展示数学结构,实际系统还必须使用安全填充和经审计的库。