티스토리 뷰

암호학

블록 암호 운영모드

소심야채 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

 

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

비밀글입니다  (0) 2022.01.07
AES  (0) 2021.11.26
DES  (0) 2021.11.18
댓글