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