教科书式 RSA 及其不安全原因
演示可塑性攻击、小指数攻击和 e=3 漏洞
第 1 / 4 课13 个步骤
教科书式 RSA 及其不安全原因 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
教科书式 RSA(原始模幂运算)存在多个严重漏洞。本课将逐一探讨这些攻击,并理解为什么填充不是可选项。
确定性攻击
教科书式 RSA 具有确定性:Enc(M) 始终产生相同的 C。攻击者可以加密候选消息,并将结果与目标密文进行比较。这会破坏小消息空间的机密性。
可塑性
RSA 具有乘法可塑性:Enc(M1) × Enc(M2) = Enc(M1×M2) mod n。攻击者可以将密文乘以 Enc(2) = 2^e,迫使明文翻倍,而无需知道密钥。
小消息攻击(e=3)
如果 e=3 且 M < n^(1/3):C = M^3 mod n = M^3(不会进行模约减)。对 C 求立方根即可直接得到 M。务必使用经过填充的 RSA,并确保 M 足够大。
科珀史密斯攻击
科珀史密斯证明:如果 e=3 且攻击者知道 M 的很大一部分(例如,M = YYYY-MM-DD...[unknown portion]),则可以通过多项式分解恢复未知比特。较短的填充明文容易受到攻击。
哈斯塔德广播攻击
如果同一个 M 被发送给 3 个接收者,且每个接收者都使用 e=3:根据 CRT,C1、C2、C3 可以确定 M^3 mod (n1×n2×n3)。直接求立方根即可得到 M。切勿使用 e=3 将相同明文加密后发送给多个接收者。
富兰克林–赖特相关消息攻击
如果两条消息 M1 和 M2 具有线性关系(M2 = aM1+b),并且都使用同一密钥加密,则可以利用这种关系恢复 M1 和 M2。使用随机字节进行填充可以防止这种攻击。
共模攻击
如果两台服务器共享 n,但使用不同的 e1、e2,且 GCD(e1,e2)=1,同时两者都加密同一个 M,则可以使用扩展欧几里得算法恢复 M。切勿在不同实体之间共享模数。
RSA 解密计时攻击
RSA 解密所需的时间取决于私钥比特(平方乘法算法会随比特值变化)。科彻在 1996 年的计时攻击中测量解密时间,以恢复私钥。解决方案:盲化。
RSA 盲化防御
解密前:C' = C × r^e mod n(乘以随机盲化因子 r^e)。计算 M' = C'^d mod n。M = M' × r^(-1) mod n。此时计时取决于 r,而不是 M,攻击者只能获得带噪声的测量结果。
根本修复:随机填充
所有教科书式 RSA 攻击都有一个共同的修复方法:随机填充。PKCS#1 v1.5 引入了随机性。OAEP 提供了可证明的安全性。使用正确的填充后,上述攻击都无法奏效。
快速检查
教科书式 RSA 的什么性质使攻击者能够测试密文是否包含特定消息?
回顾
教科书式 RSA 极不安全。接下来我们将研究 PKCS#1 v1.5 填充——它的设计和使用方式,以及攻破它的布莱肯巴赫攻击。
免费开始
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「教科书式 RSA 及其不安全原因」课时是免费的吗?
是的 — 「教科书式 RSA 及其不安全原因」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「教科书式 RSA 及其不安全原因」这节课中我会学到什么?
演示可塑性攻击、小指数攻击和 e=3 漏洞 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「教科书式 RSA 及其不安全原因」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 教科书式 RSA 及其不安全原因
- PKCS#1 v1.5 填充与 Bleichenbacher 攻击
- OAEP:最优非对称加密填充
- 用于数字签名的 RSA-PSS