NodeCrypto 도움말

Block Padding

카테고리: 유틸리티 · 노드 타입 ID: padding-block-pad

암호학적 블록 패딩을 적용한다 (PKCS#7, ANSI X9.23, ISO/IEC 9797-1 방법 1/2/3, NIST SP 800-38B, 없음)

개요

임의 길이의 입력 바이트 배열(Uint8Array) 뒤에 선택한 표준 블록 패딩 바이트들을 추가하여 전체 길이가 목표 블록 크기(8바이트 또는 16바이트)의 정확한 배수가 되도록 맞춘다.

암호화 노드의 내장 패딩을 쓰는 대신, 패딩된 평문 블록 구조(PKCS7, ANSI_X923, ISO9797_M1, ISO9797_M2, ISO9797_M3, NIST_800_38B)를 눈으로 직접 확인하거나 Padding = None으로 설정된 블록 암호 노드에 수동으로 공급할 때 사용한다. 각 스킴의 바이트 레이아웃은 패딩 스킴을 참고한다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
패딩 표준
paddingType
select
기본값: None
항상 노출 이 노드의 패딩 표준 설정을 지정한다. 자세한 내용은 패딩 스킴을 참고한다.
블록 크기 (바이트)
blockSize
select
기본값: 16
항상 노출 목표 블록 크기(바이트 단위: 16 = AES/SEED/ARIA/Camellia/SM4용 128비트 블록, 8 = DES/TDES용 64비트 블록)이다.
  • 8: 8바이트(64비트 블록: DES, Triple-DES).
  • 16: 16바이트(128비트 블록: AES, SEED, ARIA, Camellia, SM4).
  • 32: 32바이트 (256비트)
오류 단일화
errorUnify
boolean
기본값: false
변수 참조 지원 ($var: bool)
항상 노출 활성화하면 내장 오류를 지정한 단일 오류 코드·메시지로 대체한다.
단일화 오류 코드
errorUnifyCode
text
기본값: "" (비움)
변수 참조 지원 ($var: string)
errorUnify가 true 일 때 오류 통합 활성화 시 사용할 오류 코드이다.
단일화 오류 메시지
errorUnifyMessage
text
기본값: "" (비움)
변수 참조 지원 ($var: string)
errorUnify가 true 일 때 오류 통합 활성화 시 사용할 오류 메시지이다.

포트 입출력 명세

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

입력 포트

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

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Data data Bytes 필수 항상 노출 패딩할 원본 입력 바이트 배열(Uint8Array)이다.

출력 포트

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

포트 이름포트 ID데이터 타입노출 조건설명
Padded Data result Bytes 항상 노출

오류 케이스

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

오류 코드기본 엔진 메시지발생 조건
PLAINTEXT_NOT_BLOCK_ALIGNED NoPad 모드에서는 평문 길이가 블록 크기의 배수여야 한다 scheme = None일 때 입력 Data 길이가 선택한 blockSize의 양의 배수가 아니면 발생한다.

활용 예시

5바이트 메시지에 16바이트 PKCS#7 패딩 적용하기

5바이트 입력 뒤에 11개의 0x0b 바이트가 추가되어 16바이트가 되는 것을 확인한다.

  1. Block Padding에서 패딩 방식을 PKCS7, 블록 크기를 16으로 설정한다.
  2. 5바이트 입력을 Data에 연결하면 뒤에 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b가 붙은 16바이트가 출력된다.