NodeCrypto 도움말

CMAC Generator

카테고리: 해시 & MAC & CRC · 노드 타입 ID: mac-cmac

NIST SP 800-38B 암호 기반 MAC (AES-128/256 또는 3DES)

개요

NIST SP 800-38B 및 RFC 4493 표준에 따라 대칭 블록 암호 기반 메시지 인증 코드인 CMAC(Cipher-based MAC, OMAC1)을 계산한다.

블록 암호의 영(Zero) 블록 암호화 결과에서 GF($2^b$) 유한체 상의 두 서브키 $K_1, K_2$를 파생하여, 마지막 블록이 블록 크기로 나누어떨어지는지 여부에 따라 길이에만 의존하는(Length-dependent) 안전한 말미 블록 마스킹을 수행한다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
기반 암호
cipher
select
기본값: AES
항상 노출 CMAC 계산에 사용할 기반 대칭 블록 암호와 키 크기를 선택한다.
  • AES: AES-128 / AES-256
  • 3DES: Triple DES (3DES)

포트 입출력 명세

포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.

입력 포트

포트 성격: 고정 입력 포트 (총 2개).

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Cipher Key key Bytes 필수 항상 노출 선택한 블록 암호에 맞는 정확한 길이의 대칭키 바이트 배열이다.
Message data Bytes 필수 항상 노출 인증할 메시지 바이트 배열(Uint8Array, 빈 배열 포함 임의 길이 가능)이다.

출력 포트

포트 성격: 고정 출력 포트 (총 1개).

포트 이름포트 ID데이터 타입노출 조건설명
CMAC Tag mac Bytes 항상 노출 계산된 CMAC 태그(AES는 16바이트, TDES는 8바이트)이다.

오류 케이스

실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.

오류 코드기본 엔진 메시지발생 조건
INVALID_KEY_LENGTH 키 길이가 올바르지 않는다 Key 길이가 선택한 암호(AES-128: 16B, AES-192: 24B, AES-256: 32B, TDES: 16B/24B)와 일치하지 않을 때 발생한다.

활용 예시

RFC 4493 AES-128-CMAC 태그 계산하기

16바이트 AES 키로 메시지의 16바이트 CMAC 태그를 생성한다.

  1. CMAC Generator에서 블록 암호를 AES-128로 선택한다.
  2. 16바이트 Secret Key와 Data를 연결하여 16바이트 CMAC Tag를 확인한다.