자격증/정보보안기사

정보보안 - 블록 암호화 기법의 종류와 특징 : ESB, CBC, CFB, OFB, CTR

j9m 2022. 10. 6. 17:32
반응형

블록 암호화 알고리즘 구조

  • 블록 암호화 방법은 사전에 공유한 암호키를 사용해서 고정된 길이의 입력 블록을 고정된 길이의 출력 블록으로 변환하는 알고리즘이다. 즉, 블록 암호화는 암호화를 수행하기 전에 평문을 고정된 블록으로 나누어 각각 암호화를 수행한다.
  • 블록 암호화 알고리즘은 암호화한 방식을 그대로 역으로 수행하면 복호화를 할 수 있는 Feistel 구조와 역으로 복호화를 할 수 없는 SPN 구조로 분류된다.
  • Feistel 구조는 암호화와 복호화 과정이 동일한 것으로 역변환이 가능한 방법이며 하드웨어 및 소프트웨어로 구현이 쉽다.
  • SPN은 혼돈과 확산 이론에 기반을 둔 구조로 암호화 과정과 복호화 과정이 다른 특성이 존재한다.

 

① ESB(Electronic Code Book) Mode

  • ECB 모드는 가장 단순한 모드로 평문을 일정한 블록 단위로 나누어 순차적으로 암호화하는 구조이다. 이때, 블록의 단위는 알고리즘에 따라 다르다. DES 알고리즘은 블록을 64bit로 나누고 AES 알고리즘은 블록을 128Bit로 나눈다. 각각의 블록은 독립적이므로 특정 블록의 에러가 다른 블록에 영향을 주지 않는다.
  • 평문을 각각의 단위로 나눌 때, 배수에 미치지 못하여 남는 Bit는 패딩을 추가하여 크기를 맞춰야 하고, 한 개의 블록만 해독이 되면 나머지 블록 또한 해독되는 단점을 가진다.

 

② CBC(Cipher Block Chaining) Mode

  • ECB 모드와 동일한 방법으로 평문을 일정한 블록 단위로 나눈다.
  • 최초 키의 생성 버퍼로 IV(Initialization Vector)가 사용되어 첫 번째 블록과 XOR 연산을 통해 암호화가 된다.
  • IV는 나누어진 일정한 블록 중 하나가 되거나 단위 블록과 길이가 같은 임의의 값이 될 수 있다.
  • 두 번째 블록부터는 첫 번째 블록의 암호화된 블록과 XOR 연산을 하여 암호화가 진행된다.
  • 블록 암호화 모드 중 보안이 가장 강력한 암호화 모드로 평가되며 가장 많이 사용되고 있다.
  • ECB와 동일하게 배수를 맞추기 위한 패딩을 추가하여 크기를 맞춰야 하며, 암호화 시 병렬 처리가 불가능하여 순차적으로 암호화해야 한다는 단점을 가지고 있다. 단, 복호화 시에는 병렬처리가 가능하다.

③ CFB(Cipher FeedBack) Mode

  • 앞서 설명한 두 가지 모드와는 달리 평문과 암호문의 길이가 같다. 이는 패딩을 추가하지 않고 블록 단위 암호화를 스트림 암호화 방식으로 구성하여 Bit 단위로 암호화를 수행(패딩이 필요 없음, 암호문에 대해서 암호화를 반복하면 평문이 됨) 하기 때문이다.
  • CBC와 마찬가지로 IV가 사용되고, 암호화는 순차적으로 처리하며 복호화는 병렬처리가 가능하다.
  • CBC, CFB 두 모드는 암호문 한 개의 블록에서 에러 발생 시 현재 복호화되는 평문 블록과 다음 복호화되는 평문 블록에 영향을 준다.

 

④ OFB(Output FeedBack) Mode

  • OFB 또한, 평문과 암호문의 길이가 동일하다. 즉, CFB와 동일하게 패딩을 추가하지 않고 블록 단위 암호화를 스트림 암호화 방식으로 구성한다. 다른 점은 암호화 함수는 키의 생성 시에만 사용되어 암호화와 복호화의 방법이 동일하고 암호화 하하면 평문이 나온다. 마찬가지로 최초 키의 생성 버퍼로 IV가 사용된다.
  • 암호문 한 개의 블록에서 에러 발생 시 현재 복호화되는 평문 블록에만 영향을 주므로 영상 데이터, 음성 데이터와 같은 Digitized analog(디지털화된 아날로그) 신호에 주로 사용된다.

 

⑤ CTR(CounTeR) Mode

  • 평문 블록과 키스트림을  XOR 연산하여 암호문을 만든다. 키스트림 암호화 시마다 1씩 증가하는 카운터를 암호화한 Bit열이며, 암호화와 복호화 방법이 동일하므로 구현이 간단하고 블록의 암호화 순서가 임의의 순서가 될 수 있다. 임의의 순서로 암호화가 가능하다는 것은 암호화를 병렬로 처리할 수 있다는 것이다.
  • OFB와 마찬가지로 암호문 블록의 에러 발생 시, 한 개의 평문 블록에만 영향을 준다.

 

참고자료
이기적 정보보안기사 필기
https://ko.wikipedia.org/wiki/%EB%B8%94%EB%A1%9D_%EC%95%94%ED%98%B8_%EC%9A%B4%EC%9A%A9_%EB%B0%A9%EC%8B%9D
반응형