목차

1. 대칭키 암호화와 비대칭키 암호화

2. 대칭키 암호의 분류

3. 블록화 암호의 분류

4. 블록화 암호의 운영 모드


1. 대칭키 암호화와 비대칭키 암호화

블록화 암호대칭키의 한 종류이다. 따라서 대칭키와 관련된 간략한 배경지식이 필요하다. 이에 대한 지식이 생소할 독자를 위해 대칭키와 이와 함께 등장하는 공개키 암호화 개념에 대해 다음 글에 간략히 정리해 두었다.

2. 대칭키 암호의 분류

1) 스트림 암호

 

평문과 같은 길이의 키 스트림을 생성하여, 평문과 키를 비트 단위로 XOR 하여 암호문을 얻는 대칭키 암호 방식.

 

ex) 메세지(평문)   1   0   1   1   0   1   0   1

      암호화키          1   1   0   0   1   1   0   0

      -----------------------------------

       XOR              0   1   1   1   1   0   0   1  (암호문)

 

ex) 암호문             0   1   1   1   1   0   0   1

      복호화키          1   1   0   0   1   1   0   0

      -----------------------------------

       XOR              1   0   1   1   0   1   0   1  (평문)

 

 

 

2) 블록화 암호

 

평문을 고정된 크기의 블록으로 나누어, 각 블록마다 암호화 과정을 수행하여 블록 단위로 암호문을 얻는 대칭키 암호 방식.

 

블록 암호화 알고리즘은 복호화가 가능파이스텔(Feistel) 구조와, 복호화가 불가능SPN 구조로 또 세분화된다.

 

또는 각 블록에 블록 암호화를 적용하는 방식에 따라 다양한 운영 모드를 가진다. 다양한 운영 모드가 있지만 대표적인 5가지는 다음과 같다: ECB, CBC, CFB, OFB, CTR

 

 

 

1.3. 블록화 암호의 분류

 

 

파이스텔 구조

 

SPN

 

 

1) 파이스텔 구조

 

하나의 입력 블록을 분할하여 좌우 두 개의 블록으로 구분한 뒤 라운드 진행

 

 

 

 

 

 

2) SPN(Substitution Permutation Network)

 

하나의 입력 블록을 여러 개의 소블록으로 나눈 후 라운드 진행.

 

 

 

 

 

 

 

 

 

 

1.4. 블록화 암호의 운영 모드

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation,

* IV: Initialization Vector(IV)는 블록 암호화에서 사용되는 보조 입력 값으로, 이름에서 알 수 있듯 블록 암호화에서 사용되는 키와 함께 암호화 프로세스를 초기화한다. IV의 작업을 통해 암호화에 사용되는 블록들의 패턴이 반복되지 않도록 하여 최종적으로는 보안성이 향상된다.

 

 

 

1) 전자 코드 북(ECB, Electronic CodeBook) 모드

전자 코드 북(ECB, Electronic Codebook) 모드에서는 평문 블록이 고정된 암호키를 사용하 여 암호화 한다. 같은 평문 블록이라면 항상 같은 암호문 블록을 생성한다. 장점은 단순하 기 때문에 암호화/복호화 시 빠르고 병렬처리가 가능하다는 점이다. 그러나 동일한 평문 블 록은 동일한 암호문을 생성하기 때문에 패턴 분석이 쉬워 안전하지 않다는 단점이 있다. 중요하지 않은 단순한 인증에서만 사용된다.

 

 

2) 암호 블록 연결(CBC, Cipher Block Chaining) 모드

암호 블록 연결(CBC, Cipher Block Chaining) 모드에서는 각 평문 블록이 이전 블록의 암호 문과 XOR 연산을 수행한 후 암호화된다. , 이전 블록의 암호문이 다음 블록의 암호화에 사용되므로, 동일한 평문 블록에 대해서도 다른 암호문이 생성되어 보다 안전하다. 또한 무 작위 초기화 백터(IV, Initialization Vector)를 사용하여 보안성이 강화된다. 다만, 각 블록이 이전 블록의 결과에 의존하기 때문에 순차적으로 처리되어 병렬처리가 가능한 ECB에 비해 다소 느리다. 대부분의 암호화 용도에 적합하다.

 

 

