Aes
在實踐中恢復的最長的 AES 密鑰是多少?
在實踐中,我可以恢復一些微不足道的東西,比如 16 位 AES 密鑰。我相信可以恢復 64 位 AES 密鑰。但是,我一直找不到任何人聲稱在實踐中恢復的最大 AES 密鑰的任何文件。是否舉辦過此類比賽,是否保留了公認的進度表?
編輯:我說的是故意削弱密鑰的暴力破解,即重複密鑰的前 X 位到最後。
是否舉辦過此類比賽,是否保留了公認的進度表?
不,一般認為 $ 2^{128} $ 幾乎任何人都無法進行 AES 密鑰調度和加密操作。如果以及何時發生變化 $ 2^{128} $ 吸引到一個更現實的數字也許人們會這樣做。
但是,我一直找不到任何人聲稱在實踐中恢復的最大 AES 密鑰的任何文件。
這通常不是一個有趣的可發布結果,除非您還發現了對某些計算部分的一些主要優化,因此對學者來說不是很理想。
至於搜尋速度:
- 在 CPU 上——假設你對指令調度很幸運——一輪帶有密鑰調度計算的 AES(非常樂觀地)在單個核心上花費了大約 3 個 CPU 週期。對於每個 AES 實例,有 10 個這樣的步驟,因此對於一個塊的動態密鑰調度和加密總共需要大約 30 個週期 - 僅使用吞吐量而不是延遲數。這相當於現代 CPU 上每核每秒進行 1-20 億次 AES 密鑰測試。假設它是最強大的主機板之一,它在主機板上有 64 個物理核心和兩個 CPU,也就是說每個主機板每秒進行 2000 億次 AES 密鑰測試。有可能一個堅定的攻擊者可以獲得併操作一萬塊這樣的主機板,總計 $ 2\times 10^{15}\approx 2^{50} $ 每秒的關鍵測試。然後,如果確定這增加了另一個因素 $ \approx 2^{28} $ 共計 $ 2^{78} $ 使用 20,000 個目前最強大的 CPU 的 AES 密鑰可執行 10 年,並且實現高度優化。
- 至於 GPU:高端 Nvidia Pascal GPU 的 AES 吞吐量約為 32GB/s。如果沒有密鑰調度,即每秒 20 億個 AES 實例,使用密鑰調度它可能會下降到每秒約 8 億個 AES 實例。即使我們假設後來的 GPU 將這個數字提高了 5 倍,我們也只會關注 1-2 個額外 CPU 核心的性能,以獲得更多的功耗,所以這可能不值得。
- 至於 FPGA,本文聲稱具有約 150,000 個查找表的 FPGA 的吞吐量約為 120Gb/s。如今,周圍有 25 倍大的 FPGA。使用通常的(樂觀的)因子 3 進行密鑰調度,我們正在查看每秒大約 80 億次密鑰測試和卡。如果您可以適當地冷卻它,這可能是值得的,但使用更多 CPU(消耗相當多)可能是更好的電力投資。
- 至於 ASIC,本文聲稱 $ 678\times 10^{-6} $ 每個時鐘週期門的位數作為最佳結果(ish)。假設一個 GPU 大小的晶片以 1GHz 執行,這相當於 $ 2\times 10^{16} $ 每秒位數或 $ 2^{47} $ 每秒 AES 實例。用我們通常的因子除以大約 $ 2^{45} $ 每秒實例數。假設您實際上可以生產、供電和冷卻如此大的晶片,並以某種方式將 8 個堆疊到伺服器主機板的 PCIe 插槽中,它會給您 $ 2^{48} $ 每板測試或幾乎 $ 2^{90} $ 在 10 年內使用 10,000 塊板子和 8 個 GPU 大小的晶片進行測試,每個晶片以 1GHz 執行 10 年。