-
AES - 1Cryptography - Security/Dreamhack - Basic 2023. 5. 1. 23:50
AES란?
AES(Advanced Encryption Standard)는 연산 능력의 향상으로 DES가 더 이상 안전하지 않게 되자, 2001년에 새롭게 표준으로 선정된 블록 암호 알고리즘이다
표준으로 선정된 이후부터 지금까지, AES에는 기밀성을 위협하는 치명적인 취약점이 발견되지 않았고 CPU 제조사들이 AES 연산을 위한 명령어를 따로 정의해 주어서 암호화, 복호화의 성능도 뛰어나다
AES의 설계 원리를 이해하려면 갈루아 필드(Galois Field)를 비롯하여 체(Field)와 군(Group)에 대한 이해가 필요하다
SPN
AES는 SPN(Substitution Permutation Network)이라는 암호 구조를 사용한다
SPN은 곱 암호 중의 하나이다
S-Box를 사용하는 치환(Substitution)과 P-Box를 사용하는 순열(Permutation)을 여러 라운드에 걸쳐 반복한다라운드마다 입력 전체에 라운드 함수를 적용해서 매우 안전하다
AES 구조
AES는 라운드마다 128비트 크기의 블록을 암호화하는 블록 암호이다
키의 길이는 128, 192, 256비트 중 하나를 선택할 수 있고, 라운드 수는 키의 길이에 따라 10, 12, 14로 결정된다
키의 길이가 128비트이면 AES-128, 192비트이면 AES-192, 256비트이면 AES-256이라고 표현한다AES는 암호화를 할 때, 가장 먼저 각 블록을 4행 4열의 배열(State)로 재구성한 후 배열의 각 칸에는 8비트(1바이트)가 저장된다
예를 들어 입력 1F3CF203B211C5AA6EB27A45E4D98130는 아래와 같은 배열로 재구성된다
재구성된 입력에 대해 AddRoundKey 함수를 적용하고, 마지막 라운드 전까지 매 라운드마다 SubBytes, ShiftRows, MixColumns, AddRoundKey 함수들을 반복하여 계산한다
마지막 라운드에서는 MixColumns를 제외한 나머지 함수들만 적용해준다
AES는 역함수가 있어 암호화와 복호화는 위 그림처럼 나타난다
Dreamhack - Cryptography 공부내용 정리
관련된 문제는 사이트에 수록되어 있습니다
728x90'Cryptography - Security > Dreamhack - Basic' 카테고리의 다른 글
DES - 1 (1) 2023.05.08 AES - 2 (0) 2023.05.02 현대암호 - 2 (0) 2023.04.07 현대 암호 - 1 (0) 2023.04.07 고전암호 - 3 (0) 2023.04.06