블록 암호 모드: Difference between revisions
From IT Wiki
(새 문서: ;Block Cipher Mode; Block Cipher Modes of Operation ;블록 암호에서 블럭 단위로 암·복호화 되는 과정을 반복적으로 운용하는 절차 == 종류 == === ECB...) |
(→CBC 모드) |
||
(12 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:보안]] | |||
[[분류:암호학]] | |||
;Block Cipher Mode; Block Cipher Modes of Operation | ;Block Cipher Mode; Block Cipher Modes of Operation | ||
;[[블록 암호]]에서 블럭 단위로 암·복호화 되는 과정을 반복적으로 운용하는 절차 | ;[[블록 암호]]에서 블럭 단위로 암·복호화 되는 과정을 반복적으로 운용하는 절차 | ||
== 종류 == | ==종류== | ||
=== ECB === | ===[[ECB 모드]]=== | ||
* 각 블록은 동일한 키를 이용하여 독립적으로 암호화 | *각 블록은 동일한 키를 이용하여 독립적으로 암호화 | ||
* 평문 조작이 가능하고 재전송 공격에 취약 | *평문 조작이 가능하고 재전송 공격에 취약 | ||
* 간단한 구현, 고속 암복호화, 병렬처리 가능 | *간단한 구현, 고속 암복호화, 병렬처리 가능 | ||
===[[CBC 모드]]=== | |||
*각 평문 블록은 이전 블록 암호문와 XOR 연산 후 암호화 | |||
*IV -> 평문 블록1과 XOR -> 암호화 -> 암호문 블록1 -> 평문 블록2와 XOR -> 암호화 -> 암호문 블록2 ... | |||
*Initial Vector 사용, 오류 파급 발생 | |||
*패딩 사용 | |||
*암호화 병렬처리 불가(복호화는 가능) | |||
====활용==== | |||
*보안적으로 가장 강력한 암호화 모드로 평가 | |||
*[[IPSec]], [[커버로스]] 등에서 사용 | |||
===[[CFB 모드]]=== | |||
*이전 암호문을 암호화하여 평문과 XOR(평문에 대한 직접 암호화 없음) | |||
*IV -> 암호화 -> 평문 블록1과 XOR -> 암호문 블록1 -> 암호화 -> 평문 블록2와 XOR -> 암호문 블록2 ... | |||
*Initial Vector 사용, 오류 파급 발생 | |||
*패딩 사용하지 않음(스트림 암호처럼 Bit 단위 암호화) | |||
*암호화는 순차적으로, 복호화는 병렬처리 가능 | |||
*평문과 암호문의 길이가 같음 | |||
===[[OFB 모드]]=== | |||
*이전 암호 알고리즘의 출력을 암호화하여 평문과 XOR(평문에 대한 직접 암호화 없음) | |||
*IV -> 암호화 -> 평문 블록1과 XOR -> 암호문 블록1 -> IV를 한번 더 암호화 -> 평문 블록2와 XOR -> 암호문 블록2 ... | |||
* | *IV를 암호화하여 키 생성 | ||
* IV -> 평문 블록1과 XOR -> | *Initial Vector 사용, 오류 파급 없음 | ||
* Initial Vector 사용, 오류 파급 | *평문과 암호문의 길이가 같음 | ||
* | *암호문을 동일하게 한번 더 암호화하면 복호화됨 | ||
* | |||
==== | ====OFB와 CFB의 비교==== | ||
*암호 알고리즘으로의 입력만이 다름 | |||
*CFB 모드: 1개 앞의 암호문 블록이 암호 알고리즘으로의 입력 | |||
* | *OFB 모드: 암호 알고리즘의 한 단계 앞의 출력이 암호 알고리즘으로의 입력 | ||
* | |||
* | |||
[[파일:CFB모드와 OFB모드 비교.png|400px]] | |||
==== | ===[[CTR 모드]]=== | ||
*1씩 증가해가는 카운터를 암호화해서 키 스트림을 만들어내는 스트림 암호 모드 | |||
*카운터를 암호화한 비트열과 평문 블록을 XOR | |||
* 1씩 증가해가는 카운터를 암호화해서 키 스트림을 만들어내는 스트림 암호 모드 | *오류의 파급 없음 | ||
* 카운터를 암호화한 비트열과 평문 블록을 XOR | *암복호화 병렬처리 가능 | ||
* 오류의 파급 없음 | *IV는 사용하지 않고 카운터 값 사용 | ||
== 비교 == | ==비교== | ||
{| class="wikitable" | |||
!스케줄링 | |||
!IV 필요 | |||
!오류 파급 | |||
!패딩 사용 | |||
(평문 암호문 길이 다름) | |||
!암호화 병렬처리 | |||
!복호화 병렬처리 | |||
!결과 형태 | |||
|- | |||
|ECB | |||
|X | |||
|X | |||
|O | |||
|O | |||
|O | |||
|Block | |||
|- | |||
|CBC | |||
|O | |||
|O | |||
|O | |||
|X | |||
|O | |||
|Block | |||
|- | |||
|CFB | |||
|O | |||
|O | |||
|X | |||
|X | |||
|O | |||
|Stream | |||
|- | |||
|OFB | |||
|O | |||
|X | |||
|X | |||
|X | |||
|X | |||
|Stream | |||
|- | |||
|CTR | |||
|카운터 | |||
|X | |||
|X | |||
|O | |||
|O | |||
|Stream | |||
|} |
Latest revision as of 13:21, 3 September 2021
- Block Cipher Mode; Block Cipher Modes of Operation
- 블록 암호에서 블럭 단위로 암·복호화 되는 과정을 반복적으로 운용하는 절차
종류[edit | edit source]
ECB 모드[edit | edit source]
- 각 블록은 동일한 키를 이용하여 독립적으로 암호화
- 평문 조작이 가능하고 재전송 공격에 취약
- 간단한 구현, 고속 암복호화, 병렬처리 가능
CBC 모드[edit | edit source]
- 각 평문 블록은 이전 블록 암호문와 XOR 연산 후 암호화
- IV -> 평문 블록1과 XOR -> 암호화 -> 암호문 블록1 -> 평문 블록2와 XOR -> 암호화 -> 암호문 블록2 ...
- Initial Vector 사용, 오류 파급 발생
- 패딩 사용
- 암호화 병렬처리 불가(복호화는 가능)
활용[edit | edit source]
CFB 모드[edit | edit source]
- 이전 암호문을 암호화하여 평문과 XOR(평문에 대한 직접 암호화 없음)
- IV -> 암호화 -> 평문 블록1과 XOR -> 암호문 블록1 -> 암호화 -> 평문 블록2와 XOR -> 암호문 블록2 ...
- Initial Vector 사용, 오류 파급 발생
- 패딩 사용하지 않음(스트림 암호처럼 Bit 단위 암호화)
- 암호화는 순차적으로, 복호화는 병렬처리 가능
- 평문과 암호문의 길이가 같음
OFB 모드[edit | edit source]
- 이전 암호 알고리즘의 출력을 암호화하여 평문과 XOR(평문에 대한 직접 암호화 없음)
- IV -> 암호화 -> 평문 블록1과 XOR -> 암호문 블록1 -> IV를 한번 더 암호화 -> 평문 블록2와 XOR -> 암호문 블록2 ...
- IV를 암호화하여 키 생성
- Initial Vector 사용, 오류 파급 없음
- 평문과 암호문의 길이가 같음
- 암호문을 동일하게 한번 더 암호화하면 복호화됨
OFB와 CFB의 비교[edit | edit source]
- 암호 알고리즘으로의 입력만이 다름
- CFB 모드: 1개 앞의 암호문 블록이 암호 알고리즘으로의 입력
- OFB 모드: 암호 알고리즘의 한 단계 앞의 출력이 암호 알고리즘으로의 입력
CTR 모드[edit | edit source]
- 1씩 증가해가는 카운터를 암호화해서 키 스트림을 만들어내는 스트림 암호 모드
- 카운터를 암호화한 비트열과 평문 블록을 XOR
- 오류의 파급 없음
- 암복호화 병렬처리 가능
- IV는 사용하지 않고 카운터 값 사용
비교[edit | edit source]
스케줄링 | IV 필요 | 오류 파급 | 패딩 사용
(평문 암호문 길이 다름) |
암호화 병렬처리 | 복호화 병렬처리 | 결과 형태 |
---|---|---|---|---|---|---|
ECB | X | X | O | O | O | Block |
CBC | O | O | O | X | O | Block |
CFB | O | O | X | X | O | Stream |
OFB | O | X | X | X | X | Stream |
CTR | 카운터 | X | X | O | O | Stream |