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를 반복한다
반응형