Encryption
EdDSA 算法是否由 ASN.1 DER 標準編碼?
是否需要或廣泛實踐將 EdDSA 簽名編碼為 ASN.1 序列?為什麼或者為什麼不?您應該如何編碼 EdDSA 簽名?我在EdDSA RFC中找不到提及 DER 或 ASN 。
但是,ECDSA RFC中有提及(如預期的那樣)
ECDSA 簽名是一對整數。在許多要求籤名為位(或八位字節)序列的協議中,習慣上將簽名編碼為兩個整數值的 ASN.1 序列,並使用 DER 規則。
EdDSA 簽名是根據EdDSA 論文或其對更多曲線的擴展或根據RFC 8032編碼的字節序列,呼叫者應將其視為不透明的。
特別是,對於曲線上的 EdDSA 實例 $ E $ 在一個領域 $ \mathbb F_p $ 有秩序的 $ p < 2^{b-1} $ :
- 公鑰是一個 $ b $ -bit 位串 $ n \mathbin| \underline y $ 編碼一個點 $ (x, y) \in E $ , 在哪裡 $ n $ 如果是 1 $ x $ 是“負數”,如果不是,則為 0,並且 $ \underline y $ 是最小非負整數殘差的小端編碼 $ y \in \mathbb F_p $ . 這裡的“否定”是指 $ \underline x $ 按字典順序大於 $ \underline{-x} $ .
- 簽名是一個 $ 2b $ -位串 $ \underline R \mathbin| \underline s $ 編碼一個點 $ R \in E $ 像一個公鑰和一個 $ b $ -位整數 $ s $ 在小端編碼中 $ \underline s $ .
這裡不涉及 ASN.1 格式。忘記 ASN.1,忘記 ECDSA。它們是邪惡的東西。