Ed25519Sign
密碼編譯、數位簽章
描述
在 edwards25519 上產生 PureEdDSA 簽章(RFC 8032)
語法
Delphi
Function Ed25519Sign(Const Message, Seed: AnsiString; Out Signature: AnsiString): Boolean;傳回值
| False | Seed 不是 32 位元組,且 Signature 設為空字串 |
|---|---|
| True | Signature 保存 64 位元組的 R||S 編碼 |
備註
密鑰展開為 h = SHA-512(seed);秘密純量 s 是 h 前半部夾限後的結果,nonce 前綴為後半部。nonce r = SHA-512(prefix||M) 對群組階數 L 取模約減,R = r*B,挑戰值 k = SHA-512(R||A||M) 對 L 取模約減,S = (r + k*s) mod L,因此簽章為 R 之後接 S,各佔 32 位元組。驗證可透過 Ed25519Verify 進行;雜湊為 SHA-512、無網域分離前綴與空內容
範例
Ed25519Sign(Msg, Seed, Sig);
OK:= Ed25519Verify(Msg, PubKey, Sig);另請參閱
Ed25519Verify, Ed25519PublicKeyFromSeed, Ed448Sign, SetSignProcessEd25519Identity