암호

비밀 공유와 범죄와 전쟁 — 암호화(Cryptography)

비밀 공유와 범죄와 전쟁

메시지를 교환하려고 암호 코드 혹은 눈에 보이지 않는 글을 작성하는 마술을 사용하는 스파이나 비밀요원을 들어봤을 것이다. 비밀 코드를 작성하고 해독하는 기술로서 암호학(cryptography)이라는 주제가 시작한 방식이 된다. 제2차 세계대전에서 영국은 특별한 용도로 암호를 해독하는 전자기계를 만들어서 군사 암호를 해독하는데 사용했다. 그리고 나서 컴퓨터가 나왔고, 모든 것을 바꿨으며, 암호학은 새로운 시대로 들어섰다. 과거에 상상할 수 없는 엄청난 계산량을 사용해서 코드를 해독하는데 투여됐다.
사람들이 컴퓨터를 서로 공유하기 시작했을 때, 비밀 암호에 대한 새로운 용도가 있었다. 컴퓨터가 네트워크에 연결되었을 때, 정보에 접속하려는 사람으로부터 정보를 보호하려는 새로운 이유가 있었다. 전자우편이 전달되었을 때, 전자우편을 서명해서 보낸 사람이 정말 글을 써 보낸 사람이 맞는 확실히 하는 것이 중요하게 되었다. 이제는 사람들이 컴퓨터를 사용해서 물건을 팔고 사고하기 때문에, 주문하고 컴퓨터 네트워크로 지불하는 안전한 방법이 필요하게 되었다. 컴퓨터 시스템을 공격하는 점증하는 테러리스트 위협으로부터 컴퓨터 보안을 확보하는 것이 더욱 중요해졌다.

암화화하면 아마도 비밀번호를 컴퓨터에 저장하고 메시지 내부 문자를 마구 뒤섞어서 해커나 적이 읽을 수 없게 하는 것을 머리속에 그릴 것이다. 하지만 현실은 매우 다르다. 현대 컴퓨터 시스템은 비밀번호를 서버에 저장하지 않는다. 왜냐하면, 만약 저장했다가, 누군가 시스템 서버에 접근해서 모든 보안장벽을 뚫어버릴 수 있기 때문이다. 이러한 경우 해킹결과는 거의 재앙수준이 된다: 위조된 은행계좌로 송금하거나, 다른 누군가를 가정해서 메시지를 전송하거나, 누군가의 비밀 파일을 열어보거나, 군대에게 명령을 내리거나, 정부기능을 마비시킬 수도 있다. 근래는 활동 14에서 언급한 일방향 함수(one-way function)를 사용해서 비밀번호를 다룬다. 그리고 암호화는 단순히 메시지 문자를 뒤섞는 순준이 아니다: 4부에서 소개한 “다루기 힘든(intractable)” 것과 같이 정말 매우 어려운 문제가 포함된 기법을 실무에 적용한다.

암호화 기법을 사용해서, 여러분이 생각하기에 불가능하다고 여기는 것들을 수행할 것이다. 이번 장에서, 나이가 몇살이지 묻지 않고, 그룹에 있는 사람들의 평균 나이를 계산하는 간단한 방법을 찾아낼 것이다. 서로 신뢰하지 않는 두 사람이 동전을 던져서 결과에 동의하는 방법도 알아낼 것이다. 두 사람은 사실 다른 도시에 살고 있으며, 둘다 동전 던지는 것도 볼 수도 없다. 마지막으로, 모든 사람이 암호해독하는 방법은 알고 있지만, 단지 한사람만이 해독할 수 있도록 비밀 메시지를 암호화하는 방법도 찾아낼 것이다.

선생님에게

이번 활동들은 실습을 통해서 현대 암호기법을 학습하는데, 사람들 대부분이 비밀성과 컴퓨터에 대해 추측하는 것과는 매우 다르다.

