NodeCrypto 도움말

TDES Encrypt

카테고리: 대칭키 암호 · 노드 타입 ID: symmetric-tdes-encrypt

Triple-DES(112 또는 168비트 키) 암호화 (NIST SP 800-67)

개요

NIST SP 800-67 / ANSI X9.52 표준 Triple-DES(TDES / 3DES, EDE: Encrypt-Decrypt-Encrypt) 64비트(8바이트) 블록 암호로 평문을 암호화한다.

16바이트 키(2-Key TDEA: $K_1, K_2, K_3=K_1$, 유효 112비트)와 24바이트 키(3-Key TDEA: $K_1, K_2, K_3$, 유효 168비트)를 모두 지원하며, ECB, CBC, CFB, OFB, CTR 모드를 제공한다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
암호 운영 모드
mode
select
기본값: ECB
항상 노출 64비트 블록 운용 모드(ECB, CBC, CFB, OFB, CTR)를 선택한다. 자세한 내용은 블록 암호 운용 모드를 참고한다.
  • ECB: ECB (Electronic Codebook)
  • CBC: CBC (Cipher Block Chaining)
패딩
padding
select
기본값: None
항상 노출 ECB/CBC 모드에서 8바이트 블록 경계에 맞출 패딩 방식이다. 자세한 내용은 패딩 스킴을 참고한다.
오류 단일화
errorUnify
boolean
기본값: false
변수 참조 지원 ($var: bool)
항상 노출 활성화하면 내장 오류를 지정한 단일 오류 코드·메시지로 대체한다.
단일화 오류 코드
errorUnifyCode
text
기본값: "" (비움)
변수 참조 지원 ($var: string)
errorUnify가 true 일 때 오류 통합 활성화 시 사용할 오류 코드이다.
단일화 오류 메시지
errorUnifyMessage
text
기본값: "" (비움)
변수 참조 지원 ($var: string)
errorUnify가 true 일 때 오류 통합 활성화 시 사용할 오류 메시지이다.

포트 입출력 명세

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

입력 포트

포트 성격: 고정 입력 포트 (총 3개; 조건부 노출 포트는 아래 표와 같이 파라미터 설정에 따라 전환됨).

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Key key Bytes (16/24B) 필수 항상 노출 16바이트(2-Key EDE) 또는 24바이트(3-Key EDE) Triple-DES 키이다.
Plaintext plaintext Bytes 필수 항상 노출 암호화할 평문 바이트 배열(Uint8Array)이다.
IV iv Bytes (8B) 선택 mode가 CBC 일 때 8바이트(64비트) 초기화 벡터(ECB를 제외한 모든 모드에서 노출되며 미연결 시 8바이트 0x00 사용)이다.

출력 포트

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

포트 이름포트 ID데이터 타입노출 조건설명
Ciphertext ciphertext Bytes 항상 노출 암호화된 바이트 배열(Uint8Array)이다.

오류 케이스

실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다. 오류 통합(errorUnify)을 활성화하면 아래의 모든 오류 코드가 사용자가 지정한 단일 오류 코드와 메시지로 대체된다.

오류 코드기본 엔진 메시지발생 조건
INVALID_KEY_LENGTH 키 길이가 올바르지 않는다 Key 길이가 16바이트 또는 24바이트가 아닐 때 발생한다.
PLAINTEXT_NOT_BLOCK_ALIGNED NoPad 모드에서는 평문 길이가 블록 크기의 배수여야 한다 ECB/CBC 모드에서 Padding = None인데 평문 길이가 8바이트의 양의 배수가 아닐 때 발생한다.

활용 예시

3-Key Triple-DES CBC 암호화 수행하기

24바이트 키와 8바이트 IV로 평문을 암호화한다.

  1. TDES Encrypt에서 운용 모드를 CBC, 패딩을 PKCS7로 설정하고 24바이트 Key, 8바이트 IV, Plaintext를 연결한다.