비대칭키 + KDF · 포트 이름 RFC 7748 + RFC 5869 스스로 설명하는 그래프

포트 이름을 붙인 X25519 + HKDF

같은 세션키 유도에서 두 노드의 고정 포트에 역할 이름을 붙였다.

앱에서 열기 .ncw 내려받기

개요 및 암호학적 배경

키 합의를 키 유도로 이어 붙일 때 두 노드의 포트 이름을 바꿔 두면, 균일하지 않은 원시 ECDH 출력과 균일한 HKDF 세션키 사이의 보안 경계가 캔버스에서 바로 드러납니다. 이 워크플로우는 X25519 + HKDF와 기능이 같지만, 포트 이름을 바꾸고 두 노드에 Markdown 메모를 붙였습니다.

구체적으로 X25519 Key Exchange (ECDH)의 출력(포트 ID sharedSecret)과 HKDF Key Derivation의 입력(포트 ID ikm)에 모두 표시 이름 Raw Shared Secret을 붙였고, HKDF의 okm 출력은 Session Key로 바꿨습니다.

파이프라인 배선 구조와 역할 포트 매핑

Workflow Input ──► X25519 ECDH (Raw Shared Secret) ──► HKDF (Raw Shared Secret → Session Key) ──► Workflow Output

노드 구성 및 설정

노드역할과 이름을 바꾼 포트개수
Workflow InputPrivateKey, PeerPublicKey, Salt, Info 공급1
X25519 Key Exchange (ECDH)Raw Shared Secret(포트 ID sharedSecret) 출력1
HKDF Key DerivationhashAlgorithm = "SHA-256", keyLength = 32. Session Key(포트 ID okm) 출력1
Workflow Output32바이트 SessionKey 수집1

노드 레퍼런스 → · 포트 이름 변경 안내 →

입출력 명세 및 시험 벡터 검증

검증 출처: RFC 7748 §6.1 shared secret; HKDF-SHA-256 output cross-checked with Node.js crypto.hkdfSync

X25519 공유 비밀은 RFC 7748로, HKDF-SHA-256 출력은 Node.js의 hkdfSync와 교차 검증했습니다.

입력

이름타입값 (Hex)
PrivateKeybytes (32 B)77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a
PeerPublicKeybytes (32 B)de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f
Saltbytes (13 B)000102030405060708090a0b0c
Infobytes (22 B)6e6f646563727970746f2073657373696f6e206b6579

기대 출력

이름타입값 (Hex)
SessionKeybytes (32 B)7d87f69eef5eee6ad11c518723db4f5f8708a99c84e9a3589df85d62d7b14c9b