두개의 핵심 아이디어가 있다. 첫번째는 프로토콜(protocol) 개념으로, 격식을 차린 처리 규약이다. 프로토콜하면 외교, 에티켓을 떠올릴 수 있지만, 컴퓨터도 마찬가지로 프로토콜을 사용한다. 놀랍도록 단순한 프로토콜을 사용해서 겉으로 보면 어려운 작업을 수행한다. 몇분정도 소요되는 활동 16을 통해서 한 그룹의 사람들이 협업을 통해서 그룹의 평균 연령(혹은 수입)을 쉽게 계산할 수 있는데, 사람들마다 나이(혹은 수입)를 파악할 필요가 없다. 컴퓨터를 통해서 다른 사람과 상호작용할 때, 컴퓨터적 복잡성(computational complexity)—난해성(intractability)—이 두번째 핵심 아이디어 역할을 한다. 활동 17을 통해서, 반듯이 서로 신뢰하지 않는 사람 둘이서 어떻게 동전 던지기 결과에 합의과정을 지켜보게 된다. 두 사람은 단지 전화선으로만 연결되어 있다. (이 활동을 통해서 작은 목소리로 부울 논리 회로와 다루는 법을 소개할 수도 있다.) 활동 18을 통해서, 학생들에게 컴퓨터 기법을 사용해서 메시지를 안전하게 암호화하는 방법을 시연한다. 하지만, 암호코드로 변환하는 방법은 공개된 정보다.

활동중 일부, 특히 마지막 활동은 매우 어렵다. 학생들에게 충분한 동기를 부여해서, 대부분의 사람들이 불가능하다고 생각하는 것을 수행하고, 결국 활동을 성공적으로 마무리할 것이라는 경이로운 느낌을 주입해야 한다. 이러한 경이로운 느낌을 생성하고, 의사소통하고, 나무를 보느냐고 전체 숲을 보지 못하면 안되기 때문에 종종 잠시 멈춰서 활동 전체 과정이 생동감있게 한다. 이 활동이 책에서 가장 도전적이며 기술적으로 난이도가 있다. 만약 학생들이 너무 어렵다고 판단된다면, 6부를 건너뛰어라. 6부는 완전히 다른 주제이고, 전혀 기술적이지 않다.

기술적 사고방식을 가진 분들에게

컴퓨터가 일상을 잠식하면서, 암호기법의 응용이 잠재적으로 다소 평향되어졌다. 대부분의 사람들은 현대 암호 프로토콜의 잠재적인 능력을 이해하지 못한다. 이것이 가져온 결과는 다음과 같다. 거대 기관—정부나 대기업—이 개인 정보가 포함된 시스템을 구축할 때, 정보가 다뤄지는 방법, 수집하려는 정보의 종류, 공개되는 정보, 공개정보 대상에 대한 주요한 결정은 테크노크라트(technocrat)가 결정하는 경향이 있다. 만약 현대 기술로 인해서 열려진 가능성에 대해서 좀더 잘 이해하게 된다면, 이런 의사결정과정이 있을 때 좀더 적극적으로 참여하게 되고, 사회는 다른 정보 인프라를 가지게 될 것이다.

정보 은닉 프로토콜, 암호 프로토콜, 공개키 암호화에 대한 학습 내용은 일반적으로 매우 고급과정으로 간주된다. 하지만, 아이디어 자체가 어려운 것은 아니다. 이해하기 어려운 것이 기술적인 부분이지, 근간을 이루는 개념은 아니다. 전자상거래와 관련된 실생활에서 기술적인 부분은 컴퓨터 소프트웨어 내부에 파묻혀있다. 컴퓨터 소프트웨어가 새로운 암호기법을 매우 사용하기 쉽게 만들었다. 하지만, 무슨 일이 진행되고 있는지에 대한 통찰하려면, 기저를 흐르는 아이디어를 이해하는 것도 중요하다.

