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 被钳制的前半部分,随机数前缀取后半部分。随机数 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