Ed25519Sign

密碼編譯、數位簽章

描述

在 edwards25519 上產生 PureEdDSA 簽章(RFC 8032)

語法

Delphi

Function Ed25519Sign(Const Message, Seed: AnsiString; Out Signature: AnsiString): Boolean;

傳回值

FalseSeed 不是 32 位元組,且 Signature 設為空字串
TrueSignature 保存 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