블록 암호의 운용 모드

Programming/Security 2009. 10. 23. 20:34
1. 전자코드북( Electronic Code Book )
: 일정한 block을 나눠서 각각 암/복호화하여 합치기
- 평문의 동일한 64비트 블록이 두번 이상 나올 경우 항상 동일한 암호문이 생성 된다.
- 따라서, 암호키와 같이 짧은 자료에 적합하다.( DES key 를 보안상 안전하게 전송하려 할 경우 _)



2. 암호 블록 연결( Cipher Block Chaining ) 모드
: 평문 블록이 반복돼도 상이한 암호 블록을 생성할 수 있는 기법. 첫 결과가 이후 연산에 영향을 미친다.
IV( 초기화 벡터 ) 는 송수신 양자 모두가 알고 있어야 한다. 보안을 강화하기 위해 IV는 키와 같이 보호돼야 한다. 그러기 위해 IV 송신에 ECB 암호화가 이용될 수 있다.
P의 크기는 자유롭고, 각 블록에서 64비트씩 잘라서 암/복호화를 하고, 마지막 블럭이 64비트가 되지 않으면, 패딩 값을 넣어준다.


3. 암호 피드백( Cipher FeedBack ) 모드
: 암호 피드백이나 출력 피드백 모드를 사용하여 스트림 암호 방식으로 변환이 가능하다.  실시간 작동이 가능하다. 문자 스트림의 전송 중 각 문자를 문자지향 스트림 암호화를 이용하여 암호화 후 즉시 전송할 수 있다.
스트림 암호 방식의 좋은 성질은 암호문이 평문과 같은 길이 라는 것이다.
IV(초기 벡터) : 64bits 이동 레지스터
s bits : 전송 단위 ( 임의로 결정; 통상 8비트 )
Shiftregister = 64 - s bits + s bits
Pn : PlainText Block
XOR의 결과가 다음 연산의 Input
암호화 시에 C1 전송시에 문제가 생기면 이후에 모든 것이 제대로 되지 않는다.
복호화 시에 C1 전송시에 문제가 생기면 P1, P2에 문제가 생긴다.


1. 출력의 최상위 s비트( MSB )를 평 문의 첫 단위 P1과 XOR 연산하여 암호문의 첫 단위 C1이 생성되어 전송된다.
2. 이동 레지스터의 내용은 s 비트 좌측 이동되며 이때 C1이 이동 레지스터의 최하위 우측 s비트(LSB)에 채워진다.

4. 출력 피드백( Output FeedBack ) 모드
CFB와 유사하지만, XOR 연산 전의 값이 다음 연산의 Input 이 된다.
장점 : C1 전송시 에러가 나도 복원된 P1 의 값에만 영향을 미치며 다른 연산에 영향을 끼치지 않는다.( 전송중의 비트 오류가 전파 되지 않는다 )
단점 : CFB보다 메시지 스트림 변조 공격에 약하다. 암호문의 보수비트를 취하는 것은 곧 복원된 평문에 보수비트를 취하는 것이기 때문에 전송중의 비트 변경이 복원된 평문에 대하여 행해질 수 있다. 이것은 적으로 하여금 자료부는 물론 오류 검출부도 불법수정하여 오류검출 코드에 의해 발견되지 않도록 암호문을 변조 할 수 있게 한다.


5.  계수기 ( CounTeR ) 모드
: 평문 블록사이즈와 같은 계수가 사용된다. 계수기 값은 매 블록 마다 값이 틀려야 한다. 블록간의 연관성이 전혀 없다.
동시에 병렬처리가 가능해서 속도가 가장 빠르다.
Counter 와 K, Pn 는 기존에 알고 있는 값이다.

'Programming > Security' 카테고리의 다른 글

Diffie-Hellman Key Exchange  (0) 2009.12.10
RSA  (0) 2009.12.10
키 분배 시나리오  (0) 2009.10.23
RC4 알고리즘  (0) 2009.10.23
암호 방식( 고전적 기법 )  (0) 2009.10.23

설정

트랙백

댓글