안 쓰던 블로그

AES란? AES의 암호화와 키 확장 과정 본문

CTF/Crypto

AES란? AES의 암호화와 키 확장 과정

proqk 2021. 3. 19. 20:25
반응형

AES

암호화

1. 라운드키와 xor한다. (AddRoundKey)

2. 바이트를 치환한다. (SubBytes) 치환표 SBox를 이용한다

3. 행별로 바이트를 옮긴다. (ShiftRows) 첫 행은 움직이지 않고 둘째행은 왼쪽으로 1번, 셋째행은 왼쪽으로 2번, 넷째행은 3번 바이트 단위로 이동하는 왼쪽 순환 쉬프트 과정을 거친다

4. 열 별로 바이트를 섞는다. (4) 이전 라운드에서 나온 값의 각 열에 대해 임의의 행렬과 연산한다

5. 라운키와 xor한다. (AddRoundKey) 암호문과 평문을 XOR한다

6. (라운드 수 - 1) 만큼 2~5를 반복한다.

7. 마지막 라운드는 MixColumns를 제외하고 수행한다.

 

키 확장

1. 키를 4바이트씩 나누어 4개의 워드로 만든다.

2. 이전 번의 워드와 4번째전 워드를 xor하여 새 워드를 생성한다. ( 4의 배수 번째의 경우 이전 워드를 g함수에 통과시킨다.)

    2-1. 입력의 워드를 1바이트만큼 왼쪽 순환시프트를 한다.

    2-2. Subbytes에 썼던 치환을 여기서도 사용한다.

    2-3. 상수값 R과 xor하여 결과를 반환한다.

3. 워드가 44개 생성될때까지 2를 반복한다

반응형
Comments