計算用我的 CPU 破解 DES 所需的時間
我有一台筆記型電腦,其 CPU 和 RAM 如下圖所示。
我的問題是,使用這個 CPU 和 RAM,我用 56 位密鑰破解一個老式的 DES 算法需要多長時間。
我在網上讀到它是在 1998 年使用 220,000 美元的機器在 56 小時內破解的。但我相信在 15 年後,我們的計算速度會更加先進,而且還在繼續。
如果有人能解釋如何進行這種計算的步驟,我也將不勝感激。!
如果不對您的系統進行實際基準測試,我無法為您提供良好的數字。
我所能提供的只是估計,基於Serpent 與 DES 大致一樣快的事實。當然,我可以給你的數字實際上並不是暴力數據,而是每次可以加密多少數據,但這應該給出所需時間的可靠**估計。
一般的方法是測量每秒可以嘗試多少個鍵,然後除以 $ 2^{56} $ 通過這個數字,這將導致您需要的秒數。
所以讓我們估計一下 56 位的 Serpent。Serpent 在你的機器上可以達到0.16 GB/s,因為這主要是計算受限的。0.16 GB 大約是 $ 2^{24} $ DES的塊,這意味著您可以大致嘗試 $ 2^{24} $ 每秒鍵數。這意味著你需要 $ 2^{56}/2^{24}=2^{32} $ 秒,這等於136 年。
很抱歉,但我懷疑這對您是否可行。
請注意,即使是全新的Intel Core i7 6700K 也只能達到 0.47 GB/s,這意味著 i7 6700K 也仍需要大約45 年的時間。更瘋狂的是:英特爾酷睿 i7 5960X 是目前最好的消費級 CPU,在34 年內只能做到0.63 GB/s。現在最後考慮目前最強大的伺服器主機板,執行 8x Intel Xeon E7-8890v3 和 18 核。那裡沒有測量的基準,但我假設性能與核心數量(每個核心 75 MB/s)和頻率(E7 的頻率為 62.5 MB/s)成線性關係。這意味著這塊板可以做 9GB/s 的 Serpent 意思 $ 2^{30} $ 塊,從而 $ 2^{26} $ 秒相當於2.12 年(但是這個板在 2015 年大約花費 56,000 美元)。
實驗方法可能是估計任何給定硬體上的破解時間最有用的方法。使用JohnTheRipper
--test
,您可以使用該選項對雜湊算法進行基準測試。在最新的 JohnTheRipper(bleeding-jumbo 分支)中,呼叫了 DES 雜湊算法crypt
,所以:$ john --format=crypt --test Will run 4 OpenMP threads Benchmarking: crypt, generic crypt(3) DES [?/64]... (4xOMP) DONE Speed for cost 1 (algorithm [1:descrypt 2:md5crypt 3:sunmd5 4:bcrypt 5:sha256crypt 6:sha512crypt]) of 1, cost 2 (algorithm specific iterations) of 1 Many salts: 1053K c/s real, 268164 c/s virtual Only one salt: 1060K c/s real, 267927 c/s virtual
使用 4 個執行緒,我每秒獲得大約一百萬個雜湊值。DES 的密鑰空間為 $ 2^{56} $ ,但對於大多數真實 (UNIX) 密碼,這可能被假定為 $ 95^{8} $ (對於 8 個可列印的 ASCII 字元)。不幸的是,這仍然是 $ 95^8 / 1060000 = $ 293年用盡關鍵空間。
因此,CPU(即使是現代的)可能是這項工作的錯誤工具。