如何在估計開裂時間時考慮摩爾定律?
在估計例如暴力破解 ECDSA 私鑰或發現 SHA256 衝突所需的荒謬時間時,添加“具有目前計算能力”這一片語似乎是一種常見做法(至少在某些社區) ,但是我認為這些計算應該解釋“平均”電腦不斷增加的能力是錯誤的嗎?
簡而言之,當通過蠻力對破解時間進行有根據的猜測時,是否存在某種簡單的“捏造因素”來解釋可能的技術改進,如摩爾定律(等)?
摩爾定律有幾種變體。Gordon Moore 本人首先將其定義為每年雙倍的晶體管密度(即,您可以在給定的晶圓表面上放置兩倍的晶體管,並且生產成本隨晶圓表麵線性增加)。1975 年,摩爾將他的定律改為每兩年翻一番。然而,在給定表面上放置更多晶體管也需要使它們更小且彼此更接近,這也允許以更高的速率為它們提供時鐘。所以摩爾定律的“經典”版本是“每 18 個月翻一番”。
性能取決於您嘗試執行的任務類型。對於通用電腦,擁有更多晶體管並不會使事情超出給定點——如果你想添加適合 32 位的“真實”值,那麼擁有 64 位寄存器不會給你帶來提升. 在某些時候,“許多晶體管”變成了“幾個核心”,如果(且僅當)手頭的任務適合併行處理,這會很有幫助。
對於對稱密碼學,我們通常擔心窮舉搜尋。具有成本效益的攻擊者將使用FPGA或ASIC。並行性是給定的,因此攻擊者可以從晶體管密度和時鐘頻率的進步中受益。然而,對於真正大規模的攻擊作業,能源消耗(及其後代散熱)成為瓶頸,而更高的時鐘頻率對此無濟於事。因此,您可以認為摩爾定律相當於“每年 1 位”(現在100 位密鑰與 20 年後 120 位密鑰一樣強大)。
對於橢圓曲線,最有效的攻擊是使用“通用”算法的離散對數,該算法適用於 $ O(\sqrt{N}) $ 對於尺寸曲線 $ N $ . 這意味著 256 位曲線的性能與 128 位對稱密鑰差不多。因此,摩爾定律為攻擊者提供“每年 2 位”的計算能力。
對於整數分解和經典離散對數(即 RSA、DSA、Diffie-Hellman、ElGamal ……但不是其 EC 變體),事情會更複雜。最著名的算法是次指數的(即General Number Field Sieve);但它們的實現需要大量的快速 RAM。根據摩爾定律,RAM大小隨著晶體管密度的增加而增加,但 RAM**延遲並沒有那麼快變得更好。事實上,基本 RAM 延遲在最近的電腦中或多或少停滯不前。因此,即使是對摩爾定律對 RSA 安全性的影響也很難給出一個粗略的估計。
為了解釋摩爾定律,一些個人和組織已經發布了對密鑰強度的估計,作為現在和未來幾十年最小密鑰長度的“建議”。這些建議彼此之間存在很大差異;這個網站上有一個很好的總結(帶有線上計算器). 這些建議總是使用最壞情況估計:他們不想預測實際的攻擊成本,他們旨在呈現“足夠大”以阻止攻擊的密鑰大小。因此,每個數字都是攻擊成本估計和或多或少的偏執狂的混合體。例如,自去年以來,NIST 建議不要使用 1024 位 RSA 密鑰,但目前的 RSA 破紀錄是 768 位,現在已知(2012 年)現有的學術資源遠遠不足以攻擊 1024位 RSA 密鑰。
作為一個非常粗略但有效的估計:112 位對稱密鑰、224 位橢圓曲線和 2048 位 RSA/DSA/DH 密鑰應該足以滿足未來二十年(至少)的需求。