블록 암호
- m 비트 단위로 암호화
- 평문의 길이가 m 비트 이상인 경우 >> 평문을 블록 단위로 분할
- Naïve approach: 분할 평문 블록별로 암호화 및 복호화 >> 안전성에 문제가 있음
블록 암호 모드
- 복수의 평문 블록을 어떤 방식으로 암호화할지를 정의하는 매커니즘
- 5개의 주요 모드 존재 (ECB, CBC, CFB, OFB, CTR)
메시지 패딩 (Padding)
- 마지막 평문 블록이 암호 알고리즘에서 정의한 블록 길이에 미치지 못하는 경우
- 패딩: 블록 길이를 만족하도록 약속한 방식으로 적당한 길이의 비트열 및 바이트열 추가
복호화했을 때 마지막 평문 브록에서 패딩 파트는 제외하고 평문으로 decode
ECB 모드 (Electric CodeBook mode)
- 장점
- 속도가 빠름
- 병렬처리 가능
- 단점
- 패딩이 필요
- 평문 반복 → 암호문 반복
- 암호문 블록 삭제 및 교체에 의한 평문 조작 가능
- 복호화 오류없는 재전송 공격 가능
쓰지 않음
CBC 모드 (Cipher Block Chaining mode)
- 장점
- 평문 반복이 암호문에 반영되지 않음
- 복호화 과정은 병렬처리 가능
- 임의의 암호문 블록 복호화 가능
- 단점
- 패딩 필요
- 암호화 과정 병렬처리 불가능
- 암호문 블록 내 비트 단위 에러가 발생하면 현재 평문 및 다음 평문 블록까지 에러 발생
- 약간의 복호화 오류가 있는 재전송 공격 가능
사용 권장
CFB 모드 (Cipher FeedBack mode)
- 장점
- 스트림 암호 방식 (패딩 필요 없음)
- 복호화 과정 병렬처리 가능
- 임의의 암호문 블록 복호화 가능
- 단점
- 암호화 과정 병렬처리 불가능
- 암호문 블록 내 비트 단위 에러가 발생하면 현재 평문 및 다음 평문 블록까지 에러 발생
- 약간의 복호화 오류가 있는 재전송 공격 가능
OFB 모드 (Output FeedBack mode)
- 장점
- 스트림 암호 방식 (패딩 필요 없음)
- 키스트림을 미리 발생시켜 사전에 암호화 및 복호화 준비 가능
- 암호화 구조 = 복호화 구조
- 암호문 블록 내 비트 단위 에러가 발생하면 현재 평문에만 한정됨
- 단점
- 암호화, 복호화 과정 모두 병렬처리 불가능
- 적극적 공격자가 암호문 블록 비트를 반전시키면 대응 평문 블록의 해당 비트가 반전됨
CTR 모드 (CounTeR mode)
- 장점
- 스트림 암호 방식 (패딩 필요 없음)
- 키스트림을 미리 발생시켜 사전에 암호화 및 복호화 준비 가능
- 암호화 구조 = 복호화 구조
- 암호문 블록 내 비트 단위 에러가 발생하면 현재 평문에만 한정됨
- 암호화와 복호화 모두 병렬처리 가능
- 단점
- 적극적 공격자가 암호문 블록 비트를 반전시키면 대응 평문 블록의 해당 비트가 반전됨'
사용 권장
'Incognito' 카테고리의 다른 글
기초대수학 문제 풀이 (1) | 2022.11.20 |
---|---|
스트림 암호 (Stream Cipher) (0) | 2022.11.05 |
AES 암호 알고리즘 (0) | 2022.10.22 |
Feistel Network (0) | 2022.10.22 |
일회용 패드 & 블록 암호 (0) | 2022.10.22 |