首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >24位密钥下的AES-128蛮力有多长?

24位密钥下的AES-128蛮力有多长?
EN

Cryptography用户
提问于 2020-11-17 16:28:30
回答 1查看 707关注 0票数 1

我用AES-128加密了1块数据,但我知道104位128位的密钥。

要用多长时间才能在Intel I7 CPU上强制24位密钥?我该怎么算呢?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-11-17 17:03:22

我有一个Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz。英特尔公司( Intel I7 )也有10个代的身影可供谈论。如果不提供实际参考的英特尔I7,结果就不可能准确。

这就是方法;

运行openssl speed -evp aes-128-cbc命令。这就给了你公制。

我的CPU输出:

aes-128-cbc for 3s on 16 size blocks: 144516288 aes-128-cbc's in 3.00s

那是144516288 = 2^{27.1066568628459}。因此,1秒就足够了。

\begin{array}{|c|r|r|} \hline 2^i & \text{seconds} & \text{years} \\ \hline 2^{30} & 22.29 & 0.0000007\\ \hline 2^{40} & 22824.65 & 0.0007\\ \hline 2^{50} & 23372450.03 & 0.74\\ \hline 2^{60} & 23933388835.87 & 758.92\\ \hline \vdots & \vdots & \vdots \\ \hline 2^{128} & 7.06388957874987e30 & 2.23994469138441e23\\ \hline \end{array}

下面的代码(在SageMath中测试)

代码语言:javascript
复制
SecondsInADay = 86400
SecondsInAYear = 31536000
TotalCBCin3Sec = 144516288 #your CPU time from openssl speed -evp aes-128-cbc
power = (30,40,50,60,128)

for i in power:
    print('seconds for 2^{%d} =' % (i),end="")
    print(((2^i *3.0)/TotalCBCin3Sec).str(no_sci=2))
for i in power:
    print('years for 2^{%d}   =' % (i),end="")
    print(((2^i *3.0)/TotalCBCin3Sec/SecondsInAYear).str(no_sci=2))
票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/86254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档