Ed25519Sign
Kryptographie, digitale Signaturen
Beschreibung
Erzeugt eine PureEdDSA-Signatur auf edwards25519 (RFC 8032)
Syntax
Delphi
Function Ed25519Sign(Const Message, Seed: AnsiString; Out Signature: AnsiString): Boolean;Rückgabewerte
| False | Seed ist nicht 32 Byte, und Signature wird auf einen leeren String gesetzt |
|---|---|
| True | Signature enthält die 64-Byte-R||S-Kodierung |
Anmerkungen
Das Geheimnis wird als h = SHA-512(seed) expandiert; der geheime Skalar s ist die geklemmte erste Hälfte von h, das Nonce-Präfix die zweite Hälfte. Die Nonce r = SHA-512(prefix||M) wird modulo der Gruppenordnung L reduziert, R = r*B, die Challenge k = SHA-512(R||A||M) wird modulo L reduziert, und S = (r + k*s) mod L; die Signatur besteht also aus R gefolgt von S, jeweils 32 Byte. Die Verifizierung ist über Ed25519Verify verfügbar; der Hash ist SHA-512 ohne Domänentrennungs-Präfix und mit leerem Kontext
Beispiel
Ed25519Sign(Msg, Seed, Sig);
OK:= Ed25519Verify(Msg, PubKey, Sig);Siehe auch
Ed25519Verify, Ed25519PublicKeyFromSeed, Ed448Sign, SetSignProcessEd25519Identity