AES란?
AES는 블록 암호의 표준 알고리즘이다.
지금까지도 기밀성을 위협하는 치명적인 취약점이 발견되지 않았고, 현대에 대칭키 암호 알고리즘을 사용할 때 많은 경우 AES가 사용된다.
대칭키 암호의 요건
대칭키 암호가 갖추어야 할 요건엔 혼돈과 확산이 있다.
혼돈은 키와 암호문 사이의 관계가 가능한 한 복잡해야 한다는 것. 암호문의 모든 비트는 키의 여러 부분에 의존해야 한다는 것이고,
확산은 평문이 암호문 대부분에 걸쳐 분산되어야 한다는 것. 평문을 1비트만 바꿔도 암호문은 절반 비트 가량이 바뀌어야 한다는 것이다.
AES의 암호 구조
AES는 SPN이라는 암호 구조를 사용한다. SPN은 S-BOX를 사용하는 치환과 P-BOX를 사용하는 순열을 여러 라운드에 걸쳐 반복한다.
기존 암호와의 차이
AES 이전에 사용되었던 블록 암호 표준인 DES는 페이스텔 구조 라고 불리는 구조를 사용한다. 페이스텔 구조의 경우 매 라운드마다 입력의 절반에 대해서만 계산을 적용하지만 SPN 구조에서는 라운드마다 입력 전체에 라운드 함수를 적용하므로 같은 수의 라운드를 사용할 떄 SPN이 페이스텔 구조에 비해 두 배의 암호학적 안전성을 가진다.
AES 구조
AES는 128비트 크기의 블록을 암호화하는 블록 암호이다. 키의 길이는 128, 192, 256비트 중 하나를 선택할 수 있고, 라운드 수는 키의 길이에 따라 10, 12, 14로 결정된다. 키의 길이가 128비트면 AES-128, 192비트면 AES-192, 256비트면 AES-256이라고 한다.
AES는 암호화할 때 가장 먼저 각 블록을 4행 4열의 상동 배열로 재구성한다. 상동 배열의 각 칸에는 1바이트가 저장된다.
AES의 각 라운드 함수들은 역함수가 존재해 AES 복호화 과정에서 이를 사용한다.
(각 라운드 함수의 자세한 설명은 생략함)
'공부한 것' 카테고리의 다른 글
| CVE-2026-21236 (0) | 2026.05.10 |
|---|---|
| CVE-2026-33017 (0) | 2026.05.09 |
| 암호학 - 고전 암호 공격 (0) | 2026.01.23 |
| 암호학 - 고전 암호 (0) | 2026.01.23 |
| CS 기초 - 1 (0) | 2026.01.23 |