Aes

在 24 位密鑰下暴力破解 AES-128 需要多長時間

  • January 7, 2021

我有 1 塊使用 AES-128 的加密數據,但我知道 128 位中的 104 位是密鑰。

在 Intel I 7 CPU 上暴力破解 24 位密鑰需要多長時間?我該如何計算呢?

我有一個Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz. 英特爾 I7 大約有10 代可言。如果不提供實際引用的 Intel 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 中測試)

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))

引用自:https://crypto.stackexchange.com/questions/86254