궁금한 주제를 찾아보세요

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

다시 읽을 이야기

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

기초지식코인 기초

RFC 6979 결정적 서명: ECDSA의 난수 k를 HMAC으로 정하는 방법

RFC 6979 원문으로 ECDSA 서명에 쓰이는 일회용 값 k를 메시지와 개인키에서 결정적으로 만드는 절차를 읽습니다.

난이도 입문기초 카테고리와 설명 방식 기준
RFC 6979 결정적 서명: ECDSA의 난수 k를 HMAC으로 정하는 방법 개념을 표현한 편집 일러스트
먼저 읽는 핵심

RFC 6979는 ECDSA의 일회용 값 k를 개인키와 메시지 해시에서 HMAC으로 정합니다.
만든 서명은 기존 DSA·ECDSA 검증기로 그대로 확인됩니다.
서명에는 난수원이 필요 없지만 키 생성에는 강한 난수가 여전히 필요합니다.

RFC 6979는 DSA와 ECDSA 서명에 필요한 일회용 값 k를 난수 대신 개인키와 메시지 해시에서 HMAC으로 정하는 절차입니다. 만들어진 서명은 기존 검증기가 그대로 확인합니다. 이 글은 2026-10-27에 연 RFC 6979 본문(2013년 8월, Informational)으로 확인한 범위만 다룹니다.

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

왜 k를 난수로 두면 곤란할까?

원문 1절은 k가 균일하게 무작위여야 하며 약간의 치우침도 서명 방식에 대한 공격으로 이어질 수 있다고 경고합니다. 스마트카드 같은 환경에서는 좋은 난수를 얻기 어렵고, 난수 서명은 자동 시험도 어렵다고 적습니다.

RFC 6979 구성 요소
요소 원문 내용(절)
입력 개인키 x와 메시지 해시 h1 (3.2)
초기값 V는 0x01 반복, K는 0x00 반복 (3.2 b, c)
핵심 연산 HMAC_K로 K와 V 갱신 (3.2 d~g)
거부 처리 범위 밖이면 K와 V를 갱신해 반복 (3.2 h)
HMAC_DRBG 관계 SP 800-90A의 HMAC_DRBG 사례로 설명 (3.3)

k는 어떤 순서로 만들어질까?

3.2절 절차는 h1=H(m)을 구한 뒤 V를 0x01 바이트열로, K를 0x00 바이트열로 시작합니다. 개인키 x와 h1 정보를 넣은 HMAC으로 K와 V를 두 번 갱신하고, V를 반복 해시해 필요한 길이의 T를 모아 k 후보로 씁니다. 범위에 맞지 않으면 갱신하고 반복합니다. 서명값의 성질은 EVM ecrecover 사용 시 서명 가변성과 도메인 분리를 확인하는 이유 글에, 다른 서명 방식은 비트코인 Schnorr 서명의 선형성이 주는 변화 글에 있습니다.

변형과 보안 고려는?

3.6절은 추가 데이터를 넣는 변형을 소개하되 공개된 시험 벡터로 검증할 수 없게 된다고 단점을 적습니다. 4절은 서명 때 난수원이 필요 없어지지만 키 생성에는 여전히 강한 난수가 필요하고, 부채널 대비를 권고한다고 설명합니다.

보안 면에서 얻는 것과 잃는 것은?

서명 때 난수가 필요 없어지면 난수 생성기의 결함이나 치우침이 서명을 약하게 만드는 경로가 줄어듭니다. 반면 4절은 이 방식이 HMAC_DRBG를 이용한 비무작위화이므로, 보안이 그 구성 요소의 성질에 기댄다고 설명합니다. 또 같은 입력에서 같은 계산이 반복되므로 부채널(전력·시간 측정) 공격에서는 오히려 유리해질 수 있어 방어 조치를 권고합니다. 3.6절의 변형은 이런 약점을 보완하려는 시도이지만 표준 시험 벡터와 대조할 수 없다는 비용이 있습니다. 결국 이 문서는 구현 선택의 근거이며 개인 지갑 사용자가 직접 설정할 항목은 아닙니다.

이 글에서 확인하지 못한 것은?

부록의 시험 벡터, 곡선별 구현 세부, 비트코인·이더리움 클라이언트의 실제 채택 여부는 이번에 확인하지 못했습니다. 본문 뒷부분 일부도 읽지 못해 5절 이후의 서술은 쓰지 않았습니다. 문서 분류가 Informational이라는 점은 표준 추적 문서가 아니라는 뜻이므로 참고용으로 읽는 것이 맞습니다. 정리하면 이 문서는 k를 정하는 규칙을 한 가지로 고정해 난수 의존을 없애는 방법이며, 서명 형식과 검증 쪽은 바뀌지 않습니다. 저자는 T. Pornin이고 발행은 2013년 8월입니다.

자주 묻는 질문

결정적 서명이면 같은 메시지의 서명은 항상 같나요?

표준 절차를 따르면 같은 개인키와 같은 메시지에 같은 k가 나옵니다. 추가 데이터를 넣는 변형은 표준 절차가 아닙니다.

검증하는 쪽도 이 절차를 알아야 하나요?

아닙니다. 원문은 서명이 표준 DSA·ECDSA와 호환되어 변경 없는 검증기가 확인한다고 적습니다.

비트코인과 이더리움이 이 방식을 쓰나요?

이번에 연 원문에는 특정 체인의 사용 여부가 없어 확인하지 못했습니다.

참고한 원문 자료

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

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

이해를 위한 정보 콘텐츠

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

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