Dsa

ECDSA 密鑰的大小是否決定了雜湊算法?

  • November 14, 2019

我在理解我在身份驗證、簽名等方面讀到的內容時有點迷失了。例如,ssh-keygen -t ecdsa -b 256在計算簽名時,生成的 ECDSA 密鑰的大小是否與使用的雜湊(SHA256)相關聯?

不,通常雜湊不是由 NIST 的曲線定義確定的。當然存在合理的映射(對於 224 位曲線,您可能會使用輸出大小為 224 的散列,例如 SHA-224)。然而,使用的散列應該由協議本身指定。


參數的 指示的 ECDSA 密鑰大小-bopenssh使用的雜湊算法相關聯。這在 RFC 5656 的第 6.2.1 節中定義:

橢圓曲線數字簽名算法 (ECDSA) 指定用於 SSH ECC 公鑰算法。

這個方法名族定義的散列算法是SHA2族散列算法

$$ FIPS-180-3 $$. 將根據公鑰中指定的命名曲線的大小選擇將使用的 SHA2 系列算法:

+----------------+----------------+
|   Curve Size   | Hash Algorithm |
+----------------+----------------+
|    b <= 256    |     SHA-256    |
|                |                |
| 256 < b <= 384 |     SHA-384    |
|                |                |
|     384 < b    |     SHA-512    |
+----------------+----------------+

請注意,目前您只能在 SSH 中使用 NIST 定義的 P-256、P-384 和 P-521(secp256r1、secp384r1 和 secp521r1)素數曲線。所以位大小的參數也決定了使用的域參數。

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