X25519 Key Exchange (ECDH)
몽고메리 곡선 디피-헬만 공유 비밀 (RFC 7748)
개요
RFC 7748 표준 X25519 몽고메리 곡선 디피-헬만 함수로 내 32바이트 개인키와 상대방의 32바이트 공개키로부터 32바이트 공유 비밀(Shared Secret)을 계산한다. 산출된 32바이트 Shared Secret은 대칭 암호화 키로 사용하기 전에 HKDF Key Derivation에 통과시키는 것이 표준이다.
사용 시점
- X25519 KeyGen으로 생성한 키나 RFC 7748 테스트 벡터로 고속 상수 시간 타원곡선 키 합의를 수행할 때 사용한다.
파라미터 설정
X25519 Key Exchange (ECDH)는 설정 가능한 정적 파라미터가 없다.
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
포트 성격: 고정 입력 포트 (총 2개).
| 포트 이름 | 포트 ID | 데이터 타입 | 필수 여부 | 노출 조건 | 설명 |
|---|---|---|---|---|---|
My Private Key |
privateKey |
Bytes |
필수 | 항상 노출 | 내 32바이트 X25519 개인키이다. |
Peer Public Key |
peerPublicKey |
Bytes |
필수 | 항상 노출 | 상대방의 32바이트 X25519 공개키이다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Shared Secret |
sharedSecret |
Bytes |
항상 노출 | 계산된 32바이트 X25519 공유 비밀(Uint8Array)이다. |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
INVALID_KEY_MATERIAL |
키 길이 또는 형식이 올바르지 않는다 | Private Key 또는 Peer Public Key가 정확히 32바이트가 아니거나 저차수(Low-order) 점이어서 공유 비밀이 모두 0이 될 때 발생한다. |
활용 예시
X25519 공유 비밀 계산 후 HKDF로 대칭키 파생하기
32바이트 X25519 공유 비밀을 계산하여 HKDF에 전달한다.
- 내
Private Key와 상대방의Peer Public Key를 X25519 Key Exchange (ECDH)에 연결한다. - 32바이트
Shared Secret출력을 HKDF Key Derivation의IKM (Input Key)에 연결한다.