@ Block Cipher
=> 블록단위로 끊어서 암호화
만약 n이 128비트라면 1byte를 암호화할 수 있다.
안전한 스킴을 만들려면? (디퓨전, 컨퓨전)
n-bit 암호문으로 어떠한 평문 정보도 이끌어내서는 안된다. 관계가 없는 것처럼 보여야 한다.
조건 1) 어떠한 정보도 이끌어낼 수 없다
조건2) 키와 암호문의 관계를 숨겨야 한다.
@ Nation of Security
- Diffusion : The idea of diffusion is to hide the relationship between the ciphertext and the plaintext
- Confusion : The ieda of confusion is to hide the relationship between the ciphertext and the key
Shannon 은 혼합 암호문(product cipher)에 개념에 대해 소개했다. 혼합 암호문은 substitution과 transposition이 결합된 복합 암호문이다. |
@ ECB (Electronic Code Block) Mode
- M1과 M2를 동시에 진행해도 아무 영향없다.
- 즉 병렬처리가 가능하다
- 암호화/복호화 둘 다 가능
- Parallel encryption and decryption
- Error Propagation : One bit error affects only one block
- 블록의 1bit가 바뀌면 한 블록의 전체가 영향을 받는다.
- 가능한 영향을 덜 주는 것이 좋다. 유추가 가능하므로
- 그렇다면 이 모드의 단점은 무엇일까?
- 암호 block <--> 암호 block 으로 교체할 경우 문제가 발생할 수 있다.
- 이는 C1과 C2과 독립적으로 암호화되었기 때문에 발생한다.
- 따라서 어느 정도의 연관성이 필요하다.
@ CBC (Cipher Block Chaining) Mode
-IV : Initialization Vector
- 비밀키와 마찬가지로 송신자와 수신자간에 미리 약속되어 있는 값 공개되어도 상관없다.
- 보통 다른 랜덤 비트열을 이용한다.
- Encryption
- 글씨를 못 써서 미안합니다.
- Decryption
- 만약 IV를 반전시키는 공격을 한다면 평문 블록의 비트를 만전시킬 수 있다.
- 암호문 블록 비트가 누락되면 그 이후의 블록 전체에 영향을 미친다.
- 이 암호방법은 C1을 이용하여 C2를 만드므로 서로 관계가 있다.
- ECB는 암호문 블록이 같을 경우 그 두개의 블록의 plaintext는 같다.
- 하지만 CBC에서는 그러한 결점이 사라진다.
- CBC에는 도중의 평문 블록을 뽑아내서 암호화 할 수 없다.
- 블록 1개가 잘못되면 그 볼록의 평문과 다음 블록의 비트 1개가 영향을 받는다.
- Error propagation :
- One bit error affects one boock and one bit of the next block
- M3에는 영향을 주지 않는다.
- 인크립션은 병렬처리가 불가능하나 디크립션은 가능하다.
@ OFB (Output feed back) Mode
- key stream만 가지고 있으면 언제든지 암호화가 가능하다.
- It is possible to pre-compute key stream and can be used as a stream cipher
- Error propagation
- One bit error affect only one bit
- 암호화된 사이퍼를 가지고 단지 XOR 연산을 하므로 1bit만 바뀐다.
@ Counter Mode
이러한 모드의 장단점을 합친 모드이다.
- Encryption
- Decryption
- ECB 와 OFB 모드의 연관성
- 키스트림 병렬처리 (OFB와의 차이점)
- Error propagation : OFB와 동일
@ 정리
모드 |
이름 |
장점 |
단점 |
ECB |
electronic code back |
간단 고속 병렬처리 가능 (암호화/복호화) |
평문 속의 반복이 암호문에 반영 암호문 블록의 삭제나 교체에 의해 평문 내 조작이 가능 1bit error -> affect 1block |
CBC |
CipherBlock Chaning |
평문의 반복은 암호문에 반영안됨 병렬 처리 가능(복호화만) 임의의 암호문 블록 복호화 가능 |
1bit error -> affect 1block and next block's 1bit 암호화 시 병렬처리를 할 수 없음 |
OFB |
Output Feedback |
패딩이 필요없음 암호화 복호하 사전 준비 가능 암호화와 복호화가 같은 구조 1bit error -> affect 1bit |
병렬처리를 할 수 없다. 공격자가 암호문 블록을 bit 반전 시키면 대응하는 평문 블록 bit가 반전된다. |
CTR |
Counter |
패딩이 필요없다. 암호화 복호화의 사전 준비가 가능 암호화 복호화가 같은 구조 1bit error ->affect 1bit 병철처리가 가능(암호화/복호화) |
공격자가 암호문 bit 반전시키면 대응하는 평문 블록 bit가 반전된다. |
'보안 > 정보보호이론' 카테고리의 다른 글
기출 문제 풀이 (0) | 2015.03.02 |
---|---|
Hash Functions (1) | 2015.03.02 |
암호화를 위한 보안 모델 (0) | 2015.03.02 |
Lottery를 이용한 단일 대치 암호문 해독 (0) | 2015.03.02 |
고대 암호학 (1) | 2015.03.02 |