Encryption

基於長度的蠻力加密密鑰

  • April 3, 2018

我需要澄清我的理解是否正確。

如果我使用 4.2 GHz CPU - 僅一個核心 - 這意味著:

42 億赫茲**=**每秒 42 億次操作。(約 2^32)

所以:

32 位密鑰:2^32 \ 2^32 = 1 秒

64 位密鑰:2^64 \ 2^32 = 2^32 = 4294967296 秒 = 136 年

我的問題:

1)我的計算方式正確嗎?

2)在彙編語言中:一行 = 1 操作嗎?

您的計算給出了正確的數量級,但不正確。不同的組裝操作需要不同數量的時鐘滴答/週期。另請注意,記憶體訪問可能很昂貴,並且如果您遇到任何記憶體層,它會產生很大的不同。更糟糕的是,指令吞吐量和延遲之間存在差異,因為多個指令可以同時發生。如果你真的想自己做微優化,你可以在這裡查看指令成本:http ://www.agner.org/optimize/instruction_tables.pdf

對於密碼操作,我們通常已經有了高度優化的程式碼,我們可以在各種密碼原語的周期中查找成本。例如,SHA-3 非常高效,可以在現代處理器上以約 8 個週期/字節的吞吐量實現。

一般而言,您希望單個加密函式呼叫在有效實現中採用幾百個週期的順序。

為了使暴力破解低熵密碼變得困難,我們通常使用可調整的密鑰派生函式,該函式可以任意變慢。

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