본문 바로가기

Crypto

비밀키 암호시스템 MOO(Modes Of Operation)

비밀키 암호시스템은 운영 모드가 있습니다. 암호화 시스템을 어떻게 운영을 할 것인가에 대한 옵션입니다. 이를 MOO(Modes Of Operation) 이라고 합니다. 대칭형 블록암호 시스템을 운영하는 방법입니다. 비밀키 암호시스템은 평문을 암호화할 시 대응되는 암호문의 길이가 동일하게 됩니다. 이러한 상황을 결정적 암호화라고 하는데 민감한 정보를 숨기는 입장에서 결정적 암호화는 좋지 않습니다. 예를 들어 그림을 암호화 할 때 결정적 암호화 방식은 아래와 같은 상황이 발생하게 됩니다.

결정적 암호화

그러나 모드를 사용하여 암호화를 진행시 이러한 결정적 암호화를 없애주게 됩니다. 즉 확률적 암호화로 바꾸기 위해 MOO를 사용하는 것입니다.

확률적 암호화

모드의 종류는 여러가지가 있습니다. 그 중 기본모드인 EBC(Electronic CodeBook)은 기본모드인 만큼 아무 모드도 지원하지 않는 모드 입니다. 즉 해당 모드를 사용하게 되면 결정적 암호화의 상태가 됩니다. 이러한 MOO의 종류는 여러가지가 있습니다. CBC(Cipher Block Chaining), OFB(Output FeedBack), CFB(Cipher FeedBack), IAPM(Integrity Aware Parallelizable Mode), CCM(Counter with CBC-MAC), EAX(CCM을 대체하기 위해 제안), GCM(Galois/Counter Mode), OCB(Offset Codebook Mode), PCBC(Propagating Cipher-Block Chaining), CTR(CounTeR), 등 매우많은 종류가 있습니다. 그 중 유명한 몇가지에 대해 알아보겠습니다.


- ECB(Electronic CodeBook)

기본 운영 방법으로 입력값이 같으면 출력값도 동일한 형태입니다.

ECB

- 해당 모드의 특징은 평문1과 평문3이 같으면 암호문1과 암호문3도 같은 암호문이 출력이 됩니다. 이는 공격자 입장에서 매우 좋은 상황이며 해독에 필요한 시간이 크게 단축되게 됩니다. 이는 결정적 암호화로 기밀성은 보장되지만 무결성이 깨져버리는 상황이 발생할 수 있습니다.

- 장점 : (병렬처리)암·복호화 속도가 빠르다.

- 단점 : 같은 평문에 대한 암호문은 항상 동일하다. 만약 평문에 구조적인 패턴이 존재한다면 문제는 심각해진다. 해독자가 평문 - 암호문 쌍을 알고 있다면 해독이 매우 쉽게 된다. 무결성을 보장하지 못한다. 무결성을 보장하지 못한다는 것은 암호문의 일부가 누락되거나 바뀌어도 복호화할 수 있습니다. 이렇게되면 해당 암호문이 실제 원하는 상대방에게서 변함없이 온 것인지 확신하기가 힘들게 됩니다.

 

- CBC(Cipher Block Chaining)

1976년, IBM에 의해 개발되었습니다. 각 평문 블록은 암호화되기 전 이전 블록의 암호문과 XOR연산을 합니다. 즉 각 암호문은 이전 암호문에 의존적 입니다. 이전 암호문 블록이 없는 첫번째 블록은 IV(Initializtion Vector)와 XOR 연산을 합니다. 해당 모드의 복호화는 XOR연산을 했던 값으로 다시 XOR연산을 하면 이전의 결과값이 다시 나오게됩니다. 첫번째 블록을 XOR연산하기 위해 사용되는 IV값은 키처럼 은밀하게 알려줄 필요는 없습니다.

CBC

- CBC의 특징인 블록간의 연관성이 있기 때문에 이전 암호문이 없어지거나 변하게 되면 복호화가 진행이 되지 않고 오류가 발생하거나 복호화 하여도 알 수 없는 문자열이 출력되게 됩니다. CBC는 평문 특정 블록에 오류가 발생한 경우, 이후 모든 암호문에 영향을 미치게 되고 복호화의 경우도 [오류가 발생한 블록] + [다음 블록]에만 영향을 미치게 됩니다. 이러한 특징으로 CBC코드는 메시지 인증 코드(MAC)에 사용되기도 합니다. MAC(Message Authentication Code)은 평문의 1비트가 변경되면 이후의 모든 암호문에 영향을 미칩니다. MAC은 프로그램 전체의 맨 마지막 블록만 알려주는 것으로 만약에 프로그램에 이상이 있다고 판단되거나 웹페이지에 이상이 생겨서 프로그램 위변조가 있을 때 오류여부를 판단하게 해줍니다.

- 장점 : 같은 키와 같은 평문 블록이라도 다른 암호문을 생성한다. 전체 암호문은 무결성을 보장한다.

- 단점 : 암호화는 반드시 순차적으로 진행해야 한다. (복호화는 병렬처리 가능)

 

- CTR(CounTeR)

1979년 Diffie와 Hellman이 제안했습니다. NIST 표준 운용 모드입니다.

CTR 암호화
CTR 복호화

- IV(난수)와 카운터를 사용합니다. 평문처럼 암호화하고 해당 값을 평문과 XOR 연산을 합니다. 공격자가 중간에 공격을 시도하게 되면 카운터값으로 인해 값이 누락되거나 변조되면 바로 알 수 있습니다. 평문과 키가 같아도 암호문이 다릅니다. IV값과 카운터값을 미리 암호화를 하여 사전형으로 준비할 수 있고 나중에 빠르게 XOR 연산만 쭉 하면 됩니다. 오류, 위변조 발생 시 해당 암호문 비트에만 영향을 미칩니다.

- 장점

· H/W, S/W Efficiency : 병렬처리 가능 (가장 큰 장점)

· Preprocessing : 평문(암호문) 없이 암(복)호화에 필요한 기능을 전처리(사전처리)

· Random Access : 암호문 중간부터 복호화할 수 있다.

· Securtiy : 안전성 보장

· Simplicity : 암호화(복호화) 알고리즘 만으로 구현

· Messages of arbitrary bit-length : 평문의 길이만큼의 키를 만들어 내어 암호화한다. 키를 무한대에 가깝게 만들어야 안전하다. (스트림 암호 방식의 장점)

- 단점 : ?


- 오류전파, IV 의미

오류전파 : 암호문에 오류가 발생한 경우 복호화된 평문 블록 전체에 오류가 발생하는 것이 바람직하다. 공격자에 의한 메세지 변경일 수 있다. 해당 비트만 오류가 발생하는 것이 바람직하다. 해당 '블록'을 재전송하지 않아도 됨

IV(Initializtion Vector) : 암/복호화에서 무작위성을 부여한다. IV는 키와 다르게 안전하게 보관할 필요는 없다. 단, 같은 키를 사용할 경우 같은 IV를 사용하면 안된다.

반응형

'Crypto' 카테고리의 다른 글

Diffie-Hellman Key Exchange(디피헬만 키교환) [Crypto]  (0) 2020.03.27
공개키 암호시스템 [Crypto]  (0) 2020.03.14
3(Triple)-DES [Crypto]  (0) 2020.03.05
DES의 특성 [Crypto]  (0) 2020.03.01
DES 암호 [Crypto]  (0) 2020.02.28