[crypto] CBC 모드
2024. 11. 15. 20:27ㆍSTUDY
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 ... 반복
복호화는 암호문의 과정을 역순으로 진행하면 된다.
즉, 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 |