通用安全(从水滴到泳池、湖泊……以至突破极限)
本篇是阅读《Universal security from bits and mips to pools, lakes — and beyond》时所做的读书笔记,旨在加深对加密算法中所谓的安全等级/比特安全的一种直观上的理解。
文献信息
- 文献名称:Universal security from bits and mips to pools, lakes — and beyond
- 文献作者:Arjen K. Lenstra 1 ^1 1, Thorsten Kleinjung 1 ^1 1, Emmanuel Thomé 2 ^2 2
- 文献期刊:Number Theory & Cryptography
主要内容
本文直接以算法破解所需的能量来衡量破解的难度,简单粗暴。
当前的安全等级(Current security levels)
若加密方案的破解难度为 2 k 2^k 2k(以某商定的单位),则称其安全等级为 k k k(security level k k k)。
- 对称加密:记密钥长度为 k k k比特,则安全等级为 k k k
- 散列函数:若输出为 h h h比特,则安全等级不大于 h / 2 h/2 h/2
- 公钥加密:
- RSA:若分解 n n n比特模数耗时 T T T,则分解和 n n n差不多大的 m m m比特模数的耗时可估计为 N ( m ) N ( n ) T \frac{N(m)}{N(n)}T N(n)N(m)T ,其中 N ( k ) = exp ( 1.923 ( ln 2 k ) 1 / 3 ( ln ln 2 k ) 2 / 3 ) N(k)=\exp(1.923(\ln 2^k)^{1/3}(\ln \ln 2^k)^{2/3}) N(k)=exp(1.923(ln2k)1/3(lnln2k)2/3)。 768 768 768、 1024 1024 1024和 2048 2048 2048比特的RSA分别具有约 66 66 66、 76 76 76和 106 106 106的安全等级
- 离散对数: Z q \mathbb{Z}_q Zq上的操作比散列函数慢 2 c 2^c 2c 倍( 0 ⩽ c ⩽ 10 0\leqslant c \leqslant 10 0⩽c⩽10),故安全等级为 c + log 2 q c+\log_2 \sqrt{q} c+log2q
- 基于格的:无法分析
直观的安全等级(Intuitive security levels)
本文不以“ k k k比特安全”来描述“安全等级 k k k”,该灵感来自于Crypto 2010上对 786 786 786比特RSA挑战进行分解的描述:
估计分解所需能量足以使两个 2 0 ∘ C 20^\circ C 20∘C的奥林匹克泳池烧开(约 500 500 500万kWh)。
- “泳池安全(pool security)”:如果说,某个加密方案提供“泳池安全”即意味着攻破这个方案所需的能量足以煮沸一个奥林匹克泳池(即,2500立方米的水)。目前的65位对称密码、130位散列函数和745位RSA均提供着“泳池安全”。
- “雨水安全(rain security)”:荷兰地区日均降水量为8200万立方米(即, 2 15 2^{15} 215个泳池)。80位对称密码、160位散列函数和1130位RSA均提供着“雨水安全”。如果以德国每位公民烧开1立方米的水的能量来衡量(德国人口约为8200万人),故也可称之为”德国安全(German security)。
- “湖泊安全(lake security)”:比 2 25 2^{25} 225稍多些的泳池足够装满日内瓦湖(Geneva)了(约89立方公里)。90位对称密码、180位散列函数和1440位RSA均可提供“湖泊安全”。
- “全球安全(global security)”:全球总水量(包括所有海星(starfish))约为 2 24 2^{24} 224个日内瓦湖。114位对称密码、228位散列函数和2380位RSA均提供“全球安全”。这意味着,破解AES-128、SHA-256或3064位的RSA需要蒸发全球总水量至少16千次。
- “太阳能安全(solar security)”:上述安全级别已经把地球上所有的水都蒸发掉了。更高的安全等级可以用太阳能来定义,即一年内的总太阳能。140位对称密码、280位散列函数和3730位均提供“太阳能安全”。
突破极限(To infinity — and beyond)
- “宇宙安全(universal security)”:估计可观测宇宙所蕴含的质能是烧沸两个泳池的能量(从 2 0 ∘ C 20^\circ C 20∘C开始)的 2 190 2^{190} 2190倍。256位对称密码、512位散列函数和14954位RSA提供“宇宙安全”。
总结(Summary)
就算门外汉,也能直观地选择合适的安全参数。
表1 直观的安全等级
安全等级 | 加热至沸腾的水的体积(从 2 0 ∘ C 20^\circ C 20∘C开始) | 对称密钥/位 | 散列函数/位 | RSA模数/位 |
---|---|---|---|---|
茶匙安全1(teaspoon security) | 0.0025 公升 | 35 | 70 | 242 |
沐浴安全(shower security) | 80 公升 | 50 | 100 | 453 |
泳池安全(pool security) | 2 500 000 公升 | 65 | 130 | 745 |
雨水安全(rain security) | 0.082 立方公里 | 80 | 160 | 1130 |
湖水安全(lake security) | 89 立方公里 | 90 | 180 | 1440 |
海水2安全(sea security) | 3 750 000 立方公里 | 105 | 210 | 1990 |
全球安全(global security) | 1 400 000 000 立方公里 | 114 | 228 | 2380 |
太阳能安全(solar security) | - | 140 | 280 | 3730 |