728x90
반응형
SMALL
AES (Advanced Encryption Standard)
미 정부의 표준 암호 알고리즘
AES-128, AES-192, AES-256
SPN구조 (↔DES는 Feistel구조)
AES의 요구사항
- 대칭키 암호 알고리즘
- 키 길이가 128, 192, 256비트에 대응
- 입출력 블록 길이는 128비트
AES 암호화 알고리즘
- 평문 128비트 블록을 4 x 4 행렬로 표현하여 연산 수행
- 행렬의 각 열은 32비트 워드(word)라고 함
- 기본 연산은 byte 단위로 수행
AES의 라운드 수
키 길이 128, 192, 256 비트에 따라 라운드 수 다름
SubBytes()
바이트 대체
1바이트의 값(0~255 중 어떤 값)을 인덱스로 하고, 256개의 값을 가지고 있는 S-Box로 부터 1개의 값을 얻는 처리
암호문이 비선형성을 갖도록 함 → SubBytes()의 입력과 출력이 서로 관련이 없어 보이도록 비선형 연산 수행
바이트 단위로 역변환 가능한 S-Box 적용
ex) 02에 대한 SubBytes() 연산 = 77 // S-Box의 0번 행, 2번 열의 값
57에 대한 SubBytes() 연산 = 5B // S-Box의 5번 행, 7번 열의 값
ShiftRows()
state의 각 행 단위로 정해진 수만큼 순환 시프트 수행
→ 0번째 행은 그대로, 1번째 행은 1번 시프트, 2번째 행은 2번 시프트
MixColumns()
높은 확산(diffusion)을 제공하기 위해 열 단위로 혼합하는 연산 (행렬의 곱 이용)
MixColumns()의 설계
State의 각 열을 4개의 항을 갖는 3차 다항식으로 표현
행렬의 곱으로 표현
AddRoundKey()
라운드 키와 현재 State를 비트 단위로 Exclusive-OR 연산
암호화 과정의 State와 라운드 키는 동일 크기 가짐
728x90
반응형
LIST
'보안 > 암호학' 카테고리의 다른 글
[암호학] 암호 공격 유형과 강도 (0) | 2023.04.08 |
---|---|
[암호학] AES 복호 알고리즘 (Advanced Encryption Standard) (0) | 2023.04.06 |
[암호학] 블록 암호 설계 및 구조 (0) | 2023.04.05 |
[암호학] DES (Data Encryption Standard) (1) | 2023.04.05 |
[암호학] 대칭키 암호 - 스트림 암호, 블록 암호 (0) | 2023.04.03 |