암호학

블록 암호 운영모드

소심야채 2021. 11. 22. 15:17

개요

DES나 AES와 같은 블록 암호를 사용하여 다양한 크기의 데이터를 암호화 하는 방식

 

운영모드 분류

 

Classification of operation modes

 

패딩

패딩(padding)이란 블록암호 알고리즘에서 블록의 크기를 일정하게 맞추기 위해 빈 부분을 채워주는 것을 말한다.

 

1. 제로 패딩(Zero Padding)

  • 패딩이 필요한 부분을 0으로 채운다.
  • 제로 패딩은 원본 파일이 하나 이상의 0 바이트로 끝나는 경우 되돌릴 수 없으므로 일반 텍스트 데이터 바이트와 패딩 바이트를 구별할 수 없다.

 

2. 비트 패딩(Bit Padding)

  • 비트 패딩은 크기와 상관없이 메시지에 적용할 수 있다.
  • 패딩이 필요한 부분은 0으로 채우되, 최상위 비트는 1로 채운다.

 

3. 바이트 패딩(Byte Padding)

  • 패딩이 필요한 부분은 0으로 채우되, 최하위 비트는 패딩의 크기로 채운다.

 

4. PKCS5 패딩

  • PKCS5 패딩은 8바이트 블록 크기를 사용하는 블록 암호에 대해서만 정의된다.
  • 원문의 길이가 L 바이트면 마지막 블록은 L mod 8의 크기를 갖는다.
  • 패딩 크기는 8 - (L mod 8)가 되며 PKCS5는 패딩 크기의 값을 갖는 바이트를 크기만큼 반복한다.

 

5. PKCS7 패딩

  • PKCS7은 8바이트가 아닌 가변 길이를 갖는 다는 점에서 다르지만 원리는 PKCS5와 동일하다.

 

 

 

운영 모드 종류

 

1. ECB: Electronic Code Book - 전자 부호표 모드

ECB 모드에서는 평문 블록을 암호화하는 것이 그대로 암호화 블록이 된다.

특징)

  • 어떤 평문 블록은 고정된 암호문 블록으로 암호화된다. (deterministic)
  • 암호문을 살펴보는 것만으로도 평문 속에 패턴의 반복이 있다는것을 알 수 있음

장점)

  • 블록 간에 동기화가 불필요하다. (다른 블록과 상관없이 특정 블록을 해돌할 수 있다.)
  • 암호화/복호화 과정의 병렬화 처리(parallelization processing)가 가능하다.

단점)

  • 만약 평문이 같은 두 블럭이 존재한다면, 두 블럭의 암호문 또한 같다. 
  • 블록 재사용이 가능하다.

2. CBC: Cipher Block Chaining - 암호 블록 연쇄 모드

각 블록은 암호화되기 전에 이전 블록의 암호화 결과와 XOR되며, 첫 블록의 경우는 초기화 벡터(IV)가 사용된다.

특징)

  • CBC 암호화는 확률적이다. (probabilistic). / 만약 매번 새로운 IV를 사용하면, 동일한 평문의 블록은 완전히 다른 암호문 블록이 만들어진다.
  • 초기값(IV)은 nonce이어야 한다. (number used only one)

장점)

  • 평문의 반복은 암호문에 반영되지 않는다.
  • 임의의 암호문 블록을 복호화 가능
  • 복호화 병렬처리 가능

단점)

  • 암호화에서는 병럴처리 불가능

 

3. CFB: Cipher FeedBack - 암호 피드백 모드

암호 피드백 방식은 CBC의 변형으로, 블록 암호를 자기 동기 스트림 암호로 변환한다.

특징)

  • 블록 암호화를 스트림 암호화처럼 구성해 평문과  암호문의 길이가 같다. (패딩이 필요 없다.)
  • 최초의 키생성 버퍼로 IV가 사용되며, 이때 IV는 제2의 키가 될 수 있다.
  • CBC모드와 마찬가지로 암호화는 순차적이고, 복호화는 병렬적으로 처리할 수 있다.

장점)

  • 패딩이 필요없음
  • 복호화 병렬처리 가능
  • 임의의 암호문 블럭을 복호화 가능

단점)

  • 암호화에서는 병렬처리 불가능
  • 재전송 공격 가능

 

4. OFB: Output FeedBack - 출력 피드백 모드

출력 피드백은 블록 암호를 동기식 스트림 암호로 변환한다. XOR 명령의 대칭 때문에 암호화와 암호 해제 방식은 완전히 동일하다.

특징)

  • 전처리기(Preprocess)가 가능하다. / 입력(PlainText)이 없어도, Key를 미리 만들 수 있다.
  • 암호화와 복호화 과정에서 XOR 연산되는 키 스트림이 평문과 암호문에 독립적이다.

장점)

  • 패딩이 필요없음
  • 암/복호화의 사전준비 가능하고, 같은 구조임

단점)

  • 병렬처리 불가능
  • 적극적 공격자가 암호문 블럭의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.

 

5. CTR: Counter - 카운터 모드

카운터 방식에서는 각 블록마다 현재 블록이 몇 번째인지 값을 얻어, 그 숫자와 nonce를 결합하여 블록 암호의 입력으로 사용한다.

특징)

  • 카운터 값이 다르므로, 서로 같은 두 평문을 암호화하여도 이에 대응 하는 두 암호문은 다르다.

장점)

  • 전처리(Preprocess)가 가능하다.
  • 병렬처리(Parallelization)가 가능하다.

단점)

  • 적극적 공격자가 암호문 블럭의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.

 

비교

참고자료

블록 암호 운영 모드 정보 보안 암호학 강좌 : https://www.youtube.com/watch?v=IfU0Rp2BOEo&list=PLW8wOTYOluvFmqr01lKXKku_4zjn2RqKH&index=16

위키피디아 : 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

 

블록 암호 운용 방식 - 위키백과, 우리 모두의 백과사전

암호학에서 블록 암호 운용 방식(영어: block cipher modes of operation)은 하나의 키 아래에서 블록 암호를 반복적으로 안전하게 이용하게 하는 절차를 말한다.[1][2] 블록 암호는 특정한 길이의 블록 단

ko.wikipedia.org

https://m.blog.naver.com/kostry/220808675410

 

DES의 작동 모드

DES의 작동 모드 1. ECB 모드(Electric CodeBook) - 전자 부호표 모드 ECB 모드에서는 평문 블...

blog.naver.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=bycho211&logNo=220975255680

 

운영모드(Mode of Operation)

4. 운영모드(mode of operation) - DES나 AES와 같은 블 록 암호를 사용하여 다양한 크기의 데이터를...

blog.naver.com

https://yjshin.tistory.com/entry/%EC%95%94%ED%98%B8%ED%95%99-%ED%98%84%EB%8C%80-%EB%8C%80%EC%B9%AD%ED%82%A4-%EC%95%94%ED%98%B8%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%95%94%ED%98%B8%ED%99%94-%EA%B8%B0%EB%B2%95-ECB-CBC-CFB-OFB-CTR-%EB%AA%A8%EB%93%9C

 

[암호학] 현대 대칭키 암호를 이용한 암호화 기법 - ECB, CBC, CFB, OFB, CTR 모드

블록 암호의 사용 방식 블록 암호는 고정된 n비트 블록을 n비트 블록으로 변환시키는 함수이다. 임의 길이의 평문을 암호화시키기 위해서는 평문을 특정한 길이로 분할하여 블록 암호에 입력시

yjshin.tistory.com