본문 바로가기
모의해킹 침해대응 과정/본 과정

암호학 / 블록 암호 모드 (Block cipher mode)

by 알거음슴 2021. 6. 23.

블록 암호 모드 (Block Cipher Mode)

블록 암호 (Block cipher)

지정된 특정 bit 수 단위의 집합(block)을 기준단위로 한번에 처리하는 암호 알고리즘.

 DES or 3DES : 64bit

 AES : 126bit, 192bit, 256bit

블록 암호 모드 (Block cipher mode)

긴 평문을 블록으로 나누어 암호화 진행, 각 블록에 암호 알고리즘을 반복해서 사용하여 긴 평문 전체를 암호화 진행.

블록 하나 하나를 암호화 하는 암호화 알고리즘, 블록 들의 집합을 암호화하는 암호 모드가 같이 활용되어야 한다.

주요 모드

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

2) CBC mode : Cipher Block Chaning Mode(암호 블록 연쇄 모드)

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

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

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

 

 

ECB mode (Electic CodeBook Mode)

전자 부호표 모드, 평문 블록을 암호화한 것이 그대로 암호문 블록으로 사용됨, 마지막 평문블록이 블록 길이에 미치지 못할경우 패딩(Padding)처리한다

* 패딩(Padding) : 마지막 평문 블록이 블록 길이에 미치지 못할경우 추가하여 블록 길이가 되도록 맞춘다.

ECB mode 의 암,복호화 과정.

 암호문의 내용을 해독하지 않고 암호문 블록의 위치만 변경하더라도 공격자의 의한 조정이 가능함으로 다양한 공격방법에 노출되어있는 가장 취약한 mode이다.

 

 

CBC mode (Cipher Block Chaing mode)

암호 블록 연쇄 모드, 암호문 블록들을 체인처럼 연결시키는 방식, CBC mode는 1단계에서 진행된 결과를 XOR 하고 나서 암호화를 진행하는 방식이다. 블록들은 단지 현재 평문블록 뿐 아닌 그 이전의 평문블록들도 영향을 받게 된다.

주로 IPsec 통신의 기밀성, SSL/TLS, Kerberos.ver5,등에서 활용되고 있는 광범위한 활용도가 있는 mode

CBC mode 의 암,복호화 과정.

IV(Initialization Vector) 가 필요하며 패딩(padding)처리가 진행되어야 한다 복호화시에는 IV값, 패딩값, 암호화 키가 필요하다

단 모든 블록이 XOR연산에 서로 연관되어 있기에 중간의 일부 블록이 파손, 누락시 그 이후 모든 블록에 영향을 미친다.

[참고] IV (Initialization Vector)

CBC mode 에서 최초 평문 블록 암호화를 위한 피트열, 모든 블록은 그 이전 블록의 XOR 연산을 진행해야한다, 최초 1단계 블록은 이전 블록이 존재하지 않음으로 이때 사용되는 비트열인 한개의 블록이 필요하다. (랜덤값)

[참고] 패딩 오라클 (Padding Oracle)

블록암호에 활용되는 패딩(padding)을 이용한 공격, 공격자는 패딩의 내용을 조금씩 변화시키며 송신 수신측은 복호화 하지 못한 오류값을 회신하는데 이때 오류를 분석하여 평문정보를 취득하는 방식.

 

 

CFB mode (Cipher FeedBack)

암호 피드백 모드, 피드백은 암호화 입력의 사용을 의미하며 IV의 값을 암호 알고리즘의 입력값으로 사용하는 방식이다.

CFD mode의 암,복호화 과정.

IV값이 필요하며 패딩은 필요하지 않는다. CBCmode 와 유사하나 가장 큰 차이점은 IV 를 암호화 하는 여부가 가장 큰 차이점이다.

재전송 공격 (Replay Attack) 에 취약하다, 공격자가 일부 블록을 탈취 후 재전송 시 탈취한 블록으로 일부를 치환하여 전송시 수신자는 잘못된 내용을 복호화하여 확인하게 된다.

 

 

OFB mode (Output Feedback)

출력 피드백 모드, 암호 알고리즘의 출력을 암호 알고리즘화 CFB와 비슷한 모습을 취한다.

OFB mode의 암,복호화 과정.

IV 값이 필요하며 CFB 방식과 유사하나 가장 큰 차이는 첫번째 XOR 연산의 입력값을 다음 블록에 영향을 미치는지, 출력값을 다음 블록에 영향을 미치는지가 가장 큰 차이점이다

 

 

CTR mode (CounTeR)

카운터 모드,CFB와 OFB의 장점을 모두 가지고 있는 방식, 1씩 증가하는 카운터를 암호화하여 키 스트림을 만들어 내는 스트림암호, 블록을 암호화할때마다 1씩 증가해가는 카운터를 암호화 하는게 가장 큰 특징이다. 또한 다른 mode와 달리 이전 단계의 블록과 영향을 받지않는다.

CTR mode의 암,복호화 과정.

IV 및 패딩값이 필요하지 않다, 한번에 모든 블록을 동시에 암호화함으로 매우 빠른 속도를 자랑하며, 최근에 가장 많이 사용되는 mode이다 암,복호화 과정이 완전히 같은 구조이며 프로그램 구현도 매우 간단하다.

 

[정리] Block cipher mode

모드 장점 단점 권장여부
ECB 간단, 고속
병렬처리 가능 (암호화/복호화 양쪽)
평문 속의 반복이 암호문에 반영된다.
암호문 블록의 삭제나 교체에 의한 평문의 조작이 가능
비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러가 된다.
재전송 공격이 가능
X
CBC 평문 반복은 암호문에 반영되지 않는다.
병렬처리 가능 (복호화만)
임의의 암호문 블록을 복호화할 수 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 1블록 전체와 다음 블록의 대응하는 비트가 에러가 된다.
암호화에서는 병렬 처리를 할 수 없다.
O
CFB 패딩이 필요 없다,
병렬처리 가능 (복호화만)
임의의 암호문 블록을 복호화 할 수 있다.
암호화에서는 병렬처리를 할 수 없다.
비트 단위의 에러가 있는 암호문을 복호화하면, 1블록 전체와 다음 블록의 대응하는 비트가 에러가 된다.
재전송 공격이 가능
X
OFB 패딩이 필요 없다.
암호화/복호화의 사전 준비를 할 수 있다.
암호화와 복호화가 같은 구조를 하고 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 평문의 대응하는 비트만 에러가 된다.
병렬 처리를 할 수 없다.
적극적 공격자가 암호문 블록을 비트 반전시키면 대응하는 평문 블록이 비트 반전된다.
 
X
CTR 패딩이 필요 없다.
암호화/복호화의 사전 준비를 할 수 있다.
암호화와 복호화가 같은 구조를 하고 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 평문의 대응하는 비트만 에러가 된다.
병렬처리 기능 (암호화/복호화 양쪽)
적극적 공격자가 암호문 블록을 비트 반전시키면, 대응하는 평문 블록이 비트 반전된다.
 
O