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のクランプ済み前半部で、ノンスプレフィックスは後半部です。ノンス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