대칭키 · Value Registry
$var 참조
FIPS 197 부록 C.1 검증됨
변수를 쓰는 AES
키와 평문을 상수 대신 Value Registry의 이름 있는 변수에서 가져오는 FIPS 197 AES-128 예제.
개요 및 암호학적 배경
규모가 큰 암호 시험 모음에서 16진수 키와 시험 데이터를 노드마다 직접 적어 두면 환경이나 시험 벡터를 바꿀 때 번거롭고 실수하기 쉽습니다. NodeCrypto는 Value Registry를 제공합니다. $example.aes.key, $example.aes.plaintext 같은 이름 있는 변수를 워크플로우 그래프와 따로 저장해 두고 실행할 때 값을 해석합니다.
이 워크플로우는 NIST FIPS 197 부록 C.1(AES-128)의 단일 블록 시험 벡터를 재현합니다. 두 Static Value 노드는 바이트열을 직접 담지 않고 valueBytes 속성에 {"$var": "$example.aes.key"}와 {"$var": "$example.aes.plaintext"} 참조를 담습니다.
파이프라인 배선 구조와 단계별 흐름
Static Value ($example.aes.key)
──►
AES Encrypt (AES-128-ECB)
◄──
Static Value ($example.aes.plaintext)
- 변수 해석(
Static Value× 2): 그래프를 실행하기 전에 런타임이 Value Registry에서$example.aes.key(000102030405060708090a0b0c0d0e0f)와$example.aes.plaintext(00112233445566778899aabbccddeeff)를 찾아 16바이트 값을Value출력 포트로 내보냅니다. - 블록 암호화(
AES Encrypt): AES-128을ECB모드,padding = "None"으로 실행해 FIPS 197의 16바이트 암호문 블록을ciphertext출력 포트에 만듭니다.
노드 구성 및 설정
| 노드 | 역할과 주요 매개변수 | 개수 |
|---|---|---|
| Static Value | Key($example.aes.key)와 Plaintext($example.aes.plaintext)라는 이름의 두 인스턴스 | 2 |
| AES Encrypt | 이름 AES-128-ECB. mode = "ECB", padding = "None"으로 설정 | 1 |
변수, 출력 및 시험 벡터 검증
검증 출처: FIPS 197 Appendix C.1 (AES-128 example vector)
Value Registry 변수
| 변수 이름 | 타입 | 해석된 값 (Hex) |
|---|---|---|
$example.aes.key | bytes (16 B) | 000102030405060708090a0b0c0d0e0f |
$example.aes.plaintext | bytes (16 B) | 00112233445566778899aabbccddeeff |
기대 출력
| 노드 출력 | 타입 | 값 (Hex) |
|---|---|---|
AES-128-ECB.ciphertext | bytes (16 B) | 69c4e0d86a7b0430d8cdb78070b4c55a |