상세 컨텐츠

본문 제목

Chapter02. 대칭 암호와 메시지 기밀성 - 대칭 암호 알고리즘(AES)

Network Security Essentials

by 메리_99 2022. 1. 6. 10:02

본문

반응형

AES(Advanced Encryption Standard)

  • 블록 길이가 128비트인 대칭 블록 암호이며, 키는 128, 192, 256비트를 사용
  • 암호화 키의 길이에 따라 실행하는 라운드 수가 다르다.
    • 128비트 : 10라운드
    • 192비트 : 12라운드
    • 256비트 : 14라운드
  • Feistel 구조가 아닌 대체와 치환을 이용한 데이터 블록 전체를 병렬 처리
  • Rijindael 알고리즘 기반

AES 암호화와 복호화

암호화

  • 확장된 키를 가지고 각 라운드에 사용(라운드 키 더하기)
  • 마지막 라운드를 제외한 각 라운드는 [바이트 대체 - 행 이동 - 열 섞기 - 라운드 키 더하기]의 절차를 가짐
  • 마지막 라운드는 [바이트 대체 - 행 이동 - 라운드 키 더하기] 절차를 가짐
    • AES 암호가 역으로 작동하기 위해 필요한 구조

복호화

  • 확장된 키를 가지고 각 라운드에 사용(라운드 키 더하기)
  • 마지막 라운드를 제외한 각 라운드는 [역으로 행 이동 - 역으로 바이트 대체 - 라운드 키 더하기 - 역으로 열 섞기]의 절차를 가짐
  • 마지막 라운드는 [역으로 행 이동 - 역으로 바이트 대체 - 라운드 키 더하기]의 절차를 가짐
    • AES 복호가 역으로 작동하기 위해 필요한 구조
  • 대부분의 블록 암호와 같이 복호 알고리즘에서는 확장키를 순서를 뒤집어서 적용하지만, 복호 알고리즘이 암호 알고리즘과 동일하지 않다. 
    • 역 계산을 통하여 복호화를 진행한다.

라운드

평문과 키

라운드 키 더하기(Add Round Key)

  • Plain Text와 Cipher Key를 XOR 연산한다.

라운드 키 더하기 연산 및 결과

바이트 대체(Sub Byte)

  • 8비트 단위로 데이터를 치환하는 연산
  • S-Box를 사용하여 치환하는 방법
    • e.g., Add Round Key Result 바이트 대체 연산 및 결과
    S-Box(http://wiki.hash.kr/images/f/f1/AES_S-box.png)

행 이동(Shift Row)

  • 행 단위로 하여 Shift 연산을 진행
    • 1행의 경우 Shift 0(그대로), 2행의 경우 Shift 1, 3행의 경우 Shift 2, 4행의 경우 Shift 3
  • e.g., Sub Byte Result 행 이동 연산 및 결과

행 이동 연산 및 결과

열 섞기(Mix Column)

  • 각각의 바이트에 특정행렬과 곱셈 연산을 진행
    • e.g., 특정행렬 및 Shift Row Result 열 섞기 및 결과(1열)

열 섞기 연산 및 결과

키 확장(Key Scheduling)

  • 마지막 4바이트를 한칸 쉬프트한 후 Sub Byte 연산을 진행한다.(마찬가지로 S-Box)

  • 이후 Rcon과 한 열씩 XOR연산을 진행한다.

Rcon
Rcon과 XOR 연산

  • Cipher Key의 첫번째 세로열과 XOR 연산을 진행한다. -> Round Key의 첫번째 세로열

Cipher Key 첫번째 세로열과 XOR 연산

  • 첫번째 세로열과 Cipher Key의 두번째 열 XOR 연산 진행한다. -> Round Key의 두번째 세로열
    • 마찬가지로 세번째, 네번째 세로열을 진행하면 Round Key의 세번째 세로열, 네번째 세로열이 생성된다.

Round Key 두번째 세로열 생성
완성된 첫번째 Round Key


위 글은 "Network Security Essentials William Stallings 저"을 공부하며 쓴 글입니다.

 

728x90

관련글 더보기

댓글 영역