암호 시스템은 정부에 매우 중요하다. 공식 커뮤니케이션을 안전하게 수행하기 위해서가 아니라, 마약밀매, 테러 같은 불법적인 활동과 연계된 사람들이 암호화된 커뮤니케이션을 사용할 수 있다는 우려 때문이다.만약 범죄관련된 사람들이 암호기법을 사용하게 되면, 암호를 해독하는 방법이 없다면 도청을 할 수 없다. 이러한 우려는 매우 큰 논란을 불러 일으켰다. 암호화 시스템을 제한하려는 법집행에 관심있는 사람들과 사적인 커뮤니케이션에 접근하는 정부를 지나친 간섭이라고 생각하는 시민 인권운동가 사이에 논란이 되고 있다. 한동안 미국정보는 암호관련 기술을 폭탄이나 총같은 군수품으로 간주해서 사용을 엄격히 제한했다. 즉, 올바른 정보와 기술적 능력을 만족시키는 경우에만 보안 커뮤니케이션 시스템을 구축할 수 있다. 하지만, 범죄자의 수중에 들어가면 위험하기는 마찬가지다. 클리퍼 칩(Clipper Chip)에 대한 광범위한 논쟁이 있었다. 참고로, 클러퍼 칩은 암호키 위탁(key escrow)으로 불리는 추가 비밀번호를 가진 시스템으로, 정부관계자가 칩으로 암호화된 어떤 메시지도 해독할 수 있다. FBI와 미 법무부는 이 칩을 커뮤티케이션에 광범위하게 사용하길 기대하지만, 개인정보에 대한 위협때문에 상당한 반대를 불러 일으켰다. 기술적으로 모든 종류의 보안 시스템은 가능하지만, 정치적으로 반듯이 수용될 수는 없다!

암호 아이디어는 메시지를 비밀스럽게 보관하는 것 외에 응용사례가 많다. 예를 들어, 메시지를 보냈다고 말하는 사람이 보낸 메시지가 맞는지 검증하는 것— 인증(authentication)이고, 이것이 없으면, 전자상거래는 불가능하다. 컴퓨터를 사용해서 투표하는 방식도 있다. 어떤 사람이 누구에게 표를 던지는지를 알지 못하게 해야하고, 심지어 컴퓨터 시스템을 운영하는 사람도 포함된다. 그리고 한번이상 투표를 하지 못하게도 만들어야 한다. 전화선을 통해서 카드게임을 할 수도 있다— 사업거래를 성사하는 것이 카드게임(포커)과 매우 유사하다는 것을 깨달을 때까지 바보스럽게 들릴지 모른다.

다음 일들은 불가능하게 보인다. 전화선 위로 카드를 어떻게 섞을 것인가? 만약 반대쪽의 상대방과는 경쟁을 하고 있고 신뢰를 할 수 없다면 말이다. 메시지를 가로채고, 변경하고, 원본으로 가장해서 전달하는 사람을 어떻게 잡아낼 것인가? 하지만, 만약 이러한 것을 할 수 없다면, 전자적으로 사업을 수행할 수 없다. 여러분이 매장 단말기와 은행 사이에 통신선을 가로채서 은행계좌에서 불법인출하려고 인증을 위조하려는 기술적 사고방식을 가진 범죄자를 막아야 한다. 거짓 주문 혹은 허위 계약을 만들어 내서 사업 경쟁자가 막대한 손실을 초래하는 것도 막아야 한다. 현대 암호기법으로 기적을 만들 수 있고 다음 활동이 방법을 보여준다.

암호와 암호해독에 관한 흥미로운 책이 많다. Hinsley와 Stripp이 편집한 Codebreakers: the inside story of Bletchley Park 책은 세계 2차 대전에서 첫 컴퓨터가 암호를 해독하는데 어떻게 사용되었고, 전쟁을 엄청나게 짧게 만들어 정말 많은 생명을 구했는지에 대한 첫번째 목격자 증언이 나와있다.