[crypto] CBC 모드

2024. 11. 15. 20:27STUDY

320x100

CBC == Cipher Block Chainimg == 블록 암호 운용 모드

 

CBC 모드는 평문을 일정한 블록 단위로 나누는 블록 암호화 방법 중 하나다.

블록 암호화 방법
: 사전에 공유한 암호키를 사용해서 고정된 길이의 입력 블록을 고정된 길이의 출력 블록으로 변환하는 알고리즘.
- 암호화를 수행하기 전에 평문을 고정도니 블록으로 나누어 각각 암호화를 수행함.
- Feistel 구조 : 암호화한 방식을 그대로 역으로 수행하면 복호화를 할 수 있음.
- SPN 구조 : 역으로 복호화를 할 수 없음.

 

 

CBC 특징

1. CBC 모드는 최초 키의 생성 버퍼로 초기화벡터(IV)가 사용된다.
IV(Initialization Vector)는 나누어진 일정한 블록 중 하나가 되거나 단위 블록과 길이가 같은 임의의 값이 될 수 있음.

 

2. 블록 암호화 모드 중 보안이 가장 강력한 암호화 모드로, 가장 많이 사용되고 있다.
3. 배수를 맞추기 위한 패딩을 추가하여 크기를 맞춰야 한다.
4. 암호화 시 병렬 처리가 불가능하여 순차적으로 암호화해야 한다.
5. 복호화 시에는 병렬처리가 가능하다.

 

 

아래 그림은 CBC모드의 암호화와 복호화 과정이다.

[출처 : 위키피디아 ]

 

암호화

1. 첫 번째 블록과 XOR 연산을 통해 암호화가 된다.

IV XOR P1 => E(암호화) => C1(암호문)

 

2. 두 번째 블록부터는 첫 번째 블록의 암호화된 블록과 XOR 연산을 하여 암호화가 진행된다.

C1 XOR P2 => E => C2 ... 반복

 

[출처 : Chirag's Blog: Hash Function based on cipher block chaining ]

 

 

복호화는 암호문의 과정을 역순으로 진행하면 된다.

즉, C1을 복호화 한 후 IV와 XOR 연산을 수행하면 P1을 알 수 있다.

 

 

320x100
320x100

'STUDY' 카테고리의 다른 글

힘들어요!  (1) 2024.11.19
[FORENSICS] Event Logs  (0) 2024.08.02
[WEB] Hacking  (0) 2024.07.19
[NETWORK] DoS  (0) 2024.07.14
[NETWORK] Spoofing  (0) 2024.07.14