对于安全密钥大小有许多不同的建议,并且有许多不同的方法来估计执行计算的未来能力。例如,www.keylength.com结合了很多建议。
但是,我要寻找的是数量众多的简单操作,显然这些操作对所有人来说都是无法实现的。人类在可预见的未来-或实际上仍是最低的这样的价值。
很明显,2 ^ 256个简单的操作是永远无法实现的。同样很明显,可以达到2 ^ 64个简单的操作。许多建议似乎将2 ^ 128计算为可以安全使用30年或更长时间的数字。因此,我正在寻找的值可能在2 ^ 128和2 ^ 256之间。我猜想2 ^ 160或2 ^ 192可能安全地超出了范围。
但是我想要可以轻松推理的具体参数。我很乐意看到基于简单物理学定律或与宇宙具体常数之间关系的论点。例如,可以使用Landauer原理。
注意:此处使用的实际简单操作并不相关-它们可能是量子计算机上的操作,哈希调用或其他任何操作。
#1 楼
首先,我们将认为每个基本操作都意味着最小的能源消耗。朗道尔原理将极限设置为0.0178 eV,即2.85×10-21J。另一方面,如果将太阳系的总质量全部转换为能量,则将产生约1.8×1047 J(实际上就是根据此页面,您将获得太阳的质量,但是太阳占据了狮子在太阳系总质量中的份额)。这意味着约6.32×1068基本计算的硬限制,即2225.2。 (我认为这种计算已经由Schneier在“应用密码学”中进行了介绍。)当然,这是一个非常极端的情况,尤其是,我们不知道如何将质量转换为能量。 -核裂变与聚变仅将可用质量的一小部分转化为能量。让我们看一个更平凡的视角。可以合理地假设,利用现有技术,每个基本操作必须以某种方式暗示着至少一个逻辑门的切换。单个CMOS栅极的开关功率约为C×V2,其中C为栅极负载电容,V为栅极工作电压。从2011年开始,一个非常高端的栅极将能够在0.5 V的电压下运行,并且负载电容为几个毫微微法拉(“ femto”表示10-15)。这导致每次操作的最低能耗不低于10-15J。当前,世界总能耗每年约为500 EJ(5×1020 J)(或类似的说法)。假设地球的总能源生产被转移到一个单一的计算十年,我们得到的限制为5×1036,接近2122。
然后,您必须考虑技术进步。考虑到当前对生态问题的关注和石油峰值的趋势,未来几年总的能源产量不应增加太多(比如说到2040年,能源产量不得超过2倍,这已经是生态学家的噩梦)。另一方面,集成电路设计方面有技术进步。摩尔定律指出,每两年可在给定的芯片表面上安装两倍数量的晶体管。一个非常乐观的观点是,晶体管数量的这种加倍可以在恒定的能量消耗下完成,这将意味着每两年将基本操作的能量成本降低一半。这样一来,到2040年,总数将达到2138,这是为期10年的一次计算,它调动了整个星球的所有资源。
因此,“在接下来的几十年中,128位足够了”(这还取决于您认为“安全”无法达到的范围,但是我自己的偏执程度只有“ 128位”才相当安静)。 br />
关于量子计算机的注释:QC可以在一个“操作”中完成很多工作。通常的说法是,质量控制执行“同时进行多次计算,最后我们将其过滤掉”。这个断言在许多细节上是错误的,但它仍然包含一些事实:QC应该能够在2n / 2基本量子运算中攻击n位对称密码学(例如,使用n位密钥的对称加密)。因此,经典技巧就是:要考虑量子计算机(如果存在的话),请将密钥长度加倍。因此,具有256位密钥的AES SHA-512 ...(AES的256位密钥并非旨在防御假设的量子计算机,但如今,这就是证明256位密钥的合理性的方法。)
评论
我真的只想说,哇。托马斯,做得好,这是一个很好的答案。 :-)
–克里斯托弗
11年8月11日在19:15
令人印象深刻的答案,希望我能多次投票。但是即使假设无法进行超级计算,也不要忘记可逆计算-如果您可以可逆地执行2 ^ 31次操作,则您可能能够使用黑洞在经典计算机上达到2 ^ 256次操作负性,并将其逐个投入整个太阳系。
–user502
2011年8月12日15:43
这种解释肯定存在,甚至广泛传播;有些人想要更大的密钥,因为他们认为密钥以某种方式逐渐被攻击消耗。但是,这一假设不受事实支持。实际上,休息往往是全有或全无。在某些特定情况下,较大的密钥可能较弱(例如,在相当深奥的情况下,AES-256实际上比AES-128弱得多,幸运的是,在实践中不适用相关密钥攻击)。
–托马斯·波宁(Thomas Pornin)
15年2月3日,12:08
通用限制的有趣注释:假设2.76K(背景辐射温度)而不是室温,并且假设宇宙中有10 ^ 24个恒星,则我们至少需要312位安全性; 624位元不受星际外星际计算机的影响。
–杰伊·沙利文(Jay Sullivan)
2015年8月1日,下午1:42
我认为必须提出的第一个假设存在问题。 Laundauer原理仅适用于不可逆的操作。
– davenpcj
16年7月15日在16:18
#2 楼
注意:这里使用的实际简单操作无关紧要-它们可能是量子计算机上的操作,哈希调用或其他任何操作。
好吧,量子计算机就是没有人能告诉您的原因是“在可预见的将来,显然许多简单的操作对于全人类来说都是无法承受的”。根据定义,量子计算机执行与“实际简单操作”相反的操作。它允许人们通过量子手法来绕过“简单操作”空间的很大一部分。一旦绕过该简单操作空间的一部分的计算机存在,那么有关“空间需要多大”的问题就变得不可预知了。
这就是理论。我们还没有达到量子计算机可以做我们认为应该做的事情的未来水平。尽管我很自在地说这样的量子计算机确实存在并且不存在于某个地方的盒子中。
评论
量子算法可以减少实现某个目标所需的简单操作量,例如破解密码原语,但我对此并不感兴趣。量子运算仍然是一种运算,而量子计算机仍然只是计算机。
–可以裸体
11年8月11日在19:03
仅在最后一句话时,我几乎都赞成。
–用户
13年5月2日在15:03
@MichaelKjörling:我当然做到了。
–李凯文
2014年4月19日,0:19
#3 楼
最近在这里添加的可能与该问题有关的一件事是,朗道尔原理可能实际上没有成立:http://phys.org/news/2016-07-refutes-famous-physical .html
他们测量了“或”门(显然是逻辑上不可逆的门)运行期间耗散的能量,并且
表明逻辑运算可以以仅为kBT ln2预期极限的5%的能量消耗
执行。 《自然通讯》文章的结论是
没有基本限制,并且在能耗为零的情况下运行计算机不需要可逆逻辑。
为什么要做需要这么长时间才能发现?部分原因是
实验必须达到出色的灵敏度才能证明
可以克服Landauer极限:超过10到21焦耳,
其中1焦耳是在离地面1米的地方举起一个苹果。这是非常少的能量。
评论
10到21焦耳的力量对我来说并不是一个非常敏感的实验,因为10 ^ 21焦耳是人类每年全球能源消耗的两倍。
– Mr47
17年8月11日在11:56
@ Mr47我感觉应该是10 ^ -21,确实很小。
–森林
18 Mar 7 '18 at 9:48
#4 楼
尽管我非常喜欢@ thomas-pornin的答案,但我认为必须先提出的第一个假设存在问题。Laundauer原理仅适用于不可逆的操作。
与某些人的假设相反,可逆计算已经可以实现。该操作在量子计算机和同态加密系统中很常见。
更具体地说,给定的哈希算法可能会使用XOR之类的操作来混合两个位,并破坏有关1和0的信息,但是在Fredkin Gate中使用的CNOT(Wiki)是可逆的等效项,可产生XOR结果和明显的控制位。如果保留了该数据,则可以自由地反转操作。如果将其销毁而仅留下XOR,则适用Landauer原理。
正如其他人指出的那样,量子计算正在改变事物,但这是因为它使用CNOT门而不是对qubit进行XOR,而留下控制位保留量子叠加态并执行运算,而又不花费破坏Landauer的代价。
因此,如果输出状态折叠,则散列(例如)的位将被破坏,能源成本,以匹配已知的输出,除了探测每个位的值之外,不需要额外的成本来计算输入。
最低限度地,它至少需要散列中的位数,至少输入数据中的位数。对于给定的哈希算法,计算块的摘要可能需要比数据本身更多的XOR / CNOT操作,所有这些操作都必须加起来。
对于SHA-256(wiki) 1吉比特,即256比特的输出哈希,1吉比特的输入以及对512比特块的每个32比特部分进行16和/ add / xor运算,再加上8个32比特将当前值相加;或33Kbits。
如果您有大约2Terabit的数据存储(以qubit为单位),并且每位〜10-15J来设置问题并询问状态,则可以反转该哈希值。
,不是完全相反。您可以找到产生该输出散列的所有1个千兆大小输入的集合,并开始每位花费更多的开销来选择其中一个。
根据安全需求,冲突可能就足够了。
(编辑)最近,研究人员发布了一种不可逆的基本运算,该运算要求的操作数小于引用的限制,这暗示了原始计算中的错误。
评论
当然,这取决于单个“简单操作”需要多长时间,以及您可以并行执行多少个操作。 SHA-265哈希的应用程序不仅仅需要简单的添加(一个适合您的寄存器大小的添加)。好吧,显然。但是,我正在寻找无法实现的操作数量,无论它多么简单。因此,在循环中对值进行计数就足够了,甚至更简单了。例如,按照Landauer的原理,计算单位是单个位的变化。
@Nakedible,当您开始谈论Landauer的原理时,您还应该谈论未知的事物。
听起来,对于加密而言,这不仅仅是这里的问题,但这是一个非常有趣的阅读。