본문 바로가기

정보보안기사/암호학

대칭키 암호 #4 (현대 대칭키 암호를 이용한 암호화 기법)

블록암호의 사용방식 

블록암호는 고정된 n 비트 블록을 n비트 블록으로 변환시키는 함수이다.

블록암호를 이용하여 평문을 암호화 할 때는단순히 암호 알고리즘만 사용하는 것이 아니고 사용 방식도 규정해야한다.


블록암호의 주요 모드

ECB 모드 : Electric CodeBook mode (전자 부호표 모드)

CBC 모드 : Cipher Block Chaining mode(암호 블록 연쇄 모드)

CFB 모드 : Cipher-FeedBack mode(암호 피드백 모드)

OFB 모드 : Output-FeedBack mode(출력 피드백 모드)

CTR 모드 : CounTeR mode(카운터 모드)


1. Electronic CodeBook(ECB)모드

개요 )

 모드중 가장 간단한 모드이다. 평문은 N개의 n비트 블록으로 분할 된다.

만약 평문의 크기가 블록의 배수가 아니라면 배수가 되게 padding(덧붙이는값)이 필요하다. 

블록의 암호화 복호화의 키는 동일 


특징 )

- 동일한 평문블록은 동일한 암호문 블록을 갖는다.

- 평문의 각 블록은 다른 블록과 관계없이 암호화가 된다. 따라서 암호문 블록을 재배열하여 복호화 하면 재배열된 평문블록이 도출된다.

- 암호문의 한 블록에서 에러가 발생하면 그 블록에 대응하는 평문블록에서만 에러가 발생한다.


응용 )

- ECB모드의 장점은 매우 많은 데이터베이스를 암호화 할 때 병렬 처리가 가능하다는점.

- 수정된 레코드를 그 시점부터 암호하 하거나 복호화 할 수 있다. 전후 처리에 영향을 받지않는 독립성을 가지고 있다.

 

2. Cipher Block Chaning(CBC) 모드

개요 )

- CBC 모드에서 각각의 평문블록은 암호화되기 전에 이전 암호문 블록과 XOR 된다.

- 첫번째 블록을 암호화 할 대는 이전의 암호문 블록이 존재하지 않으므로 초기벡터(IV) 라고 불리는 허구의 블록이 사용된다.

 

초기벡터 (IV)

- 주어진 평문에 대하여 , IV의 생성에 앞서 IV는 반드시 송수신 양자 모두가 알고 있어야 한다.

- 제 3자로부터 예측이 불가능해야 한다.

- 평문과 연관지어 IV에 대한 예측이 불가능 해야 한다.

 

특징 )

- 평문 P1, P2, .... P.. 에서 첫번째 블록이 바뀌면 암호문 블록은 모두 바뀐다. 암호문 C는 모든 평문의 영향을 받아 생성된다. 

- 평문을 제대로 복호화 하기위해서는 암호문이 순서대로 배열되어 있어야 한다.

- 암호문에서 에러가 발생하면 같은 순서의 평문블록과 그 다음 평문블록에서 에러가 발생한다.

- 암호문에서만 에러가 발생하면 두번째 후의 평문 블록에서부터는 정상적으로 복호화 된다.

 

암호화와 복호화 )

- CBC모드에서는 1단계 전에 수행되어 결과로 출력된 암호문 블록에 평문 블록을 XOR 하고 나서 암호화를 수행한다. 따라서 생성되는 각각의 암호문 블록은 현재 평문 블록뿐만 아니라 그 이전의 평문 블록들의 영향도 받게 된다.

- 복호화 할때 CBC 모드의 암호문이 1개 파손된 경우 암호문 블록의 길이가 바뀌지 않는다면 평문 블록에 미치는 영향은 2개 블록에 머문다

- 평문 블록의 한 비트오류는 전체 암호문에 영향을 준다.

 

CBC 모드 활용 )

- 인터넷에서 보안을 제공하는 프로토콜 중 하나인 IPSec에서는 통신의 기밀성을 지키기 위하어 CBC 모드로 사용한 3DES-CBC나 AES를 CBC 모드로 사용한 AES-CBC 등이 여기에 해당한다.

- CBC모드는 인증을 사훙하는 대칭키 암호 시스템의 하나인 Kerberos version5에서도  사용되고 있다.

 

3. Cipher FeedBack(CFB) 모드

개요 )

- CFB모드를 이용하면 어떤 블록암호도 스트림암호로 바꿀 수 있다.

- 스트림 암호의 경우 메세지의 길이가 블록의 정수배가 되도록 패딩을 할 필요가 없다.

- 실시간으로 사용할 수 있다.

 

암호화와 복호화 )

- 복호화 과정은 평문 블록과 암호문 블록의 역할만 바뀔뿐 동일하다.

- 암호화기법과 복호화 기법에서 암호함수는 DES나 AES를 사용한다.

 

스트림 암호로서의 CFB 모드 )

- 비록 CFB모드가 DES와 AES와 같은 블록암호를 이용한 운영모드이지만 그 결과는 스트림 암호와 같다. 사실, 키 스트림이 암호문에 의존하는 비동기식 스트림 암호이다.

 

4. Output FeedBack(OFB) 모드

개요 )

