NodeCrypto 도움말

ECC Sign (ECDSA)

카테고리: 비대칭키 & 타원곡선 · 노드 타입 ID: asymmetric-ecc-sign

지정한 곡선의 개인키로 메시지 또는 해시에 서명한다

개요

지정한 바이어슈트라스 타원곡선과 해시 알고리즘을 사용하여 ECDSA(Elliptic Curve Digital Signature Algorithm, FIPS 186-5 / RFC 6979 결정론적 $k$) 디지털 서명을 생성한다.

서명 결과는 원시 고정 길이 연결 형식인 RAW (r || s)(JWS ES256/ES384/ES512, PKCS#11 표준) 또는 ASN.1 DER 시퀀스 형식(TLS/X.509/OpenSSL 표준) 중 선택해 출력할 수 있다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
곡선
curve
select
기본값: p256
항상 노출 개인키가 속한 타원곡선(P-256, P-384, P-521, secp256k1, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1)이다.
  • secp256k1: secp256k1 (Bitcoin / Ethereum)
  • p256: NIST P-256 (secp256r1 / prime256v1)
  • p384: NIST P-384 (secp384r1)
  • p521: NIST P-521 (secp521r1)
  • brainpoolP256r1: Brainpool P256r1 (RFC 5639)
  • brainpoolP384r1: Brainpool P384r1 (RFC 5639)
  • brainpoolP512r1: Brainpool P512r1 (RFC 5639)
SHA-256으로 먼저 해시
autoHash
boolean
기본값: true
변수 참조 지원 ($var: bool)
항상 노출 이 노드의 SHA-256으로 먼저 해시 설정을 지정한다.

포트 입출력 명세

포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.

입력 포트

포트 성격: 고정 입력 포트 (총 2개).

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Private Key privateKey Bytes 필수 항상 노출 서명자의 원시 타원곡선 개인키 스칼라 바이트 배열이다.
Message data Bytes 필수 항상 노출 원본 메시지. SHA-256으로 먼저 해시하는 옵션을 끄면 이미 계산한 해시를 넣는다.

출력 포트

포트 성격: 고정 출력 포트 (총 1개).

포트 이름포트 ID데이터 타입노출 조건설명
Signature signature Bytes 항상 노출 생성된 ECDSA 서명 바이트 배열(RAW 또는 DER)이다.

오류 케이스

실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.

오류 코드기본 엔진 메시지발생 조건
INVALID_KEY_MATERIAL 키 길이 또는 형식이 올바르지 않는다 Private Key 길이가 선택한 곡선의 필드 크기와 맞지 않거나 유효한 곡선 차수 범위($1 \le d < n$)를 벗어날 때 발생한다.

활용 예시

P-256 ECDSA 서명 생성하기

P-256 개인키와 SHA-256으로 64바이트 RAW(r||s) 서명을 만든다.

  1. ECC Keypair Generator(P-256)의 Private Key와 원본 Message를 ECC Sign (ECDSA)에 연결하면 64바이트 Signature가 출력된다.