AES

 많은 플랫폼위에서 속도 그리고 코드압축성이 좋아 효율적인 암호방식. 벨기에의 2명의 암호학자, 존 대먼과, 빈센트 라이먼이 만든 암호화 알고리즘이다.

프로세스


State - AddRoundKey - {SubBytes - ShiftRows - MixColumns - AddRoundKey}:9 - SubBytes - ShiftRows - AddRoundKey

AddRoundKey

  • 라운드 키는 각 State에 bitwise XOR로 적용한다.
  • 사이퍼 키로부터 키 스케줄러를 통해 라운드 키 생성
  • 라운드 키의 길이는 평문 블록길이와 같다.

aes에 대한 이미지 검색결과

SubBytes

  • 각 바이트 단위 요소에 적용되는 비선형 대체 연산

aes에 대한 이미지 검색결과

ShiftRows

  • 첫 번째 행은 회전하지 않고, 두 번째 행은 좌로 1byte, 세 번째 행은 좌로 2bytes, 네 번째 행은 좌로 3bytes만큼 이동한다.

aes에 대한 이미지 검색결과

 

MixColumns

  • State의 각 열에 대하여 행렬곱셈을 수행한다.

a0 * [2 3 1 1] = r0
a1 * [1 2 3 1] = r1
a2 * [1 1 2 3] = r2
a3 * [3 1 1 2] = r3

여기서 r값들을 구하려면, 이런 식으로 해야한다.

r0 = (a0 * 2) + (a1 * 3) + (a2 * 1) + (a3 * 1).
r1 = (a0 * 1) + (a1 * 2) + (a2 * 3) + (a3 * 1).
r2 = (a0 * 1) + (a1 * 1) + (a2 * 2) + (a3 * 3).
r3 = (a0 * 3) + (a1 * 1) + (a2 * 1) + (a3 * 2).

여기서의 곱셈은  Exclusive-OR(XOR) 이다.

 

 

출처: https://namu.wiki/w/AES [나무위키]

'좌뇌 > 보안' 카테고리의 다른 글

DES(데이터 암호화 표준)  (0) 2018.04.09
블록 암호 기법(Block cipher)  (0) 2018.04.09

+ Recent posts