- OFB 모드는 평문 블록이 동일하면 암호문이 같아지는 ECB 모드의 단점과 오류 전파가 발생하는 CBC 모드와 CFB 모드를 개선한 동작 모드이다.

- OFB모드 동작은 암호기의 출력과 평문을 EX-OR 하여 암호문을 생성하고 있으므로 오류전파가 발생하지 않는다

- 암호문 송신자와 수신자 사이에 동기를 조절해야 한다. 즉, 전송중인 암호문의 비트손실이나 삽입등에 유의해야 하는 방식이다.

- OFB 모드에서도 CBC 모드나 CFB모드와 마찬가지로 초기화 벡터를 사용한다. 초기화 벡터는 암호화 할 때마다 다른 랜덤비트열을 이용하는 것이 보통이다.

 

특징 )

- 초기치가 바뀌면 암호문은 모두 바뀐다.

- 암호 알고리즘의 출력은 평문과 무관하다.

- 전송중의 비트 오류가 전파되지 않는다.

- 암호문에서 비트 손실이 발생하면 그 다음에 오는 모든 평문은 에러가 난다.

 

스트림 암호로서의 OFB 모드 )

- CFB모드와 마찬가지로 OFB 모드는 블록암호를 기반으로 한 스트림 암호이다. 스트림은 평문이나 암호문과는 독립적이므로 동기식 스트림 암호이다.

- 키스트림은 평문이나 암호문과는 독립적이므로 동기식 스트림 암호이다

 

5. CounTeR(CTR) 모드

개요 )

- CTR모드는 암호화 시 피드백이 존재하지 않는다.

- 키 스트림의 의사난수성은 카운터를 사용함으로서 충족 될 수 있다.

- 이전 암호문 블록과 독립적인 키 스트림을 생성 하지만 피드백을 사용하지 않는다.

- ECB 모드처럼 CTR 모드는 서로 독립적인 n비트 암호문 블록을 생성한다.

 

카운터 만드는 법 )

- 카운터의 초기 값은 암호화 때마다 다른 값을 기초로 해서 만든다. 블록 길이가 128비트 (16byte)인 경우 카운터의 초기 값은 다음과 같다

 66 1F 98 CD 37 A3 8B 4B

00 00 00 00 00 00 00 01

비표(nonce)

블록 번호

 

스트림 암호로서의 CTR 모드 )

- CFB 모드와 OFB모드 처럼 실제로 스트림 암호이다. (다른 평문 블록은 서로 다른 키로 XOR된다)

 

6. 정리 요약 

이름 

장점 

단점 

비고 

EBC모드

전자 부호표 모드

(Electric CodeBook)

- 간단

- 고속

- 병렬처리 가능

(암/복호화)

- 평문 속의 반복이 암호문에 반영

- 암호문의 블록의 삭제나 교체에 의한 평문의 조작 가능

- 비트 단위의 에러가 잇는 암호문을 복호화 하면 대응하는 블록이 에러난다.

- 재전송 공격이 가능

비권장

 CBC모드

암호블록 연쇄모드

(Cipher Block Chaining)

- 평문의 반복은 암호문에 반영되지 않는다.

- 병렬처리 가능(복호화)

- 임의의 암호문 블록을 복호화 가능

 - 전송도중 암호문 블록에서 한 비트가 오류가 발생함녀 평문 블록에는 대부분 비트에서 오류가 발생되고 다음 평문블록에서는 C 의 오류비트와 같은 위치에서 한 비트 오류가 발생한다.

- 암호화에서는 병렬처리 불가능

권장 

CFB모드

암호 피드백 모드

(Cipher FeedBack)

- 패딩이 필요없다

- 병렬처리 가능(복호화만)

- 임의의 암호문 블록을 복호화 가능

- 암호화에서는 병렬처리 불가능

- 전송도중 암호문 블록 C에서 한 비트 오류가 발생하면 평문 블록 P에서는 C의 오류 비트와 같은 위치에서 한 비트 오류가 발생, 하지만 C의 비트는 시프트레지스터에 오류가 존재하는 한 다음 평문블록의 대부분의 비트에 오류가 발생한다. (50%확률)

- 재전송 공격이 가능

CTR 모드 권장

OFB모드

출력 피드백 모드

(Output Feedback)

- 패딩이 필요없다.

- 암/복호화의 사전 준비 가능

- 암/복호화가 같은 구조

- 비트 단위의 에러가 있는 암호문을 복호화 하면 평문의 대응하는 비트만 에러가 난다.

- 병렬처리 불가능

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

CTR모드 권장

CTR모드

카운터 모드

(CounTeR)

-패딩이 필요없다.

- 암/복호화의 사전 준비 가능

- 암/복호화가 같은 구조

- 비트 단위의 에러가 있는 암호문을 복호화 하면 평문의 대응하는 비트만 에러가 난다.

- 병렬처리 가능(암/복호화)

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

권장 

 

'정보보안기사 > 암호학' 카테고리의 다른 글

대칭키 암호 #3 (AES 및 기타 대칭키 암호 알고리즘)  (0) 2017.06.27
대칭키 암호 #2 (DES)  (0) 2017.06.16
대칭키 암호 #1  (0) 2017.06.15
암호학 개요  (0) 2017.05.19