MAC · 키 해시 FIPS 198-1 / RFC 2104 RFC 4231 §4.3 검증됨

HMAC-SHA-256

키로 메시지의 인증 코드를 계산하며 RFC 4231로 검증했다.

앱에서 열기 .ncw 내려받기

HMAC-SHA-256

개요 및 암호학적 배경

HMAC(Hash-based Message Authentication Code)은 RFC 2104와 NIST FIPS 198-1로 표준화되어 있으며, 키가 없는 암호 해시 함수 H로 의사난수 함수와 메시지 인증 코드를 만듭니다. 안쪽 패드(0x36)와 바깥쪽 패드(0x5c)를 XOR한 키로 해시를 두 번 겹쳐 계산합니다.

HMAC(K, m) = H( (K' ⊕ opad) ‖ H( (K' ⊕ ipad) ‖ m ) )

SHA-256 같은 머클-담고르(Merkle-Damgård) 해시는 H(K ‖ m)처럼 단순하게 쓰면 길이 확장 공격에 취약합니다. HMAC은 안쪽 32바이트 다이제스트를 한 번 더 해시하므로, 공격자가 K를 모른 채 데이터를 덧붙일 수 없습니다. 이 워크플로우는 RFC 4231 §4.3(시험 사례 2)을 재현합니다. 4바이트 ASCII 키 "Jefe"(SHA-256 블록 크기 64바이트에 맞춰 내부에서 0으로 채움)로 ASCII 문장 "what do ya want for nothing?"을 인증합니다.

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

Workflow Input (Key, Data) ──► HMAC Generator (algorithm = SHA-256) ──► Workflow Output (MAC 32B)
  1. 키와 메시지 입력(Workflow Input): 비밀 Key(4바이트, 4a656665)와 메시지 Data(28바이트)를 공급합니다.
  2. 키 해시 계산(HMAC Generator): algorithm = "SHA-256"으로 설정합니다. 키가 64바이트보다 짧거나 길면 RFC 2104에 따라 노드가 자동으로 정규화한 뒤 32바이트 태그를 계산합니다.
  3. MAC 출력(Workflow Output): 32바이트(256비트) 인증 코드를 MAC 출력 포트로 내보냅니다.

노드 구성 및 설정

노드역할과 주요 매개변수개수
Workflow InputKey와 Data 바이트열 공급1
HMAC Generatoralgorithm = "SHA-256"으로 설정1
Workflow Output32바이트 MAC 출력 수집1

노드 레퍼런스 →

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

검증 출처: RFC 4231 §4.3 (Test Case 2, HMAC-SHA-256)

입력

이름타입값 (Hex)
Keybytes (4 B, ASCII "Jefe")4a656665
Databytes (28 B, ASCII "what do ya want for nothing?")7768617420646f2079612077616e7420666f72206e6f7468696e673f

기대 출력

이름타입값 (Hex)
MACbytes (32 B)5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843