是否可以打破128位密钥?

时间:2010-12-07 12:51:28

标签: cryptography

我是一名程序员,对密码学来说相对较新,所以请原谅我的新秀问题。 :)

假设我们有一条消息,无论是纯文本还是使用128位密钥加密。 理论上,有可能以某种方式找出关键?如果是的话,我们在谈论什么计算时间?

谢谢!

6 个答案:

答案 0 :(得分:11)

是的,这是一个需要时间的问题 - 使用暴力可以尝试每个可能的位组合并猜测正确的位。最长时间将是数百万和数十亿年,所以我们可以说它不容易破解。

然而,每种算法都有一定的短路(对于某些算法,这些电路还没有找到),可以减少所需的时间。此外,现代大规模并行计算技术(例如,在图形卡中使用GPU)可以进一步减少时间。可能存在影响所需时间的其他因素,例如算法应用中的缺陷(例如,使用错误的加密模式或使用短密码并将其填充到密钥长度的某些字符)。

然后存在Rubber-hose cryptanalysis通常证明比蛮力关键猜测更有效。

答案 1 :(得分:11)

简答:

只考虑强力检查每个键是否可用 - 否

更长的答案:

2007年有人估计,使用蛮力破解88位的成本是300M $,如果你应用摩尔定律,你将这个价格降低4倍,或者你现在可能得到2个额外的位。

所以你需要2 ^ 38多钱来破解单个128位密钥。 (约10 ^ 20 $)

来源:http://www.seagate.com/staticfiles/docs/pdf/whitepaper/tp596_128-bit_versus_256_bit.pdf
来源2:http://dator8.info/pdf/AES/3.pdf

来自文章的128位密钥:

如果您认为:

•地球上的每个人都拥有10台计算机 •这个星球上有70亿人 •每台计算机每秒可以测试10亿个组合键 •平均而言,您可以在测试50%的可能性之后破解密钥。

然后(见附录中的计算参考):
•地球人口可以在 77,000,000,000,000,000,000,000,000,000 年内破解一个加密密钥(仅限一个驱动器)!
•如果您想知道,破解第二个密钥/驱动器将需要另外 77,000,000,000,000,000,000,000,000,000 年。

我刚刚注意到,它计算不正确。正确答案是77e9年(对我们的文明来说还是很多)。

额外(基于比特币的假设):

在这个日期(2017年),我们可能将比特币采矿系统作为最大的已知蛮力机械,并以采矿和比特币的价格作为我们假设的基准。

检查一个sha256与尝试一个对称密钥(如AES或其他东西)大致相同。 根据{{​​3}}目前尝试的哈希值是(D * 2 ** 32/600)其中D是当前比特币难度(this site

该系统每秒产生约5e + 18个哈希值。每个区块每10分钟生产一次,到目前为止产生12.50个硬币。硬币价格是2.5k。

因此需要一个哈希值 (12.50 * 2.5e3)/(5e18 * 600)= 1.0e-17。

破解一个128位密钥,今天(2017年6月)成本约为。 1e-17 * 2 ^ 128 = 3.5e + 21
比特币采矿系统需要2 ^ 128 /(5e18 * 3.14e7)= 2.1e12年。

答案 2 :(得分:4)

在评论中,你说这是关于A5算法的。

首先,它使用64位密钥,而不是128位密钥。其次,它有一些严重的缺陷 - 它是basically broken

答案 3 :(得分:3)

如果密码是好的,唯一的方法是通过bruteforce - 依次为每个密钥加密消息并找到正确的密码。这将需要最多2次 128次次尝试很长

但是,密码通常存在漏洞,可以更快地进行密钥扣除。

答案 4 :(得分:0)

我在课堂上提出了这个问题,想知道每个人都接受这个答案。

因为蛮力攻击只是要求计算机运行所有可能的位组合,以期达到正确的组合以匹配加密密钥。 128位加密将具有2 ^ 128位,或大约340万亿亿亿亿可能的组合。根据theverge.com,世界上最快的计算机是Sunway TaihuLight(截至2016年),每秒可以处理93千万亿次计算,也称千万亿次计算,千万亿次计算机是10 ^ 15。

现在我自己做了这个计算,所以这可能是错的,但我很乐意听到其他人对此的看法。使用世界上最快的计算机,您每年可以处理2.932848e + 24种可能的组合。 930 * 10 ^ 15 * 60 * 60 * 24 * 365 = 2.932848e + 24 如果你有这台超级计算机每天都在运行,那么就要破解一个128位的加密密钥。我需要大约68。5年才能完成所有可能的组合 2 ^ 128 = 3.4028237e + 38 3.4028237e + 38 / 2.932848e + 24 = 68.470

答案 5 :(得分:0)

我知道这是一个旧帖子,但我偶然发现它在寻找其他东西。有一本非常有趣的书(至少在我看来)是 Matt Curtin 所著的《蛮力》。它讨论了加密以及他们如何破解 DES 加密的政府标准(当时)。虽然从这个角度来看很有趣,但我也学到了很多关于一般加密的知识。