Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

PKCS#5 padding

PKCS5 padding 은 RFC 2898 인 "Password-based Encryption Standard" 에 정의된 패딩 방식으로 암호화하려는 데이터가 블록의 배수가 아닐 경우 다음과 같이 부족한 길이만큼 패딩을 하는 방식입니다.

예로 원본 데이타가 AB 라는 값으로 끝나고 8바이트가 블록 사이즈인데 암호화하려는 원본이 17 바이트라면 2개의 블록과 1바이트가 암호화 대상이 됩니다.

블록 크기만큼 맞추려면 7바이트가 부족하므로 다음과 같이 07 을 7번 패딩합니다.

Code Block
languagebash
AB 07 07 07 07 07 07 07


3 바이트가 부족할 경우 03 을 3번 패딩하면 됩니다.

Code Block
languagebash
AB A1 08 01 0A 03 03 03

...

정리하면 PKCS#5 padding 의 길이는 1 ~ 7바이트까지블록 크기에 부족한 바이트에 따라 아래와 같은 패딩이 붙게 됩니다.

Code Block
01
02 02
03 03 03
04 04 04 04
05 05 05 05 05
06 06 06 06 06 06
07 07 07 07 07 07 07

PKCS#7 padding

AES 같은 현대적인 암호화 알고리즘은 128, 192, 256 같은 훨씬 더 긴 길이의 키를 사용하며 블록 크기도 8 byte 가 아닌 128 bit(16 bytes) 를 사용합니다.

...