Subject : 암호 알고리즘과 보안 정책

Solution Description:
=====================

 갑돌이가 을순이에게 연애편지를 보낸다고 하자. 갑돌이는 자기가 보낸 편지를
 혹시 을순이를 좋아하는 병팔이가 보지 않을까(프라이버시 침해), 또는
 편지내용을 병팔이가 바꾸지 않았을까(내용의 무결성(integrity)) 인증)하는
 걱정을 할 수 있다. 갑돌이는 또 병팔이가 보낸 편지를 을순이가 자기의 편지로
 알고 받게 되는 것이 아닐지(발신자 인증) 의심할 수도 있다. 을순이 역시
 마찬가지로 프라이버시가 보장될지, 내용인증이 보장될지, 발신자를 인증할 수
 있을지 걱정할 수 있다. 이러한 걱정을 해결해 주는 것이 바로 암호학이다.

 암호는 인류의 역사와 더불어 특히 정치, 외교, 군사목적으로 국가안보
 차원에서 보호를 받으면서 발전해왔다. 금세기 들어 통신과 컴퓨터가
 발달하면서 암호 및 그의 해독 역시 무서운 속도로 발달하고 있다. 최근에는
 인터넷 이용의 활성화 등으로 개인이 통신을 사용하는 빈도가 늘어나면서
 개인정보의 누출이 용이해지고 있다. 이제는 암호가 더이상 개인과 무관한 것이
 아닌 상황이다. 더구나 전자화폐를 포함한 전자상거래도 우리 눈앞에 와있어
 암호가 우리 실생활에 큰 영향을 미치게 됐다.

 암호화(encryption, encipher)란 누구나 알 수 있는 정보인 평문(plaintext,
 message)을 허용된 사람(특정인) 이외에는 알아볼 수 없는 형태의 신호인
 암호문(ciphertext, cryptogram)으로 바꾸어 주는 변환과정을 말한다.
 복호화(decryption, decipher)는 허용된 사람이 암호문으로부터 평문을
 끌어내는 역변환 과정이다. 암호해독(cryptanalysis)이라고도 불리는
 공격방법에는 허용되지 않은 사람이 암호문을 도청, 평문을 유추하여
 프라이버시를 침해하려는 수동적 공격과 도청을 통해 절단, 삽입, 대체 등으로
 내용을 들키지 않고 바꾸려고 하거나 발신자를 실제의 발신자가 아닌 것처럼
 속이려는 능동적인 공격이 있다.

 암호화는 특정인 외에 암호해독자가 해독할 수 없도록 방법을 비밀로 해야한다.
 어쩌다 그 방법이 알려지게 되면 새로운 방법으로 암호화를 해야 한다. 또 여러
 명이 같은 암호화방법을 사용하면 같은 암호화방법을 사용하는 사람들끼리는
 서로 비밀이 있을 수 없다. 이러한 불편을 없애기 위해 암호화방법은 대부분
 알고리듬의 형태로 고정하고 필요에 따라 극히 일부분을 키(key)로 정해 이
 키의 보안으로 전체 내용의 보안이 유지되도록 하는 것이다. 이 경우 키가
 노출되면 노출된 키는 버리고 새로운 키를 사용하면 되고 또 여러 사람이 같은
 암호 알고리듬을 사용하더라도 다른 키를 사용하는 사람들끼리는 서로 보안이
 유지되는 것이다.

 수천년 전부터 사용되어 왔다고 해 「관용(conventional)암호방식」이라고
 불리는 암호방식은 암호화 및 복호화를 위해 사용하는 키가 같거나 하나를 알면
 다른 것을 쉽게 알 수 있어 두개의 키를 모두 비밀리에 보관해야 한다. 따라서
 이러한 암호방식을 단일키, 대칭키, 또는 비밀키 암호시스템이라 부르며 앞서
 이야기한 갑돌이, 을순이, 병팔이 시나리오의 3가지 요구사항을 모두
 만족시켜준다. 그러나 N명의 구성원이 모두 서로 비밀키를 갖고자 하면 2분의
 N(N-1)개의 서로 다른 비밀키를 가져야 하는 불편함이 있다. 뿐만 아니라 서로
 모르고 멀리 떨어져 있는 사용자간 비밀키를 공유하고 관리하는 일이 쉬운 것은
 아니다.

 또한 갑돌이와 을순이 사이에 문제가 생겼을 때 을순이가 받은 편지를 증거로
 사용하고자 하는 요구가 있을 수 있다. 하지만 비밀키 암호시스템은 이 요구에
 부응하지 못한다. 이유는 갑돌이와 을순이만이 공유하는 비밀키는 법관이 알 수
 없고 설사 을순이가 갑돌이에게서 온 편지와 비밀키를 가져다 준다고 해도
 법관은 그 편지가 과연 갑돌이가 보낸 것인지, 을순이가 조작했는지 알 수 없기
 때문에 증거로 사용할 수 없는 것이다.

 이러한 키관리문제를 쉽게 하고 부인봉쇄(non-repudiation)를 위한
 디지털서명을 가능하게 하기 위해 76년 이중키, 비대칭키, 또는 공개키
 암호시스템이라 부르는 방식이 생겨났다. 예컨대 을순이가 암호화 키와 복호화
 키를 다르게 해 암호화 키만 공개시키면 누구나 을순이에게 을순이의 공개키로
 암호화해 편지를 보낼 수 있다. 하지만 그 공개키에 대한 복호화 키,
 비공개키를 가지고 있지 못한 사람은 복호를 하지 못하는 것이다. 이렇게 하면
 키관리가 훨씬 쉬워진다. 발신자가 수신자의 공개키를 암호화 키로 사용하면 그
 공개키에 해당되는 비공개키를 갖고 있는 수신자만이 복호할 수 있어
 프라이버시가 요구되는 것이다.

 또한 갑돌이가 자신의 비공개키로 먼저 변환을 시키면(서명을 하면) 갑돌이의
 공개키를 가지고 법관을 포함한 누구나 그것을 확인할 수 있으므로
 디지털서명도 가능해진다. 디지털서명을 하면 내용 및 발신자 인증도 동시에 할
 수 있다. 하지만 공개키 암호시스템은 하나의 키를 공개하고도 시스템의 보안을
 유지하기 위해 비밀키 암호시스템보다 훨씬 복잡한 연산을 해야 한다. 이에
 따라 암호화/복호화하는 데 걸리는 시간이 비밀키 암호시스템보다 약 1천배
 길다는 단점이 있다. 따라서 짧은 시간에 많은 양의 정보를 암호화할 때에는
 비밀키 암호시스템을, 키관리나 서명을 위해서는 공개키 암호시스템을 사용하는
 것이 일반적인 추세다.

 암호해독을 하는 목적은 프라이버시 침해, 내용수정, 서명위조, 그리고 다른
 사람인 척하는 것(impersonation) 등이다. 이를 위해서는 암호화방법을 알아야
 한다. 가장 쉬운 방법은 돈으로 매수해 암호화방법을 알아내는 것이라는
 우스갯소리도 있지만 상당히 중요한 점을 암시하고 있다. 다시 말해 사람관리가
 가장 중요한 것이라는 점이다.

 암호해독을 어렵게 할 목적으로 암호화 알고리듬 자체를 비밀로 하는 경우가
 많다. 반면 암호화 알고리듬은 공개하고 키관리에만 안전을 맡기는 경우도
 있다. 이들 두가지 정책은 각기 장단점이 있다. 전자의 장점은 일단 비밀로 한
 암호화 알고리듬을 알아내기 위해 매수하는 공격방법이든 다른 방법이든 후자의
 경우보다 한가지의 공격을 더 해야 한다는 점이다. 반면 단점은 암호화
 알고리듬이 충분히 검증이 되지 않는 경우가 많아 일단 알려지면 쉽게 뚫리게
 되는 경우도 많다는 것이다.

 암호학자들은 그래서 후자의 정책을 선호한다. 공개를 하지 않은 알고리듬은
 아무리 소수의 사람이 잘 만들었다고 하더라도 그들이 신이 아닌 이상 허점은
 있게 마련이고 만든 사람에게 특히 잘 보이지 않는 그 허점을 가능하면 많은
 사람이 검토하면 발견될 확률이 높아진다는 것이다. 사용자의 입장에서도 많은
 전문가들이 안전을 확인한 방식을 사용하는 것이 심적 부담이 없는 것이다.

 세계적으로 많이 사용되는 암호 알고리듬은 DES, RSA 등으로 이는 모두 공개된
 것이다. 하지만 각국의 정부에서 사용하는 알고리듬은 모두 공개되지 않은
 것이다. 흥미로운 것은 미국이 최근 자국의 표준으로 사용하고 있는
 스킵잭(Skipjack)이란 알고리듬은 비공개된 알고리듬이나 자국의 여러
 암호전문가에게 검증을 받았다는 점이다. 즉 두가지 정책의 장점을 택했던
 것으로 우리나라에서도 몇가지 국민의 실생활에 연관된 암호 알고리듬은 무조건
 감추어서 불신을 얻는 대신 이러한 방식을 택할 것을 권하고 싶다.

 DES는 미국이 표준에서 제외시키려는 노력을 해왔지만 은행을 비롯한 업계의
 반대로 아직까지 전세계의 실제적인(de facto) 표준으로 사용되고 있다. DES는
 70년대 초 미국 상무부가 정부와 민간의 조달 등에서 사용할 목적으로
 공개모집된 것 중 IBM이 제안한 것을 미국의 NSA(National Security Agency)가
 개입, 수정해 표준으로 만든 것이다. 종래의 암호방식과는 달리 알고리듬을
 공개했기 때문에 전세계 암호전문가들의 주목을 받게 돼 20년 가까이 온갖
 공격의 대상이 돼왔다. 그럼에도 키의 길이가 조금 짧아 당하는 공격 이외의
 다른 공격들에는 다 잘 견뎌내고 있다.

 그러나 NSA의 개입과 공개되지 않은 설계원칙 때문에 NSA만이 알고있는 어떠한
 뒷문(trap door)이 있지 않겠는가 하는 의혹이 남아 있다. 미국은 80년대 말
 DES 대신 다른 공개되지 않은 알고리듬을 사용할 계획이었으나 키까지 정부가
 관리하려 했던 탓에 업계의 반발을 받아 그 노력이 무산됐다. 90년대 들어서는
 공개되지는 않았지만 전문가의 검증을 거친 스킵잭 알고리듬과 사용자 마음대로
 앞문을 여는 키와는 달리 뒷문을 열 수 있는 키를 예탁(escrow)하게 하는
 방식으로 표준을 만들어 사용하고 있다.

 미국이 최근 1백28비트의 암호 알고리듬 수출을 허용하자 우리나라 여러
 기업들이 서둘러 이의 도입을 추진한다는 보도도 있었다. 여기에 대해 몇가지
 문제를 지적하면 우선 암호키의 길이가 길다고 더 안전한 것은 아니다. 모든
 키를 다 맞추어보아 찾아내는 공격방식(exhaustive key search attack)에는
 물론 키의 길이가 긴 것이 유리하다. 하지만 다른 방식의 공격이 이 공격방식에
 비해 어려운 경우에만 그렇다. 예컨대 2백56비트의 RSA암호를 공격하기 위해
 2백56비트의 키를 모두 다 맞추어보고 찾아내는 공격방식을 사용할 사람은 없을
 것이다. 그것보다는 훨씬 쉬운 소인수분해방식을 이용해 찾을 수 있기
 때문이다.

 또 하나는 우리나라 산업계가 대부분 눈앞의 이익에만 급급해하고 있다는
 점이다. 우리나라에도 충분히 좋은 것이 있거나 없더라도 개발해 사용할 수
 있는 것을 외면하는 것은 비록 정보보호분야에 국한되지 않는 것은 익히 알고
 있는 사실이나, 국가의 경쟁력에 가장 중요한 역할을 하게 될 암호분야까지
 외국제품을 들여오겠다고 하는 것은 문제가 아닐 수 없다. 20년 이상 공개돼
 연구대상이 돼온 DES마저 혹시 뒷문이 있지 않을까 하는 우려가 상존하는
 상황에서 어떠한 것이든 설계원리를 공개하지 않는 한 암호설계시 뒷문을
 만들어둘 가능성이 있음을 잊지 말아야 한다. 타국에서 만든 암호를 들여와
 사용한다는 것은 내 집의 열쇠를 남에게 만들라고 해놓고 그 열쇠를 받아
 안전하겠거니 하고 안심하는 것과 같다. 국내에서 사용되는 암호 알고리듬이나
 암호 프로토콜은 가능한 한 우리나라에서 개발된 것을 사용해야 한다.
 우리나라의 암호기술 수준도 외국에 비해 떨어지지 않는다. 다만 개발된 암호
 알고리듬 등이 충분한 검증과정을 거쳐야 한다는 점을 다시 한번 강조한다.

 또하나 미국이 수출하는 56비트 이상의 암호 알고리듬에 사용되는 키를 예탁할
 계획인 것으로 알려져 있다. 그것은 알고리듬 자체에는 뒷문이 없다고 하더라도
 아예 미국이 뒷문을 만들어 그 열쇠를 가지고 있겠다는 뜻이다. 미국에서
 도입한 암호 알고리듬을 사용하는 모든 정보는 미국이 마음만 먹으면 다 들여다
 볼 수 있는 것이다.

 가택수색은 개인의 프라이버시를 침해한다는 이유로 경찰 등 법진행 기관이라고
 하더라도 그것을 임의로 행하지는 못하게 돼있다. 그러나 그 개인의
 프라이버시로 인해 타인, 특히 사회의 안전에 나쁜 영향을 미치는 것이
 확실하다면 그 증거를 가지고 법원에서 수색영장을 받아 수색을 할 수 있게
 돼있다. 정보교환에서도 마찬가지다. 정보의 교환에서도 프라이버시는
 보장되어야 한다. 또한 전자상거래에서도 현금과 같이 프라이버시가 보장돼야
 한다. 하지만 그것이 손쉬운 돈세탁의 도구가 되어서는 안된다.

 즉 두가지의 상반된 요구인 프라이버시와 사회안전 사이에서의 균형도 고려해야
 하는 것이다. 이 균형을 위해 미국도 키 예탁제도가 제안돼 표준으로 돼있는
 만큼 우리나라도 키 예탁제도를 채택하는 것이 바람직하다.

----------------------------------------------------------------------------

Revision History

작성일자 : 97.07.03
작성자 : 이민호

수정일자 :
수정자 :