Public-Key

如果 AES-256 是,為什麼 P-521 橢圓曲線不在 Suite B 中?

  • May 25, 2020

在 NSA 的文件“橢圓曲線密碼學案例”(存檔)中,我們有

+---------------+-------------------------+-----------------+
| Symmetric Key | RSA and Diffie-Hellman  | Elliptic Curve  |
| Size (bits)   |      Key Size (bits)    | Key Size (bits) |
+---------------+-------------------------+-----------------+
|       80      |            1024         |       160       |
|      112      |            2048         |       224       |
|      128      |            3072         |       256       |
|      192      |            7680         |       384       |
|      256      |           15360         |       521       |
+---------------+-------------------------+-----------------+
             Table 1: NIST Recommended Key Sizes

NSA Suite B 🕗中,我們確實有 AES-256(用於絕密);但是,ECC 僅限於 P-384:

具有 128 位密鑰的 AES 為高達 SECRET 級別的機密資訊提供了充分的保護。同樣,使用 FIPS PUB 186-3 和 SHA-256 中規定的 256 位素數模數橢圓曲線的 ECDH 和 ECDSA 可為機密資訊提供足夠的保護,直至達到 SECRET 級別。

需要使用 256 位密鑰的 AES、使用 FIPS PUB 186-3 和 SHA-384 中規定的 384 位素數模數橢圓曲線的橢圓曲線公鑰密碼術來保護絕密級別的機密資訊。

儘管 P-521 被正式編入NIST FIPS-186-4中,但似乎已經引入了熵阻塞點,就好像我們有一個加密“管道”一樣。

範例:如果我們使用 P-384 密鑰進行 ECDH,然後使用 AES-256 進行加密,我們實際上只是將 192 位的密鑰熵傳遞到 AES-256 引擎。

閱讀此 IETF 執行緒🕗上唯一已知的響應(我知道),聲明如下

關於 NSA 省略 P-521,P-256 和 P-384 將滿足美國政府的所有要求,因此套件 B 中僅包含這些要求。我們沒有保證包含 P-521 的要求。

我無法將這些看似矛盾的資訊放在一起,所以我想我會在這裡問其他人。為什麼 P-521 被排除在外?是技術性的還是非技術性的?任何其他資訊將不勝感激。

編輯:

這不是很直接相關,但我檢查了一些經驗測試結果。對於幾乎所有 EC 操作,似乎計算時間從 P-256 => P-386 => P-521 大約翻了一番。以簽署一個簡短(1200 字節)的消息為例。

P-256:  8ms ( 64 byte signature) 
P-384: 15ms ( 96 byte signature)
P-521: 30ms (132 byte signature)

它並不直接代表上面的熵瓶頸,更傾向於“足夠好”的構想。但話又說回來,AES-192 也應該足夠了……

真正的問題不是“為什麼 Suite B 不使用 P-521?” 它是,“為什麼 Suite B 不使用 AES-192?” NSA 只對 Suite B 的 192 位安全性感興趣,但他們選擇使用 AES-256,因為 AES-192 並未得到廣泛支持。

“事實上,我們曾想使用 AES -128 和 AES-192,但對 AES 實施的快速調查(我相信以硬體為中心)表明實施的 AES-192 很少,因此決定使用 AES-128和套件 B 中的 AES-256,與 P256 和 P384 配對。所有的地穴純粹主義者都無休止地抱怨 AES-256 和 P384 之間的不匹配。

——凱文·M·伊戈,美國國家安全域

(我選擇從表面上接受他的解釋,但你永遠不知道情報機構。)

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