본문 바로가기

Crypto

암호의 해독 [Crypto]

해독이란 암호화, 복호화 키를 모르는 상태로 평문 또는 키에 대한 정보를 찾는 것입니다. 세상에는 여러 암호가 존재하고 이러한 암호들은 알고리즘을 공개하여 여러 학자들 에게 검증을 받고 알려질수록 더욱 안전한 암호로 검증될 수 있습니다. 개인이 만든 암호 알고리즘을 공개하지 않은 상태로 '이건 정말 안전하다.' 라고 말하기는 불가능 합니다. 특정 데이터를 암호화를 한다는 것 자체가 제 3자에게 알려지지 않고 특정 사용자들에게만 데이터를 볼 수 있게 한다는 뜻입니다. 하지만 해킹에 대한 공격자는 존재하고 공격자들은 어떤 방법을 사용하더라도 본인이 원하는 정보를 얻으려고 할 것입니다. 여러 학자들이 검증하지 않은 암호에 경우 암호화를 만든 개발자가 절대적으로 안전하다고 생각해도 취약점, 새로운 접근 방법이 발견될 수 있기 때문에 안전한 암호라고 할 수 없습니다.

- 암호시스템 자체에 대한 정보는 공격자도 알고 있다고 가정해야 합니다. 또한 Kerckhoffs의 원칙(가정)은 이렇게 말합니다. "암호시스템은 키를 제외한 모든 것이 공개되어도 안전해야 한다." 이말의 뜻은 우리는 암호화/복호화를 하여 상대방에게 전송을 합니다. 직접 걸어가서 주는것이 아닌 네트워크를 이용하여 전송하게 됩니다. 전송하려는 데이터가 네트워크로 보내지는 순간 무방비 상태가 됩니다. 공격자가 마음만 먹으면 볼 수 있는 상태가 됩니다. 즉 암호화에 사용했던 키는 우리의 컴퓨터로 암호화하여 암호화된 정보를 네트워크로 보내기 때문에 공격자는 키는 모르지만 암호화된 데이터는 볼 수 있게 됩니다. 이러한 상황에서 공격자가 해당 암호문만을 보고 평문을 알 수 있는 상황이 생기면 해당 암호는 안전하지 않은 암호입니다.

- 이러한 암호해독에 대한 종류는 크게 4가지가 있습니다. COA, KPA, CPA, CCA

 

COA(Ciphertext-Only Attack)

- 정의 : 공격자는 해독하려는 암호문만 가지고 있다. (Known-Ciphertext Attack)

- 공격자 입장에서는 가장 힘든 조건입니다. 아무런 정보 없이 오직 암호문만을 보고 원하는 값을 찾아내야 하기 때문입니다. 이러한 상황에서는 통계적 특성, 상황을 고려한 공격을 해야할 것입니다.

 

KPA(Known-Plaintext Attack)

- 정의 : 공격자는 해독하려는 암호문 이외에 (평문, 암호문)쌍을 알고있다.

- COA 보다는 완화된 조건입니다. 해당 평문과 암호문 쌍을 보고 어떤식으로 암호화가 되었는지 생각할 수 있기 때문에 암호화 방식에 더욱 쉽게 접근할 수 있을 것입니다.

 

CPA(Chosen-Plaintext Attack)

- 정의 : 공격자가 암호기에 접근할 수 있고, 원하는 평문에 대한 암호문을 얻을 수 있다.

- KPA보다 훨씬 완화된 조건입니다. 'Lunch Time Attack'이 있는데 해당 공격은 암호기가 켜져있는 동안 해당 암호기를 이용하여 마음대로 암호화를 하는 것 입니다. 이름에서 알 수 있듯이 점심시간에 남들은 밥먹으러 갔을 때 몰래 사용하는 것 입니다.

- Batch Chosen-Plaintext Attack : CPA의 종류 중 하나입니다. 공격자는 암호화할 평문을 한꺼번에 선택한 후 대응되는 암호문을 확인하는 것 입니다. 암호화는 바로 가능하지만 해독하려는 암호문은 나중에 볼 수 있습니다.

- Adaptive Chosen-Plaintext Attack : 공격자는 이전의 암호화 결과를 보고 다음 평문을 선택할 수 있습니다.

 

CCA(Chosen-Ciphertext Attack)

- 정의 : 공격자가 복호기에 접근할 수 있어, 원하는 암호문에 대한 평문을 얻을 수 있다.

- 가장 강력한 조건입니다. 하지만 복호화 해야하는 암호문을 바로 복호기에 넣을 수 없고 다른 암호문을 복호기에 넣어 평문을 확인 하는 것이 가능합니다.

- Batch(Non-adaptive) Chosen-Ciphertext Attack : 공격자는 복호화할 암호문을 한번에 선택한 후 대응되는 평문을 확인한다.

- CCA1(Adaptive Chosen-Ciphertext Attack) : 공격자는 이전의 복호화 결과를 보고 다음 암호문을 선택할 수 있다.

- CCA2(Full Adpative Chosen-Ciphertext Attack) : 공격자는 해독할 암호문을 본 후에 복호화를 할 수 있다.

 

반응형

'Crypto' 카테고리의 다른 글

DES의 특성 [Crypto]  (0) 2020.03.01
DES 암호 [Crypto]  (0) 2020.02.28
Visual Cryptography [Crypto]  (0) 2020.02.23
스트림암호와 블록암호 [Crypto]  (0) 2020.02.20
Feistel 암호 시스템 [Crypto]  (0) 2020.02.17