Advanced Encryption Standard, Rijndael
- 128-bit (16 bytes) block size
- Operates on 16 bytes in 4x4 column-major grid
- 128-, 192-, or 256-bit key size
- For long data symmetric
- There are even specific hardware accelerators for this AES algorithm
- 10(or 12 or 14) rounds of substitution, permutation and add round key (XOR)
SubBytesfor ConfusionShiftRowsfor DiffusionMixColumnsfor Diffusion with Finited FieldAddRoundKeyfor Confusion
- Decryption works in reverse order
AES Variants
Rijndael (AES) S-Box
Only for SubBytes
Create S-Box based on Finited Field
Column major grid
Data structure to manipulate while AES process


여러 PDF 도구가 AES-256을 사용하지만, 암호화 키를 생성하는 난수의 엔트로피가 극도로 낮다는 사실을 발견했다.
- MuPDF 1.28.5 이전 버전에서는 난수 생성 과정의 결함으로 AES-256 키가 사실상 9비트의 유효 엔트로피만 갖는 경우가 있었다. 따라서 가능한 키 후보는 512개에 불과하다.
- Foxit은 시간 기반 난수에 의존하고, OpenPDF·iText도 예측 가능한 시드의 난수 생성기를 사용하는 문제를 발견했다.
- 이 경우 사용자의 PDF 암호를 모르더라도 파일 암호화 키를 복구해 문서를 복호화할 수 있다. MuPDF 문제는 수정됐지만 과거에 암호화한 문서는 자동으로 안전해지지 않는다.
AES-256 알고리즘이 깨진 것이 아니라 256비트 키를 생성하는 난수 구현이 취약

Seonglae Cho