궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

기초지식코인 기초

RFC 8032 Ed25519: 32바이트 개인 키가 공개 키와 64바이트 서명이 되는 과정

RFC 8032 원문으로 Ed25519 매개변수, 개인 키에서 공개 키를 만드는 단계와 가지치기, 서명 계산식, S 범위 확인과 서명 가변성 방지를 나눠 읽습니다.

난이도 입문기초 카테고리와 설명 방식 기준
RFC 8032 Ed25519: 32바이트 개인 키가 공개 키와 64바이트 서명이 되는 과정 개념을 표현한 편집 일러스트
먼저 읽는 핵심

Ed25519의 개인 키는 32바이트 난수이고, SHA-512 해시의 앞 절반을 가지치기해 비밀 스칼라 s를 만듭니다.
공개 키는 [s]B의 32바이트 인코딩이며, 서명은 R 32바이트와 S 32바이트를 이어 64바이트입니다.
검증에서 S가 군 위수 L보다 작은지 확인하므로 서명이 가변적이지 않다고 원문이 설명합니다.

Ed25519의 개인 키는 32바이트 난수이고, 이를 SHA-512로 해시한 앞 32바이트를 가지치기해 비밀 스칼라를 만듭니다. 공개 키는 기준점에 이 스칼라를 곱한 점의 32바이트 인코딩이며 서명은 R과 S 각 32바이트입니다. 이 글은 2026-10-27에 연 RFC 8032(Informational, 2017년 1월)로 확인한 범위만 다룹니다.

확인 기준일 2026-10-27 · 다음 확인 예정 2026-11-26

공개 키는 어떻게 만들어질까?

32바이트 개인 키를 SHA-512로 해시해 64바이트를 얻고 앞 32바이트만 공개 키 계산에 씁니다. 가지치기는 첫 바이트의 낮은 3비트를 지우고, 마지막 바이트의 최상위 비트를 지우며, 그 다음 상위 비트를 세웁니다. 이 값을 리틀엔디언 정수 s로 읽어 [s]B를 계산합니다. 인코딩은 y좌표를 32바이트 리틀엔디언으로 쓰고 x좌표의 최하위 비트를 마지막 바이트의 최상위 비트에 복사합니다.

Ed25519 매개변수
항목 원문 값
p 2^255 − 19
b 256
H(x) SHA-512(dom2(phflag, context) || x)
군 위수 L 2^252 + 27742317777372353535851937790883648493
a −1
공개 키·서명 크기 공개 키 32바이트, 서명 R 32바이트 + S 32바이트

서명은 무엇을 해시할까?

해시의 뒤쪽 절반을 prefix로 두고 SHA-512(prefix || 메시지)를 정수 r로 읽어 점 R=[r]B를 만듭니다. 이어 SHA-512(R || A || 메시지)를 정수 k로 읽고 S=(r+k·s) mod L을 계산합니다. 서명은 R과 S의 리틀엔디언 인코딩을 이은 것입니다. Ed25519에서는 dom2가 빈 문자열이라 context를 쓸 수 없고, 먼저 해시한 뒤 서명하는 Ed25519ph와 context를 받는 Ed25519ctx는 별도 변형입니다.

검증에서 S 범위를 왜 확인할까?

원문은 디코딩한 S가 L보다 작은지 확인하기 때문에 서명이 가변적이지 않다고 설명합니다. 이 확인이 없으면 S에 L의 배수를 더해도 통과하는 다른 서명이 만들어집니다. 다른 곡선 서명의 가변성 이야기는 EVM ecrecover 서명 가변성 글에 있습니다.

검증식은 왜 8을 곱할까?

검증은 [8][S]B = [8]R + [8][k]A’를 확인하며 인수 8은 곡선 상수(cofactor)입니다. 원문은 곱하지 않아도 보안상 필수는 아니라고 하면서, 구현마다 유효한 서명 집합이 달라지는 것을 피하려는 응용이 있다고 설명합니다. 원문은 EdDSA를 Schnorr 서명 체계의 변형으로 소개합니다. 비트코인의 Schnorr 서명은 비트코인 Schnorr 서명 글에서 따로 다루며 이 명세와 같은 규격은 아닙니다.

자주 묻는 질문

개인 키가 32바이트인데 해시는 왜 64바이트인가요?

SHA-512 출력이 64바이트이고, 앞 절반은 비밀 스칼라에, 뒤 절반은 서명 때 쓰는 prefix에 씁니다.

Ed25519ph와 Ed25519ctx는 무엇인가요?

Ed25519ph는 입력을 SHA-512로 먼저 해시한 뒤 서명하고, Ed25519ctx는 최대 255바이트의 context를 받으며 비워 두지 않도록 권고합니다. 일반 Ed25519는 context가 비어 있어야 합니다.

보안 강도는 얼마로 적혀 있나요?

Ed25519와 Ed25519ph는 명목상 128비트이고, Ed448 계열은 224비트라고 원문이 적습니다.

참고한 원문 자료

자료 확인 기준일 2026.10.27
  1. RFC 8032 Edwards-Curve Digital Signature Algorithm (EdDSA) — rfc-editor.orgwww.rfc-editor.org
작성 방식과 확인 범위
출처 수집
원문 링크 1개 제공
작성·확인
공식 기관 자료를 근거로 AI 도구를 활용해 작성했고, 운영자가 발행 전에 읽어 확인합니다.
전문가 검토
세무·법률 전문가 검토는 거치지 않았습니다.

투자·세무 판단은 전문가와 상의하세요. 제도와 거래소 안내는 바뀔 수 있으니 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →