본문 바로가기

정보보안

암호 분석 (암호문 단독 공격, 기지 평문 공격, 선택 평문 공격, 선택 암호문 공격)

반응형

 

이전 글에서 암호학에 대한 개념에 대해 간단히 알아봤습니다. 이번 시간에는 암호문이 어떻게 해독되는지를 알아보려 합니다. 암호화 과정에서 평문, 암호키, 암호문 이 3가지가 유출되었을 때 발생할 수 있는 해킹 공격에 대해 알아봅시다. 

 

암호문 단독 공격(COA, Chiphertext Only Attack)

만약 누군가 암호문을 훔쳐갔다고 생각해봅시다. 키가 없기 때문에 이 암호문을 복호화 할수 없을 텐데 암호문만으로 무엇을 하려고 훔쳐갔나라는 의문이 듭니다. 하지만 이 공격자는 어떻게 평문이 암호문으로 바뀌는지에 대한 대한 방법 즉 알고리즘을 알고 있습니다. 암호문만 보고도 어떤 평문이 암호화될 때 이와 동일한 암호문이 되는지 알고 있기 때문에 평문인지 어떤 키로 암호화가 되었는지를 알 수 있습니다. 예를 들어  자물쇠로 잠겨있는 상자가 있습니다. 공격자는 자물쇠만 보고도 안에 내용물이 뭔지 어떤 열쇠로 잠겼는지를 알고 있는 것과 같습니다. 

 

기지 평문 공격(KPA, Known Plaintext Attack) 

평문의 일부내용과 이것의 암호문을 알고 있는 상태에서 이에 대응하는 전체 암호문을 복호화하는 방식의 공격입니다. 예를 들어 서신을 보낼때 시작 말과 마지막 문구는이런 식은 Hi XX, Dear XX, Cheers XX, Best regards XX과 같이 동일한 문구를 쓰게 됩니다. 이 문구과 암호문을 알고 있는 상태에서 암호문 전체를 훔쳤을 때 전체 내용에서 일부 암호문이 포함되어 있다면 모르는 나머지를 역공학, 빈도 분석, 무차별 대입 공겨을 통해 알아낼 수 있습니다. 

 

 

좀 더 쉬운 예를 들어 보겠습니다. 

 

 

나이키 에어맥스 97 우먼스 는 여러 가지 색상이 있는데 코드명이 921733-xxx으로 색생에 따라 마지막 3자리가 나뉘게 됩니다. 아마 나이키만의 알고리즘에 따라 제품 코드명이 만들어지는 것 같습니다. 나이키 에어맥스 97 우먼스를 평문이라고 하고 921733을 암호문이고 이를 만들어 내는 알고리즘을 암호화 키라고 하겠습니다. 

 

암호화는 E(나이키 에어맥스 97 우먼스) = 921733이며

복호화는  C(921733) = 나이키 에어맥스 97 우먼스입니다. 

 

이 공격자는 921733 가  나이키 에어맥스 97 우먼스 인것 까지 알고 있지만 -xxx 이 먼지를 모릅니다. 이 공격자는 921733-006라는 암호문을 훔쳐냈습니다. 이제 무차별적으로 E(나이키 에어맥스 97 트리플 화이트) = 921733-100와 같이 존재하는 모든 색의 조합을 대입합니다. 마침내  E(나이키 에어맥스 97 우먼스 블랙/블랙/화이트)을 넣었더니 921733-006 이 나오는 것을 통해 921733-006라는 암호문이 나이키 에어맥스 97 우먼스 블랙/블랙/화이트라는 평문이라는 사실을 알아냈습니다. 

 

 

선택 평문 공격 (CPA, Chosen Plaintext Attack)

문자 그대로 평문을 선택하면 이에 대응되는 암호문을 알아낼 수 있는 공격입니다. 공격자는 암호문을 직접적으로 복호화할 순 없지만 어떻게 암호화가 되는지 알고 암호화 때 쓰이는 공개키를 가지고 있습니다. 암호문을 훔쳐냈습니다. 그리고 아무 평문을 선택해 암호화합니다. 이 암호문을 훔친 암호문과 비교해 보니 똑같은 암호문이었습니다. 이렇게 암호문의 평문을 알아내게 됩니다. 

 

예를 들어 나이키 에어맥스 95 에센셜 모델의 코드명은 at9865입니다.  아마도 나이키만의 제품 코드명을 만드는 알고리즘에 따라 만들어졌을 것입니다. 공격자는 at9865는 알지만 이것이 나이키 에어맥스 95 에센셜이라는 것은 모릅니다. 그리고 나이키가 코드명을 만드는 공개키를 가지고 있습니다. 하지만 암호문이 복호화 할수는 없는 상태입니다.  E(x) = y는 알 수 있지만 C(y) = x를 알아낼 수 없습니다. 공격자는 E(x)에 나이키 에어맥스 97을 넣어봅니다.  

 

E(나이키 에어맥스 97) = 921826 이 나왔네요. 음 이건 아니구나 그렇다면 에어맥스 97 만큼 핫한 95를 넣어보자.

E(나이키 에어맥스 95 에센셜) = at9865 가 나왔습니다. 음 내가 가진 코드명이랑 같구나. 이 at9865를 복호화하면 나이키 에어맥스 95 에센셜이 나오겠구나를 알아냈습니다. 

 

 

 

선택 암호문 공격(CCA, Chosen Ciphertext Attack)

임의로 선택된 암호문과 일치하는 평문으로부터 암호키를  알아내기 위해 시도하는 공격입니다. 

 

역시나 나이키를 통해 예를 들어 보겠습니다. 

 

이 공격자는 E(나이키 에어맥스 95 에센셜) = at9865를 알고 있으며 C(at9865) = 나이키 에어맥스 95 에센셜 인 것도 알고 있습니다. 

그리고 E(나이키 에어맥스 97 우먼스) = 921733 인것도 C(921733) = 나이키 에어맥스 97 우먼스인 것도 압니다. 

 

이 평문/암호문 쌍을 통해 나이키가 어떤 알고리즘으로 코드명을 만들어 내는지를 알아내는 공격 방법입니다.

아마 이 공격자는 나이키가 어떤 새로운 신상 신발이 출시해도 어떻게 코드명이 만들어지는지를 알기 때문에 코드명을 알아낼 수 있겠습니다. 

 

출처는 해시넷의 내용을 참조했습니다.

반응형