본문 바로가기
정보보안기사

블록 암호(ECB, CBC, CFB, OFB, CTR)

by 귤장수 2024. 6. 20.
반응형

 

 

개요

대칭키 암호화 방식으로 평문을 블록 단위로 나누어서 암호화하는 방식

암호화 방식은 운용 방식이라 부름

기본 원리

고정된 블록 크기

  • 데이터는 고정된 크기의 블록 단위로 나누어진다.
  • 데이터의 길이가 블록 크기의 배수가 아닌 경우 padding을 통해 크기를 맞춤

대칭 키 사용

  • 암호화와 복호화에 동일한 키 사용
  • 키의 비밀성을 유지하는 것이 중요!

블록 암호화 과정

  • 대칭키를 사용하여 암호화 및 복호화 과정 있음

주요 블록 암호 알고리즘

1. DES(Data Encryption Standard)

  • 1970년대에 개발된 블록 암호 알고리즘
  • 64비트 블록 크기와 56비트 키 길이를 가짐
  • 현재는 보안 취약점 발견으로 인해 잘 사용 안함

2. 3DES(Triple DES)

  • DES 알고리즘을 세 번 적용하여 보안성을 강화하는 방식
  • 성능이 떨어지고 키 관리가 복잡

3. AES(Advanced Encryption standard)

  • 2001년 NIST에서 채택한 블록 암호 알고리즘
  • 128비트 블록 크기와 128, 192, 256비트 키 길이를 지원
  • 현재 가장 널리 사용

 

 

블록 암호 운영 모드

1. ECB(Electronic Codebook)

ECB

  • 각 블록을 독립적으로 암호화
  • 동일한 평문 블록은 동일한 암호문 블록으로 변환
  • 한개의 블록만 해독되면 나머지 블록도 해독이 가능한 단점
  • 블록 단위로 나누어야 하기 때문에 배수가 아니면 Padding으로 넣어줘야한다.

 

2. CBC(Cipher Block Chaining)

CBC

  • 각 평문 블록을 이전 암호문 블록과 XOR 연산해 암호화
  • 초기화 벡터(IV)가 필요
  • 동일한 평문도 다른 암호문으로 변화가 가능하지만 매 암호화마다 다른 초기화 벡터를 사용해야 한다.
  • 암호화가 병렬처리가 아닌 순차적으로 수행되어야 한다.
  • 하나의 블록 암호화가 잘못되면 다음 블록에게까지 영향을 줌

 

3. CFB(Cipher FeadBack)

CFB

  • 평문과 암호화 블록의 크기가 같아서 스트림 암호처럼 사용 가능
  • 평문 블록을 연속적으로 암호문 블록으로 암호화
  • 초기화 벡터(IV)가 필요
  • 암호화는 순차적이지만 복호화는 병렬적으로 처리 가능
  • error propagation이 해당평문블록과 다음 평문블록 이렇게 총 2개의 블록이 전파

 

4. OFB(Output FeadBack)

OFB

  • 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다.(패딩 필요 X)
  • 암호화 함수는 키 생성에만 사용.
  • 암호화 방법과 복호화 방법이 동일 암호문을 한번 더 암호화하면 평문이 나온다.
  • 최초의 키 생성 버퍼로 IV가 사용
  • error propagation이 해당 블록까지만

 

5. CTR(CounTeR)

CTR

  • CTR 모드는 각 블록에 고유한 카운터 값을 암호화하여 평문 블록과 XOR 연산
  • 블록 암호를 스트림 암호처럼 사용 가능
  • 각 블록에 고유한 카운터 값이 필요
  • 암호화와 복호화 과정이 같아 구현이 간단
  • error propagation이 각 블록이 병렬 처리 되어서 같은 블록내에서만 이루어짐

 

알고리즘Block SizeKey Size

DES 64 56
Triple DES 64 112~168
BlowFish 64 128
RC2 64 128
RC4 Steam Cipher Steam Cipher
AES 128 128~256
SEED 128 128
ARIA 128 128~256
반응형

댓글