brunch

You can make anything
by writing

C.S.Lewis

by 즐KIN창 심재석 Nov 24. 2018

이메일 암호화 기법 #06

제2장 해킹과 암호화에 대한 이해

암호화는 어떻게 하는 것인가?


암호화란 정보를 보낼 때나 받을 때, 그 정보의 비밀성을 보장하기 위하여 해독할 수 없도록 다른 형태의 정보로 변환하는 것으로, 키(key)에 의해서 암호화가 되거나 복호화가 되며, 사용된 키 외에는 해독 할 수 없도록 하여, 정보의 안전성을 확보하는 과정이다.


옛날에는 원래 메시지의 특정 문자를 어떤 규칙에 따라 다른 문자로 바꾸거나 문자들의 위치를 서로 바꾸는 방식으로 암호를 만들었다. 암호가 처음 사용된 시기는 기원전 5세기 무렵으로 알려졌는데, 기원전 1세기경에는 알파벳을 일정하게 건너뛰어 원래 메시지의 문자를 바꾸는 암호가 있었다.


기원전 100년경 로마에서 활약한 줄리어스 시저(Julius Caesar)가 수하 장군들에게 비밀리에 명령을 내리기 위해 이러한 암호를 사용했었다. 시저 암호(caeser cipher)는 암호학에서 다루는 간단한 치환암호의 일종이다. 시저 암호는 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 방식이다. 예를 들어 3글자씩 밀어내는 시저 암호로 'TWO PM'을 암호화하면 'WZR SP' 가 된다. 'TWO PM'의 각 문자를 알파벳 순서로 볼 때  3자리 뒤의 알파벳으로 바꿔서 T는 'W', W는 'Z', O는 'R'로 바꾼 것이다.

한국어를 예로 들자면 '가나다라마'를 Key값 3만큼 치환하면 '라마바사아' 이렇게 3칸 치환되는 암호방식이다. 그런데 이러한 암호방식은 아주 간단한 방법으로 해독할 수 있다. 시저 암호의 가장 큰 취약점은 전수 조사공격(Brute force attack) 즉 암호문에 모든 경우의 수를 대입하여 공격하는 기법으로도 쉽게 암호가 해독돼버린다.

암호화는 평문을 무엇인가 다른 것으로 대체하는 것이다. 이때 1:1 로 바꾸는 것을 흔히 인코딩이라 하며, 보안의 강도 순으로 나열하면, 평문 < Encoding < OPE < 암호화 <난수화 의 순서로 점점 더 보안의 강도가 강력해진다. 여기서 OPE(Order Preserving Encryption)는 순서유지알고리즘을 이용한 암호화로 보안강도가 낮아서 흔히 사용되지 않는 방법이다.


가장 기본적인 암호화 방식은 전치법(Transposition)으로 단순히 메시지 안에 들어 있는 문자의 위치를 바꾸는 방법이 있다. 또 대체법(Suibstitution)이라 하여 메시지의 글자를 완전히 다른 글자로 대체하여 암호문을 작성하는 방법이 있다. 대체법에는 시저 암호와 같은 단일 치환 암호 즉 알파벳 한 글자를 다른 하나의 글자로 대체하는 방식과 다중 치환 암호 즉 알파벳 한 글자가 암호화키와 맵핑에 따라 다수의 다른 글자로 대체되어 암호화 하는 방식이 있다.


현대의 암,복호화 기술이 발달하면서 점점 더 복잡하고 강력한 형태의 암호화 방식이 등장하였다.  대칭 암호화방식에 혼돈과 확산이라는 기능을 대폭 강화한 암호알고리즘으로 DES, 트리플 DES, AES 알고리즘이라는 국제표준 알고리즘이 있으며, 우리나라에서 개발한  SEED, ARIA 알고리즘이 있다. 그런데 AES 알고리즘이 개발되면서 대칭 암호화 방식은 현재까지도 복호화가 거의 불가능하다고 할 정도로 강력한 보안기능을 인정받고 있다. 그러나 이런 대칭 암호화 방식은 암호화키를 상대방에게 전달해야 하는 큰 문제점을 안고 있다. 즉 암호문을 만든 사람이 이것을 복호화 해야 하는 사람에게 암호화키를 전달해야 하는 문제가 있는데 이 과정이 취약하여 항상 문제가 되는 것이다.


이 암호화키 전달 문제를 해결한 것이 바로 1975년 위트필드 디피와 마틴 헬만이란 사람이다. 이들은 비대칭 암호화 방식을 고안했다. 대칭키에서는 암호화할 때와 복호화할 때의 비밀키를 같은 것을 사용하지만, 비대칭 암호화 방식은 암호화할 때와 복호화할 때의 비밀키를 서로 다르게 하여 공개키(Public Key)와 개인키(Private Key)로 사용케 한 것이다. 이 두 개의 키를 합하여 비대칭키라고 하는데 공개키와 개인키는 발신자와 수신자가 각각 한 쌍을 소유하는 것이다. 비대칭 방식의 대표적인 암호화 알고리즘에는 RSA 알고리즘이 있다.


<비대칭 암호화 방식>


최근에는 모든 암호화 제품에 국제 표준 암호화알고리즘이나 우리나라에서 제정한 표준 암호화알고리즘을 사용하도록 권장하고 있다. 이런 국제 표준 암호화알고리즘을 사용하여 암호화를 할 경우에는 현실적으로 해독이 불가한 것으로 인식되고 있는 것이다. 좀 더 엄밀하게 이야기하자면 미국 암호화 표준이나 다른 몇몇 국가의 암호화 알고리즘은 해당 국가 정보기관이 정부 차원에서는 해독할 수 있는 키가 있다는 소문도 있다. 물론 해커나 해커집단이 슈퍼컴퓨터를 동원하여 풀자고 마음을 먹는다면 전혀 불가능한 것이 아닐 것이라는 말도 있다. 정확한 사실은 잘 알 수 없지만 우리가 사용하는 독일의 암호프로그램인 Gpg4win은 독일의 기술로 세계에서 가장 강력한 암호알고리즘이며 독일은 정부에서 조차 그런 해독키를 보유하지 못하도록 돼 있다고 한다.

암호를 사용하는 목적으로는 기본적으로 통신하는 당사자 이외의 다른 사람에게 메시지를 알려주지 않기 위한 것이지만 그밖에 다음과 같은 목적으로 암호를 사용한다.


기밀성(Confidentiality) : 암호를 사용하는 1 차적인 목적이다. 허가된 사람 이외에는 그 내용을 알아볼 수 없도록 한다. 

무결성(Integrity) : 외부의 요인으로 인해 데이터가 변조(변경, 삽입, 삭제 등) 되었는지를 알 수 있도록 한다. 

인증(Authentication) : 통신하고 있는 상대방이 실제로 맞는지를 확인하고, 서로에게 전송한 데이터가 위조되지 않았음을 확인할 수 있도록 한다. 

부인방지(Non-repudation) : 이전의 통신내용을 보낸 적이 없다고 속일 수 없도록 한다. 즉, 데이터를 받은 사람은 나중이라도 보낸 사람이 실제로 데이터를 보냈다는 것을 증명할 수 있도록 한다.


최근 개인정보 해킹 유출사고가 급증하고 있다. 이것은 개인정보보호법에서 의무화한 개인정보를 암호화하지 않고 관리하는 데서 발생하는 정보 유출사고이다. 그만큼 이제 암호화는 가장 큰 보안 이슈가 되고 있는 것이다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari