在公鑰密碼學,愛德華茲曲線數字簽名算法(EdDSA)是一種數字簽名方式,使用一種基於扭曲的愛德華茲曲線的施諾爾簽名變種。[1]
其被設計為比現有的數字簽名方式更快同時不犧牲安全性。Daniel J. Bernstein、Niels Duif、Tanja Lange、Peter Schwabe 和 Bo-Yin Yang等人的團隊研發了這一算法[2],並將其參考實現發佈為了公有領域軟件。[3]
Quick Facts 概述, 設計者 ...
Close
以下是 EdDSA 的簡化描述,忽略將整數和曲線點編碼為位串的細節。關於完整的細節,請參見論文和RFC。[4][2][1]
一種EdDSA 簽名方案是一種下列內容的組合:[4]:1–2[2]:5–6[1]:5–7
- 奇素數冪上的有限域
- 上的橢圓曲線,其關係點群的階數為,其中是一個大素數且被稱為輔因子
- 階數為的基點
- 有位輸出的密碼學散列函數,其中,使得的元素和中的曲線點可以被以位的字符串表示。
這些參數對於使用同一EdDSA簽名方案的所有用戶都是通用的。EdDSA簽名方案的安全性關鍵取決於參數的選擇,除了基點的任意選擇之外,例如,Pollard Rho算法預計需要大約次曲線相加才能計算離散對數,[5] 所以必須足夠大才能使其不可行,並且通常取值超過2200。[6]
的選擇受限於的選擇,因為根據哈斯定理, 不能與相差超過。散列函數在EdDSA安全性的正式分析中通常被建模為隨機預言。
在 EdDSA 簽名方案中,
- 公鑰
- EdDSA公鑰是一個曲線點,編碼為位。
- 簽名驗證
- 公鑰對消息的EdDSA簽名是元組,編碼為位,由滿足下面的驗證方程的曲線點和整數組成。表示串接。
- 私鑰
- EdDSA私鑰是一個位字符串,其應該被均勻地隨機選擇。對應的公鑰為,其中為通過將的最低有效位解釋為小端字節序的整數得到。
- 簽名
- 消息的簽名被確定地計算為,其中,,且這滿足驗證方程:
原作團隊將Ed25519針對x86-64 Nehalem、Westmere處理器家族進行了優化x86-64。可以批量執行64個簽名的驗證,以獲得更大的吞吐量。Ed25519 旨在提供與128位對稱密碼質量相當的抗攻擊能力。[8]
公鑰的長度為256位,簽名的長度為512位。[9]
Ed25519旨在避免使用依賴於秘密數據的分支條件或數組索引的實現,[2]:2[1]:40以緩解側信道攻擊。
與其他基於離散對數的簽名方案一樣,EdDSA 為每個簽名使用一個唯一的、被稱為「nonce」的秘密值。在DSA和ECDSA簽名方案中,傳統上,這個隨機數是為每個簽名隨機生成的,如果隨機數生成器在簽名時被破壞並且是可預測的,則簽名可能會泄漏私鑰,就像Sony PlayStation 3固件更新簽名密鑰所發生的那樣。[10][11][12][13]
相比之下,EdDSA 確定性地選擇 nonce 作為私鑰和消息的哈希值的一部分。因此,一旦生成私鑰,EdDSA 就不再需要隨機數生成器來進行簽名,並且不存在用於生成簽名的受損隨機數生成器泄露私鑰的風險。[2]:8
值得注意的是,EdDSA 有兩項標準化工作,一項來自IETF,即信息性RFC 8032,另一項來自NIST,作為FIPS 186-5的一部分。[14]兩個標準之間的差異已經被分析了,[15][16]並且有測試向量。[17]
Ed25519 的顯着用途包括OpenSSH、[18]GnuPG[19]及各種替代方案和OpenBSD的signify工具[20]。SSH協議中的Ed25519和Ed448使用已經得到標準化。[21]在2023年,FIPS 186-5 標準的最終版確定將Ed25519包含為一種批准的簽名方案。[14]
Ed448是使用SHAKE256和Curve448的EdDSA簽名方式,定義於RFC 8032。其也已被FIPE 186-5標準的最終版本批准。[14]
Software. 2015-06-11 [2016-10-07]. (原始內容存檔於2024-04-29). The Ed25519 software is in the public domain.
Daniel J. Bernstein; Simon Josefsson; Tanja Lange; Peter Schwabe; Bo-Yin Yang. EdDSA for more curves (PDF) (技術報告). 2015-07-04 [2016-11-14].
Bernstein, Daniel J.; Lange, Tanja. ECDLP Security: Rho. SafeCurves: choosing safe curves for elliptic-curve cryptography. [2016-11-16]. (原始內容存檔於2023-11-27).
Bernstein, Daniel J. Ed25519: high-speed high-security signatures. 2017-01-22 [2019-09-27]. (原始內容存檔於2016-11-27). This system has a 2^128 security target; breaking it has similar difficulty to breaking NIST P-256, RSA with ~3000-bit keys, strong 128-bit block ciphers, etc.
Konstantinos Chalkias, Francois Garillot and Valeria Nikolaenko. Taming the many EdDSAs. Security Standardisation Research Conference (SSR 2020). 2020-10-01 [2021-02-15]. (原始內容存檔於2023-11-27).