∎ 탄생 배경
DES를 보완하기 위해 NIST에서 공모하였다.
안정성, 비용, 구현의 효율성을 기준으로 AES 알고리즘을 선정하였다.
∎ 용어
⦁ 라운드 : 암호화를 위해 반복되는 것
⦁ 마스터키 : 암호화, 복호화에 사용되는 비밀키
⦁ 라운드 키 : 라운드마다 사용되는 키
∎ 특징
⦁ 128비트 평문 ➜ 128비트 암호문
⦁ 라운드는 10, 12, 14가 있으며 각각의 마스터 키의 크기는 128, 192, 256이다.
⦁ 하지만 모두 라운드 키는 128비트를 사용한다.
⦁ 각각의 라운드 키의 수는 "라운드+1" 이다.
∎ 단위
⦁ 비트, 바이트, 워드(4바이트)
⦁ 블록 : 128비트를 16바이트의 블록으로 표현
⦁ 스테이트 : 각 연산 사이의 데이터 블록, (4X4 행렬) 16바이트로 구성된다. 열 단위로 적용된다.
⦁ 블록을 스테이트로 변환하는 과정?
∎ 암호화 과정 (대치, ShiftRows, MixColumns, 키 덧셈)
(non-Feistel 알고리즘으로 역함수가 존재한다.)
✔ 대치
⦁ 각 스테이트마다 대치변환을 하는데, 한 바이트를 4비트씩 2개로 나누어 2개의 16진수를 만들고 SubBytes 변환 테이블의 행열에서 찾아 대치한다.
⦁ 역함수는 InvSubBytes
⦁ 각 라운드마다 한번씩 실행
✔ ShiftRows 치환
⦁ 스테이트에서 각 행을 기준으로 바이트마다 shifting (비트 X)
⦁ 각 행 번호(수)만큼 왼쪽으로 이동한다.
⦁ 역함수는 InvShiftRows (오른쪽으로 이동한다.)
⦁ 각 라운드마다 한번씩 실행
✔ MixColumns
⦁ 바이트 안의 비트를 바꾸기 위한 연산이다.
⦁ 한 열(4바이트)씩 정방행렬과 곱해 새로운 열을 만든다.
⦁ 사용되는 정방행렬
⦁ 역함수는 InvMixColumns이다.
⦁ 마지막 라운드를 제외하고 각 라운드에서 한번씩 실행
✔ AddRoundKey
- 한 열에 라운드 키 워드를 더해 새로운 열을 만든다.
- 라운드 키는 128비트인데, 워드(32비트)로 4개의 행을가진 1해의 열로 표현한다.
- 역함수는 자기 자신이다.
- 각 라운드에서 한번씩 실행하고 pre-round에서 한번 더 실행
✔ 라운드 키는 워드 단위를 갖는다. 128비트를 워드 단위로 바꾸면 44워드가 필요하다.
'보안' 카테고리의 다른 글
전통적인 대칭키 암호 (0) | 2024.08.11 |
---|---|
DES 암호화 (0) | 2024.08.11 |
보안의 목표 (0) | 2024.08.11 |
보안 공격과 대응 방안 (0) | 2024.08.09 |
네트워크 계층의 보안과 방화벽 (0) | 2024.08.09 |