선릉역 1번 출구
AES 본문
AES(advanced encryption standard)
- 연산 능력의 향상으로 DES가 더 이상 안전하지 않아 새롭게 표준으로 선정된 블록 암호 알고리즘
- Rijndael 구조가 채택되어 생성됨
- 체(field)와 군(group)에 대한 이해가 필요함
SPN(substitution permutation network)
- 곱 암호의 일종
- S-Box를 사용하는 치환과 P-Box를 사용하는 순열을 여러 라운드에 걸쳐 반복함
- 라운드마다 입력 전체에 라운드 함수를 적용하여 같은 수의 라운드를 사용할 때 SPN이 페이스텔 구조에 비해 두 배의 암호학적 안정성을 갖음
AES 구조
- 라운드마다 128비트 크기의 블록을 암호화하는 블록 암호
- 키 길이: 128, 192, 256
- 라운드 수: 10, 12, 14
AES 암호화 진행
- 각 블록을 4행 4열의 상태 배열로 재구성
- state의 각 칸에는 8bit(=1byte)가 저장됨
- AddRoundKey 함수를 적용하고 마지막 라운드 전까지 매 라운드마다 SubBtyes, ShiftRows, MixColumns, AddRoundKey 함수를 반복해 적용함
- 마지막 라운드에서는 MixColumns를 제외한 나머지 함수들만 적용함
*AES의 라운드 함수들은 역함수가 존재하여, 역함수를 가지고 AES 복호화가 이뤄짐
SubBytes
- State의 각 바이트를 S-Box를 참조해 치환하는 함수
- 상위 4bit -> 행, 하위 4bit -> 열
ShiftRows
- 각 행을 구성하는 바이트들을 쉬프트하는 함수
- 4가지 함수중 유일하게 순열의 역할을 수행함
- 2행은 왼쪽으로 1칸, 3행은 왼쪽으로 2칸, 4행은 왼쪽으로 3칸
MixColumns
- 열 단위로 치환을 수행하는 함수
- 이 치환은 갈루아 필드 내에서의 행렬 연산으로 구해짐
AddRoundKey
- 이 함수는 키 생성 함수로 생성된 라운드 키의 state를 각 바이트 별로 xor 진행함
키 생성 함수
- 입력된 키로부터 각 라운드에 쓰일 라운드 키를 생성함
- 각 라운드 키는 4행 4열의 행렬 -> 4행 44열의 키 행렬을 하나 만들고 4열씩 나눠서 매 AddRoundKey마다 사용함
- W_i≥4는 W_i-1에 RotWord, SubWord, Rcon 을 적용하고 이를 W_i-4와 XOR해 생성함
- RotWord: 열을 위로 한 번 회전
- SubWord: S-Box를 사용해 각 바이트를 치환
- Rcon: [01, 02, 04, 08, 10, 20, 40, 80, 1B, 36] 인 R에 대해 Wi의 최상위 바이트를 R[i/4 - 1]과 XOR한다.
'Computer > Cryptology' 카테고리의 다른 글
암호학 (1) | 2023.10.12 |
---|---|
DES (0) | 2023.02.06 |
현대 암호 (0) | 2023.02.06 |
고전 암호 (0) | 2023.02.06 |
Cryptology 도입 (0) | 2023.02.06 |
Comments