我最近在听比尔·布坎南(Bill Buchanan)的播客,他通过计算各种密码任务所需的能量和需要煮沸多少水来演示它们的难度。有些任务所需的能量足以煮沸一茶匙水,有些任务所需的能量甚至足以煮沸一个游泳池的水,还有些任务所需的能量甚至足以煮沸全世界的海洋。
这是比较各种操作难度的绝佳方法。俗话说“煮沸大海不可取”,因此,直观地看,需要煮沸大海才能破解的加密在所有实际应用中都是安全的[1]。此外,使用能量而不是时间来计算,可以避免并行计算工作量的问题。
Buchanan 认为使用沸水单位的想法是 Lenstra 等人 [2] 提出的。
这种新方法的灵感源自第三作者在 Crypto 2010 大会上展示 768 位 RSA 挑战因式分解时发表的言论:我们估计,因式分解所需的能量足以将两个 20°C 的奥林匹克标准游泳池烧开。该能量估计为 50 万千瓦时。
用该论文的术语来说,745 位 RSA 加密和 65 位对称密钥加密都具有“池安全性”,因为破解它们所需的能量足以煮沸一个奥运游泳池。
安全性通常以对称加密来衡量,因此 65 位安全性被称为“池安全性”。同样,114 位安全性被称为“全球安全性”,这意味着破解它需要的能量足以煮沸地球上所有的水,大约 14 亿立方公里的水。
因为破解对称加密的难度是密钥长度n的指数函数,我们可以逆向工程论文中用于将密钥长度转换为水体积的公式,即n位安全需要能量来煮沸
6.777 × 10 −14 2 n
升水。
[1] 如果风险模型中的所有假设都是正确的:软件实现正确,没有不可预见的算法改进,密钥是随机生成的,等等。
[2] Arjen Lenstra、Thorsten Kleinjung 和 Emannuel Thomé。通用安全:从比特到 mips,再到池、湖及其他。
文章“用几升沸水来测量加密强度”最先出现在John D. Cook身上。
原文: https://www.johndcook.com/blog/2025/09/02/cryptographic-strength/