Java 这在小型超级计算机上实用吗?
我正在调查WEP,作为其中的一部分,我正在玩弄RC4算法。我试图决定是否可以写一个逆表(虽然很大,但我没有空间,也不打算写一个)。为此,我决定检查前10个字节中有多少匹配的输出。这将帮助我决定逆表的工作效果 当然,64位RC4加密有2^64个可能的密钥,因此这意味着要进行~2^128次比较。另外,每次比较必须生成10个字节,约为265个循环。(256用于RC4初始化,10用于字节本身) 具体到业务: 在一台拥有大约100个内核的超级计算机上,是否有可能在20天内执行大约2^135次计算? (20天是我被解雇的时间限制。我可能只得到8个,也可能得到400+个,但我猜是100个核。) 如果有什么意义的话,我的程序是用Java编写的 在理想的世界中,它围绕着: 2135次运算÷20天÷24小时/天÷60分钟/小时÷60秒/分钟÷100个核=1032次每核每秒运算(Hz/核),假设我的数学没有关闭 您需要1032赫兹的内核,每个时钟只进行一次计算。通常,它需要多个。那是。。。至少可以说,目前还不是很容易到达。如果幸运的话,使用超级计算机所能达到的最佳效果大概是~10GHz=1010Hz/coreJava 这在小型超级计算机上实用吗?,java,supercomputers,Java,Supercomputers,我正在调查WEP,作为其中的一部分,我正在玩弄RC4算法。我试图决定是否可以写一个逆表(虽然很大,但我没有空间,也不打算写一个)。为此,我决定检查前10个字节中有多少匹配的输出。这将帮助我决定逆表的工作效果 当然,64位RC4加密有2^64个可能的密钥,因此这意味着要进行~2^128次比较。另外,每次比较必须生成10个字节,约为265个循环。(256用于RC4初始化,10用于字节本身) 具体到业务: 在一台拥有大约100个内核的超级计算机上,是否有可能在20天内执行大约2^135次计算? (20
(这一切都被忽略了…)这些数字多少有些虚构。他们主要是为了表明自己的观点。为了让它更简单,数学计算过于乐观了
(根据以上数据,需要279天……)这是一个有趣的问题,很难正确回答。可伸缩性在大多数情况下都是一种“试一试”的东西 需要注意的一点是,由于其他因素 假设您的程序每秒可以比较
n
键。因此,理想的(即线性)100核系统每秒将计算100n
密钥。要比较所有键(最坏的情况是,现实值是一半)需要(2^135/100n)/86400
天
如果n
为1000,则需要5041220025068056982908703122121天,这比一些宇宙年龄估计值长约10亿倍
所以我要说。。。否:)加密算法是为此类攻击而设计的。此外,Java将是编写此类应用程序时最后选择的语言:宇宙中至少有2^240个原子,因此即使每天计算一次,也不需要一半的原子来计算。再说一次,比尔·盖茨不是说过“谁会需要宇宙中一半以上的原子?”人们不知道一个数字有多大 2^135大约是4e40,好的,43556142965880123231949751266331066368 假设你有一台能执行1Exaflop的计算机,比我们现在的任何计算机都快得多。因此,如果它能够在每个浮点运算中进行其中一个计算,那么它可以在一秒钟内完成10^18个计算。这仍然需要42秒。每年大约有31536000秒,因此您的小企业仍然需要15年以上的时间 好的,取决于你和谁交谈,宇宙大约在6000年到130亿年之间
不管是不是Java,答案都是否定的。(天网还在吗?@Mitch它就在那里,有点被掩埋了。我应该把代码移到粘贴箱。“在一台拥有大约100个核的超级计算机上(我可能最终只有8个核,或者我可能最终有400多个核,但我猜是100个核),能在20天内完成大约2^135的计算吗?”2^135听起来有点超出范围,但我必须检查一下,只是为了确定:D谢谢你的帮助如果我同时进行多个计算(线程)呢. 这会改变什么吗?@Ryan:。。。idk,你告诉我。假设每个核心有1万亿个线程。当你把10^32除以1万亿会发生什么?它离10^10有多近…?您将在一个核上进行一次计算,这样将使速度提高最多100倍。静止方式off@Mehrdad我想我太有希望了:P@Ryan阿莫斯-数学不会说谎。这两者之间有什么关系?我们还没有进入进化的第六阶段:“甚至不需要一半”有点轻描淡写(或夸大了?)-)@pst@Dax:1/2将是2^239;)你需要大约2^240*2^-100个原子,假设每个计算1个原子。当然,如果我们能利用宇宙中的每个原子进行计算,他们就能计算出一种从乙醚中产生新原子的方法。所以,是的,我想这并不相关。是的,彩虹表不会生成一整套可能的键,它们通常会从字典/单词列表中生成键,以便存储和查找。WPA通过在加密之前针对SSID散列密钥(这意味着需要为每个SSID生成彩虹表),提供了一些防御措施。感谢您的帮助!我会更深入地研究彩虹表。所以答案是我不应该等这么久才开始这个项目:我应该在30亿年前就开始了。是的,每浪费一秒都会损失更多的计算,所以开始工作吧+1(还有我自己的一点咆哮)数字a