Dsa
ECDSA 密鑰的大小是否決定了雜湊算法?
我在理解我在身份驗證、簽名等方面讀到的內容時有點迷失了。例如,
ssh-keygen -t ecdsa -b 256
在計算簽名時,生成的 ECDSA 密鑰的大小是否與使用的雜湊(SHA256)相關聯?
不,通常雜湊不是由 NIST 的曲線定義確定的。當然存在合理的映射(對於 224 位曲線,您可能會使用輸出大小為 224 的散列,例如 SHA-224)。然而,使用的散列應該由協議本身指定。
參數的 指示的 ECDSA 密鑰大小
-b
與openssh
使用的雜湊算法相關聯。這在 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)素數曲線。所以位大小的參數也決定了使用的域參數。