[운영모드]
- ECB(블록별독립/가장단순)
- CBC(보안성우수, 암호문이 블록의2배, 암호는순차적, 복호화는병렬, 각블록은 서로 chaining)
- CFB(평문길이=암호문길이, 암호는순차적,복호화는병렬)
- OFB(평문길이=암호문길이, 암/복호키가동일)
- CTR(카운터를 키로사용, 스트림암호화일종, 구현간단)
[분류] 암호화가 각 블록에 독립적 작용(ECB, CTR), 이전블록의 암호화 값이 다음 블록에 영향(CBC, CFB, OFB)
[블록암호화 모드의 유형별 특징]
ECB | CBC | CFB | OFB | CTR | |
블록 패턴 유지 | O | X | X | X | X |
전처리 가능성 | X | X | X | O | O |
병렬 처리 | O | 복호화시 가능 | 복호화시 가능 | X | O |
오류 확산 | X | 이전 블록에서 영향 | 이전 블록에서 영향 | X | X |
암호화 단위 | n | n | r <= n | r <= n | r <= n |
[상세 설명]
1) ECB (Electronic Code Block) Mode : 가장 단순한 모드로 블록단위로 순차적으로 암호화 하는 구조. 한개의 블록만 해독되면 나머지 블록도 해독이 되는 단점(Brute‐Force Arttack, Dictionary Attack). 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 알기 위해서 Padding 필요. 각 블록이 독립적으로 동작하므로 한 블록에서 에러가 난다고 해도 다른 블록에 영향을 주지 않음. 해당 블록까지 에러 전파.
2) CBC(Cipher Block Chaining) Mode : 블록 암호화 운영 모드 중 보안성이 제일 높은 암호화 방법으로 가장 많이 사용. 평문의 각 블록은 XOR연산을 통해 이전 암호문과 연산되고 첫번째 암호문에 대해서는 IV(Initial Vector)가 암호문 대신 사용. 이 때, IV는 제 2의 키가 될수 있다. 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 얻기 위해서 Padding을 해야만 한다. 암호화가 병렬처리가 아닌 순차적으로 수행되어야 한다. 깨진 암호문의 해당블록과 다음블록의 평문까지 영향을 미치게 됨.
- CBC 개선모델 PCBC : XOR 연산 한번더 수행
3) CFB(Cipher FeedBack) Mode : 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다(패딩이 필요 없다). 최초의 키생성 버퍼로 IV가 사용되며, 이때 IV는 제2의 키가 될수 있다. 스트림의 기본단위를 Bit단위로 설정할 수 있으며, Bit단위에 따라 CFB8~CFB128로 쓰인다. 암호화, 복호화 모두 암호화로만 처리할 수 있다. CBC모드와 마찬가지로 암호화는 순차적이고, 복호화는 병렬적으로 처리할 수 있다. CBC모드와 마찬가지로 한 암호문블럭의 에러는 해당평문블록과 다음 평문블록, 이렇게 총 2개의 블록에 전파된다.
4) OFB(Output FeedBack) Mode : 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다.(패딩이 필요없다). 암호화 함수는 키 생성에만 사용되며, 암호화 방법과 복호화 방법이 동일해 암호문을 한번 더 암호화하면 평문이 나온다. (복호화시에 암호화). 최초의 키생성 버퍼로 IV가 사용되며, 이 때 IV는 제2의 키가 될수 있다. 스트림의 기본 단위를 Bit단위로 설정할 수 있으며, Bit단위에 따라 OFB8~OFB128로 쓰인다. 대응되는 한 블록에만 영향을 미치므로, 영상이나 음성과 같은 digitized analog신호에 많이 사용된다.
5) CTR (CounTeR) Mode : 블록을 암호화할 때마다 1씩 증가해 가는 카운터를 암호화 해서 키스트림을 만든다. 즉 카운터를 암호화한 비트열과 평문블록과의 XOR를 취한 결과가 암호문 블록이 된다. CTR모드는 OFB와 같은 스트림 암호의 일종이다. CTR모드의 암복호화는 완전히 같은 구조가 되므로 구현이 간단하다.(OFB와 같은 스트림 암호의 특징). CTR모드에서는 블록의 순서를 임의로 암/복호화 할 수있다.(비표와 블록번호로부터 카운터를 구할 수 있기때문에) 블록을 임의의 순서로 처리 할 수 있다는 것은 처리를 병행 할 수 있다는 것을 의미한다.(병렬처리 가능). 각 블록이 병렬처리 되므로 같은 블록 내에서만 이루어짐.
[ECB의 암호화 및 복호화 과정]
[CBC의 암호화 및 복호화 과정]
[CFB의 암호화 및 복호화 과정]
[OFB의 암호화 및 복호화 과정]
[CTR의 암호화 및 복호화 과정]
'ITPE > 보안' 카테고리의 다른 글
암호 공격기법 (0) | 2021.03.28 |
---|---|
Diffie-Hellman (0) | 2021.03.28 |
SPN(Substitution-Permutation Network) (0) | 2021.03.28 |
Feistel (0) | 2021.03.28 |
프라이버시 보존형 데이터 마이닝(PPDM) (0) | 2021.03.28 |