521 位 ECC 密鑰與 RSA 15,360 位密鑰的強度相同
521 位 ECC 使用的密鑰大小比 RSA 標準小 7.5 倍,同時提供更安全的加密。RSA 2048 位密鑰對於銀行業務來說足夠安全,但 521 位 ECC 密鑰相當於 15,360 位 RSA 密鑰。
我在KYECC - Explaining 521-bit ECC Encryption From the Ground Up 上閱讀了它。任何人都可以就此處提出的主張給我一個獨立的答案和意見這個消息傳遞應用程序聲稱是最安全的
128 位、256 位和 512 位在消息傳遞應用程序中實現的安全性方面真的有很大區別,還是它的實現方式更重要?
當涉及到 RSA 和 ECC 等非對稱密碼系統時,以比特為單位的安全性不是以比特為單位引用的密鑰大小的數字(它本身與公鑰或私鑰採用的實際形式的比特數沒有普遍關係,這我不會在這個答案中進一步討論)。
過度簡化,並堅持使用經典電腦進行攻擊(因為可用於密碼分析的量子電腦在遙遠的未來只是一種不確定的可能性)
- $ n $ 位安全意味著 $ 2^n $ 人們認為在經典電腦上需要某種操作來從密文或其他截獲的數據中攻擊系統。96 位的安全性在今天看來幾乎是安全的(即使是 80 位也從未在公開攻擊中被破解),而且每增加一個位,難度就會增加一倍,使得 128 位的安全性可能會持續一個或多個十年,這取決於一個人的想像力。以上任何內容都是為了長期安全,或者作為評估安全級別時未設想的攻擊的餘量。
- 使用 ECC, $ n $ -位安全性需要有限域上的曲線,其中元素至少需要大約 $ 2n $ 位來表示它們,並且 $ 2n $ -bit 欄位大小通常被引用為大小或密鑰大小。因此,256 位 ECC 最多提供大約 128 位的安全性,521 位 ECC 最多提供大約 260 位的安全性,四捨五入到 256 位,因為這是一個常見的對稱密鑰大小。
- 使用 RSA,在公鑰中(或從公鑰中可得出)中找到的公共模數大小是引用的大小或密鑰大小(如 2048 位或 15360 位)。它與安全級別的關係比 ECC 更複雜。NIST SP 800-57 Pt 1給出了這些非常粗略的數字,它們確實告訴(底線、最左邊和最右邊兩列)15360 位 RSA 或 521 位 ECC 大致獲得了 256 位安全性。
128 位、256 位和 512 位在消息傳遞應用程序中實現的安全性方面真的有很大區別,還是它的實現方式更重要?
對於在不到十年後變得毫無價值的數據,128 位安全性和更高等級之間並沒有太大區別(但在不太可能的情況下,上述“128 位”是 ECC 欄位大小,或者如果“ 128 位 256 位和 512 位”是 RSA 模數大小,這些數字對於體面的安全性來說太低了)。
對於提供良好安全級別的密鑰大小(根據各種因素,如今的安全限制可能在 72 到 112 位之間),對於消息傳遞應用程序的安全性而言,最重要的是誰能獲取密鑰和輔助數據(比如,最重要的是,誰與誰通信),加密貨幣做了什麼,以及實施的質量。
521 位 ECC 密鑰與 RSA 15,360 位密鑰的強度相同
是的,這是普遍的智慧。如果您查看keylength.com上的表格,您會發現粗略的 256 位安全級別通常等同於 512 位或更長的 ECC 密鑰和 15360 位 RSA 密鑰。
如果您對此原因更感興趣,我建議您閱讀 Lenstra 和 Verheul 關於估計密鑰長度 ( PDF ) 的原始作品或 Lenstra 的簡化後續工作 ( PDF )。
然而,基本思想是我們知道 RSA(GNFS)的次指數執行時算法,而對於 ECC,我們只知道指數執行時算法(最好的是 Pollard-Rho)。那就是我們需要 $ 2^{n/2} $ 破壞 ECC 密鑰的操作,但更不用說分解 RSA 密鑰。
不過,您可能需要注意(正如 fgrieu 在評論中指出的那樣),如果發生重大突破並且我們將獲得橢圓曲線的非通用算法,那麼 RSA 很可能會倖免於難。甚至有一些計算表明,小型 ECC 密鑰(有點)比使用量子電腦的大型 RSA 密鑰更容易破解。