ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 암호학 5주차 - AES
    보안/CRYPTOGRAPHY 2024. 3. 15. 20:13

    0. 서론

    AES(Advanced Encryption Standard)

    : 연산 능력의 향상으로 DES가 안전하지 않게 되자 2001년에 새롭게 표준으로 선정된 블록 암호 알고리즘

    AES는 내부적인 논의만으로 표준으로 선정된 DES와 다르게 전세계에서 암호 알고리즘을 공모받고 심사를 거쳐 선정된 것이다.

    Vincent Rijmen, Joan Daemen 이 제안한 Rijndael 구조가 채택되었다.

    표준 선정 이후 취약점이 발견되지 않았고 현대에 대칭키 암호 알고리즘을 사용할 때 AES 를 사용한다.


    1. AES

    : SPN(Substitution Permutation Network)이라는 암호 구조를 사용

    • 라운드마다 입력 전체에 라운드 함수를 적용해서 페이스텔 구조보다 두 배로 암호학적 안전성을 갖는다.
    • SPN: 곱암호. S-BOX를 사용하는 치환과 P-BOX를 사용하는 순열을 여러 라운드에 걸쳐 반복한다.
     


    2. AES 구조

    AES: 라운드마다 128비트 크기의 블록을 암호화하는 블록 암호

    키의 길이는 128, 192, 256비트 중 하나를 택하고 라운드 수는 키의 길이에 따라 10, 12, 14로 결정된다.

    ex. 키의 길이가 128비트->AES-128

    • AES 암호화

    1. 암호화 할 때 각 블록을 4행 4열의 상태 배열로 재구성한다.

    - 배열의 각 칸에는 8비트가 저장된다. 배열을 state 라고 한다.

    ex. 입력 1F3CF203B211C5AA6EB27A45E4D98130 이면

     

    1F
    3C
    F2
    03
    B2
    11
    C5
    AA
    6E
    B2
    7A
    45
    E4
    D9
    81
    30

    2. 재구성된 입력에 대해 ADDRoundKey 함수를 적용하고

    매 라운드 전까지 라운드마다 SubBytes, ShiftRows, MixColumns, AddRoundKey 함수를 반복하여

    적용한다. 단 마지막 라운드에서는 MixColumns 는 실행하지 않는다.

    • AES 복호화

    라운드 함수들은 역함수가 존재하므로 역함수를 이용하여 복호화가 이루어진다.


    3. AES 라운드 함수

    • SubBytes

    : state의 각 바이트를 S-Box를 참조하여 치환하는 함수

    • 바이트의 상위 4비트가 행, 하위 4비트가 열을 결정한다.
     
     
     

    • ShiftRows

    : state의 각 행을 구성하는 바이트들을 쉬프트하는 함수

    - 순열의 역할을 한다.

    - 2행은 왼쪽으로 1칸, 3행은 왼쪽으로 2칸, 4행은 왼쪽으로 3칸 민다.

    - 복호화는 반대로 오른쪽으로 민다.

    ex.

    • MixColums

    : 열 단위로 치환을 수행하는 함수

    - 갈루아 필드 내에서의 행렬 연산으로 구해진다.

    - 치환방법, 복호화 방법, 예시

    • AddRoundKey

    : 키 생성 함수(key schedule)로 생성된 라운드 키의 state를 각 바이트별로 XOR한다.

    - 복호화: 동일한 키를 state에 xor한다.

     

    • Key Schedule

    : 입력된 키로부터 각 라운드에 쓰일 라운드 키를 생성한다.

     

    - AES 는 암호화와 복호화를 시작할 때 매 라운드마다 addroundkey를 적용한다.

    • RotWord

    : 열을 위로 한 번 회전시킨다.

    • SubWord

    : SubBytes에서 사용한 것과 동일한 S-Box를 사용해서 각 바이트를 치환한다.

    • Rcon

    : R=[01,02,04,08,10,20,40,80,1B,36]인 R에 대해 Wi의 최상위 바이트를 R[i/4-1]R[i/4−1]과 XOR한다.

     
     

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

    암호학 5주차 - 블록암호  (0) 2024.03.16
    암호학 5주차 - DES  (0) 2024.03.15
    암호학 4주차 - 현대 암호  (0) 2024.03.15
    암호학 4주차 - 고전 암호  (0) 2024.03.15
    암호학 3주차  (0) 2024.03.15
Designed by Tistory.