ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AES
    암호학 2016. 6. 3. 22:03

    -AES 개요

    평문을 128비트 단위로 나누어 암호화, 복호화를 수행

    각각의 128비트를 4x4 행렬로 표현하여 연산을 수행함

    State

    - 4x4행렬로 표현

    - 암호화, 복호화 과정의 중간 단계 결과물

    - (4, Nb)의 이차원 행렬로 표현 [ Nb : 블록 길이 / 32 = 4 ]

    - 기본 연산은 바이트 단위로 수행


    -AES에서의 덧셈과 곱셈 연산

    덧셈 연산은 mod2

    곱셈 연산은 mod8

    - m(x) = x^8 + x^4 + x^3 + x + 1


    -AES 암호화 과정

    1. 초기 평문과 라운드 키 XOR 연산

    2. [SubBytes(), ShiftRows(), MixColumns()] Nr-1 번 수행

    3. 마지막 라운드에서는 MixColumns() 연산을 수행하지 않음


    -AES-128/192/256 비교 (키 길이, 평문 블록 길이, 라운드수)

     

    키 길이(Nk) 

    평문 블록 길이(Nb) 

    라운드 수(Nr) 

    키 사이즈 

    블록 사이즈 

    AES-128 

    10 

    128 

    128 

    AES-192 

    12 

    192 

    128 

    AES-256 

    14 

    256 

    128


    -AES 키 확장

    Cipher Key K로부터 round key 생성

    Round key의 길이 = Nb * (Nr + 1) words

    SubWord(0 : 4byte를 입력으로 S-box를 적용한 결과

    RotWord() : [a0, a1, a2, a3] -> [a1, a2, a3, a0]

    Rcon[] : 라운드 상수


    1. w[i] = SubWord (RotWord (w[ i-1 ])) ⊕ [Rcon[i/Nk]]) ⊕ w[i-Nk]

    (단, i = 0 mod Nk)

    2. w[i] = w[ i-1 ] ⊕ w[ i-Nk ]

    (단, i =/= 0 mod Nk)

    3. w[i] SubWord (w[ i-1 ]) ⊕ w[ i-Nk ]

    (단, i = 4 mod 8)

    '암호학' 카테고리의 다른 글

    공개키  (0) 2016.06.04
    운용 모드  (0) 2016.06.03
    SEED  (0) 2016.06.03
    ~상용관용암호(DES)  (0) 2016.04.12
    DES  (0) 2016.04.11
Designed by Tistory.