양자내성 · KEM NIST FIPS 203 종단 간 왕복 검사

ML-KEM-768 왕복

키 생성, 캡슐화, 역캡슐화를 한 그래프로 구성한다. 양쪽 공유 비밀이 같으면 true를 출력한다.

앱에서 열기 .ncw 내려받기

개요 및 암호학적 배경

NIST FIPS 203 ML-KEM-768 같은 키 캡슐화 메커니즘(KEM)에서는 두 당사자가 세 가지 연산으로 키를 설정합니다. Alice가 ML-KEM.KeyGen()을 실행해 1,184바이트 캡슐화(공개) 키 ek와 2,400바이트 역캡슐화(비밀) 키 dk를 만들고 ek를 Bob에게 보냅니다. Bob은 새 난수로 ML-KEM.Encaps(ek)를 실행해 1,088바이트 암호문 c와 32바이트 공유 비밀 KBob을 만듭니다. 마지막으로 Alice가 ML-KEM.Decaps(dk, c)로 32바이트 공유 비밀 KAlice를 복원합니다.

이 워크플로우는 세 양자내성 노드를 한 캔버스에 연결하고, 두 32바이트 공유 비밀을 Value Comparator(==)에 넣습니다. 난수를 쓰는 실행마다 KBob = KAlice가 성립함(SharedSecretsMatch = true)을 보여 줍니다. 매번 새 키쌍을 쓰므로 고정 시험 벡터 대조가 아니라 연산 사슬이 일관되는지 확인하는 용도입니다.

파이프라인 배선 구조와 단계별 흐름

ML-KEM KeyGen (ek 1184B, dk 2400B) ──► ML-KEM Encaps (c 1088B, K_enc 32B) ──► ML-KEM Decaps (K_dec 32B) ──► Value Comparator (== → true)
  1. 키쌍 생성(ML-KEM KeyGen (FIPS 203)): 실행할 때마다 새 ML-KEM-768 키쌍을 만듭니다. publicKey(ek)는 ML-KEM Encapsulate로, secretKey(dk)는 ML-KEM Decapsulate로 보냅니다.
  2. 캡슐화(ML-KEM Encapsulate): publicKey에 대해 새 32바이트 공유 비밀을 캡슐화합니다. ciphertext(c)는 ML-KEM Decapsulate로, sharedSecret은 Value Comparator의 포트 a로 보냅니다.
  3. 역캡슐화와 동일성 검사(ML-KEM Decapsulate → Value Comparator): secretKey로 ciphertext를 역캡슐화하고, 복원한 sharedSecret을 Value Comparator의 포트 b로 보냅니다. 비교기가 true를 Workflow Output으로 출력합니다.

노드 구성 및 설정

노드역할과 주요 매개변수개수
Workflow Input워크플로우 입구 노드(외부 인자 불필요)1
ML-KEM KeyGen (FIPS 203)variant = 768. 새 ek(1,184 B)와 dk(2,400 B) 생성1
ML-KEM Encapsulatevariant = 768. 1,088바이트 암호문과 32바이트 공유 비밀 생성1
ML-KEM Decapsulatevariant = 768. 암호문과 dk로 32바이트 공유 비밀 복원1
Value Comparatoroperator = "==". 캡슐화한 비밀과 역캡슐화한 비밀 비교1
Workflow Output불리언 판정 SharedSecretsMatch 출력1

노드 레퍼런스 →

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

검증 출처: Randomized (FIPS 203 ML-KEM-768 round trip); only the boolean verdict is compared

무작위 왕복 실행이므로 고정 출력은 없고 불리언 판정(공유 비밀 일치)만 비교합니다.

기대 출력

이름타입Value
SharedSecretsMatchbooltrue