3) 암호 피드백(CFB, Cipher FeedBack) 모드

암호 피드백(CFB, Cipher FeedBack) 모드에서는 블록 암호화 기능을 스트림 암호화처럼 사 용한다. 먼저 초기화 백터(IV)가 블록 암호화 함수를 통해 암호문 블록을 생성한다. 그 후 이러한 암호문 블록과 평문의 각 비트를 XOR연산한다. , 블록 단위가 아닌 비트 단위로 XOR 처리되어 암호화되므로 스트림 암호화와 유사하다. 이렇게 생성된 암호문은 다음 블 록의 암호화에 암호문 블록으로써 사용된다. 이렇게 순차적인 암호화가 이루어지기 떄문에 병렬화가 어려워 성능이 떨어진다는 단점이 있지만, 블록 암호의 기능을 사용하여 스트림 암호화로 변환하거나, 특정 앱에 맞춰 데이터를 조작할 때 쓰일 수 있다는 장점이 있다.

 

 

4) 출력 피드백(OFB, Output FeedBack) 모드

출력 피드백(OFB, Output FeedBack) 모드에서는 CBF와 동일하게 스트림 암호화 방식으로 암호화가 이루어진다. 다른 점은 암호화 시 생성된 이전 암호문 블록이 사용되는 CFB와 달 리, 초기에 생성된 암호문 블록이 계속 사용된다. 이렇게 이전 암호문 블록이 현재 암호화 에 연결되지 않기 때문에, 오류 전파 방지가 가능하다는 장점이 있다. , 어느 한 블록에서 오류가 생겨도 다음 블록으로 전파되지 않는다. 또한 각 블록이 독립적이기 때문에 앞의 두 모드와 달리 병렬 처리가 가능해 빠르다는 것 역시 또다른 장점이다. 하지만 동일한 초 기화 백터(IV)를 사용하고, 동일한 평문 블록에 대해 같은 암호문 블록이 생성되어 패턴 분 석 및 유출이 가능하기에 보안이 취약하다는 단점이 존재한다.

 

 

 

5) 카운터(CTR, Counter) 모드

카운터(CTR, Counter) 모드에서 역시 CFB, OFB와 마찬가지로 암호문 블록을 스트림 암호처 럼 사용한다. 그러나 초기화 백터(IV)가 아닌 카운터(Counter)으로 암호화에 필요한 암호문 블록을 생성한다는 것이 특징이다. 먼저 IV가 카운터를 생성한다. 그 다음 카운터 값을 통 해 생성한 암호문 블록을 생성한다. 이렇게 생성된 암호문 블록을 통해 평문을 암호화 한 뒤, 다음 평문 블록을 암호화 하기 전 카운터 값이 1씩 증가하게 된다. 이러한 카운터 블록 의 장점은 각 평문 블록이 독립적으로 처리되기 때문에 병렬 처리가 가능, , 성능이 순차 처리에 비해 향상된다는 장점이 있다. 하지만 무결성 보장을 위해 카운터 값이 무작위로 선택하도록 하는 등 추가적인 조치가 필요하다는 단점이 있다. SSL/TLS 프로토콜 등 빠른 처리가 중요한 네트워크의 트래픽을 암호화하는데 사용된다.

 


참고 문헌

 

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

블록 암호화 알고리즘 구조 블록 암호화 방법은 사전에 공유한 암호키를 사용해서 고정된 길이의 입력 블록을 고정된 길이의 출력 블록으로 변환하는 알고리즘이다. 즉, 블록 암호화는 암호화

ohaengsa.tistory.com

 

3.

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

 

Block cipher mode of operation - Wikipedia

From Wikipedia, the free encyclopedia Cryptography algorithm "Mode of operation" redirects here. For "method of operation", see Modus operandi. Six common block cipher modes of operation for encrypting In cryptography, a block cipher mode of operation is a

en.wikipedia.org

 

+ Recent posts