서명 · EdDSA
FIPS 186-5 / Edwards25519
RFC 8032 §7.1 검증됨
Ed25519 서명
32바이트 비밀키로 메시지에 결정적 서명을 하며 RFC 8032로 검증했다.

개요 및 암호학적 배경
Ed25519(IETF RFC 8032, NIST FIPS 186-5)는 꼬인 에드워즈 곡선 −x2 + y2 = 1 − (121665/121666)x2y2 (mod 2255 − 19) 위에서 SHA-512와 짝을 이루는 에드워즈 곡선 전자서명 알고리즘(EdDSA)입니다. 전통적인 ECDSA는 서명마다 새 난수 nonce k가 필요하고, nonce를 한 번이라도 재사용하면 개인키가 복구되는 치명적 결함이 있습니다. Ed25519는 비밀키의 SHA-512 상위 절반과 메시지 자체에서 메시지별 nonce r = SHA-512(prefix ‖ M) mod ℓ을 결정적으로 유도하므로 이 문제가 없습니다.
이 워크플로우는 RFC 8032 §7.1(TEST 2)을 재현합니다. 32바이트 비밀키 시드로 1바이트 메시지(0x72)에 서명해 정확히 일치하는 64바이트 서명 R ‖ S를 얻습니다.
파이프라인 배선 구조와 단계별 흐름
Workflow Input (PrivateKey 32B, Message 1B)
──►
Ed25519 Sign (PureEdDSA)
──►
Workflow Output (Signature 64B)
- 시드와 메시지 입력(
Workflow Input): 32바이트 Ed25519 비밀키 시드PrivateKey와 1바이트Message(0x72)를 공급합니다. - 결정적 서명(
Ed25519 Sign): 32바이트 시드를 SHA-512로 확장해 클램핑된 비밀 스칼라 s와 nonce 접두부를 얻고, 공개키 A = [s]B를 유도합니다. 이어서 R = [r]B를 계산하고 S = (r + SHA-512(R ‖ A ‖ M) · s) mod ℓ을 구합니다. - 서명 출력(
Workflow Output): 64바이트 서명(R || S)을 내보냅니다.
노드 구성 및 설정
| 노드 | 역할과 주요 매개변수 | 개수 |
|---|---|---|
| Workflow Input | PrivateKey(32 B)와 Message(1 B) 공급 | 1 |
| Ed25519 Sign | 결정적 64바이트 RFC 8032 PureEdDSA 서명 계산 | 1 |
| Workflow Output | 64바이트 Signature 수집 | 1 |
입출력 명세 및 시험 벡터 검증
검증 출처: RFC 8032 §7.1 (TEST 2, message 0x72)
입력
| 이름 | 타입 | 값 (Hex) |
|---|---|---|
PrivateKey | bytes (32 B) | 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb |
Message | bytes (1 B) | 72 |
기대 출력
| 이름 | 타입 | 값 (Hex) |
|---|---|---|
Signature | bytes (64 B) | 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00 |