Michael O. Rabin
컴퓨터를 만든 15 인의 과학자 : Dennis Shasha. Cathy Lazere 공저, 박영숙 옮김, 세종연구원, 1998 (원서 : Out of Their Minds : 1995)
완전한 확신을 가지고 결과나 답을 도출해 내려는 시도를 포기해야 합니다. - 마이클 O. 라빈
디지털 컴퓨터들은 정확하게 명령받은 것을 실행할 뿐, 그 이상도 그 이하도 아니다. 프로그래밍 언어들은 흔히 '실행 (do)', '지정 (assign)', '시작 (begin)' 처럼 부탁 (please) 이나 감사 (thank you) 의 표현같은 것은 없이 명령만을 제공함으로써 이 점을 강조한다. 그 바탕에 깔린 의미는 '기계는 당신의 노예이니 그것에게 당신의 명령을 말하라' 는 것이다. 이처럼 주어진 상황에서 컴퓨터가 추측을 한다거나, 심지어 우연히 결정된 방식에 따라 행동할 수 있도록 만드는 것을 상상할 사람은 거의 없을 것이다.
마이클 라빈은 그보다 훨씬 더 이상한 것들을 상상해 왔다. 컴퓨터의 행동 방식에 관한 이론을 세우는 과정에서 그는 전체 컴퓨터 과학의 하위 분야들을 정립하였다. 그의 연구는 수학자들과 컴퓨터 과학자들에게 특정한 컴퓨터 프로그램들이, 예를 들어 어떤 수가 실제로는 소수가 아닌데 소수라고 가정하는 것과 같은 오류를 좀처럼 발생시키지 않도록 설계 '되어야 한다' 는 견해를 받아들이도록 하는 도전이 되어 왔다. 놀랍게도 컴퓨터 분야에서는 그의 견해가 받아들여졌으며, 그와 같은 프로그램들이 암호학에서 로봇공학이나 통신에 이르기까지 폭넓은 응용 분야에서 하루에도 수십억 차례씩 실행되고 있다.
마이클 라빈은 1931 년 독일 브레슬라우 (제 2 차 세계대전 이후의 폴란드 브로츨라프) 에서 유서 깊은 랍비 가문의 자손으로 태어났다. 원래 러시아 태생으로 랍비이자 철학박사였던 그의 아버지는 당시 브레슬라우에서 명망을 누리던 신학교의 학장 (rector) 으로 있으면서 유대인의 역사와 철학을 가르쳤다. 라빈의 어머니는 17 살부터 동화를 쓰기 시작하여 문학박사 학위까지 받은 사람이었다. 1935 년 그의 가족들은 앞으로 닥칠 시련을 예견하면서 팔레스타인으로 떠났다.
|
러시아의 배경을 가지고 있었던 나의 아버지는 반유대주의가 어떤 것이며, 그것이 치명적인 위험을 초래할 수 있다는 것을 알고 계셨습니다. 아버지는 언제나 변함없이 시온주의자셨지요. 히틀러가 권력자로 부상하자 아버지는 미래가 없다는 걸 깨달으셨습니다. 그래서 신학교의 이사회를 찾아가 학교를 예루살례으로 옮길 것을 제안하셨어요. 하지만 그 독일 애국자들은 조국이 어려운 시기에 처해 있다면 자신들은 비애국적인 일을 하지 않을 것이라고 말했습니다. |
라빈의 아버지는 가족들이 이스라엘에 도착한 후에 곧 하이파의 고등학교 교장이 되었고, 마이클은 교단에 속한 초등학교에 다니기 시작하였다.
|
나보다 다섯 살 위인 누나가 파울 드 크루이프 (Paul de Kruif) 의 저서인 『미생물의 사냥꾼들 The Microbe Hunters』이라는 책을 집에 가져 왔었습니다. 그 책과 또 다른 미생물학의 선구자들에 대한 책들을 읽었던 것이 내 상상력에 불을 당겨, 나는 여덟 살 때부터 열두 살 무렵까지 미생물학자가 되겠다고 생각했었지요. 그러던 어느 날 운좋게도 우연이 맞아 떨어져 내가 교실에서 쫓겨나게 된 일이 있었습니다. 그 때 복도에서는 9 학년 학생 두 명이 앉아 유클리드 양식의 기하학 문제를 풀고 있었지요. 난 그 학생들을 지켜 보고 있었는데, 그들이 영 풀지 못하고 있는 문제가 하나 있었습니다. 그들은 날 보고 그걸 한 번 해 보라고 권했고, 결국 내가 그 문제를 풀었지요. 그것의 매력, 그러니까 순수하게 생각만으로 증명의 과정을 통해 직선과 원에 대한 문제를 입증할 수 있다는 사실은 내게 큰 충격으로 다가와 나를 완전히 사로잡았습니다. |
라빈은 아버지에게 독일의 김나지움을 본떠서 세운 것이지만 특별히 과학에 전문화되어 있었던 레알리 스쿨 (Reali School) 에 보내달라고 졸라 댔다. 아버지는 그가 교단에 속한 고등학교에 가길 원했지만 결국은 아들의 성화에 지고 말았다.
|
아버지는 내가 정확성을 요하는 과학에 매료당하면서 결국 종교에서 멀어지고 말 것이라는 걸 정확히 예상하고 계셨습니다. 난 아버지께 그렇게 되지 않을 것이라고 약속했었지만, 실은 그것이 현실이 되어 버렸지요. |
라빈은 마침 이스라엘에서 컴퓨터에 관한 최초의 논문들이 발표되고 있었던 1950 년대 초에 레알리 스쿨을 졸업하고 히브루 대학에 들어갔다.
|
난 S. C. 클린 (S. C. Kleene) 의 『초수학 Metamathematics』이라는 책을 얻게 되었습니다. 그 책의 한 장은 앨런 튜링의 연구에 대한 것이었는데, 주로 계산 가능성 (computability) 과 튜링 기계에 대한 내용이 실려 있었습니다. 난 그것을 읽으면서 몹시 흥미를 느꼈지요. 앨런 튜링은 무엇이 계산 가능한가에 대한 선험적 정의를 제시하였습니다. 따라서, 컴퓨팅은 단지 새로운 기술일 뿐 아니라 수학적, 논리적 발상을 토대로 삼고 있는 기술이었습니다. 그 당시에도 난 내가 논리, 즉 실제로는 계산 가능성에 흥미를 갖게 될 것이라는 걸 알고 있었습니다. 하지만 경험을 넓히기 위해서 대수학 분야를 택해 교환 고리 (commutative rings) 의 이론에서 에미 뇌터 (Emmy Noether) 가 제기한 문제를 푸는 것으로 석사 학위 논문을 썼습니다. |
라빈은 훗날 튜링의 업적을 발판으로 연구 활동을 전개한다.
영국의 수학자인 앨런 튜링 (1912~1954) 은 컴퓨터가 존재하기도전인 1935 년에 계산의 논리적 토대를 정의하였다. 그가 '컴퓨터' 라는 단어를 사용하긴 했지만, 튜링의 시대에는 그 용어가 회사에서 계산을 실행하도록 고용된 남자나 여자 (실제로는 흔히 여자인 경우가 많았다) 를 의미하였다.
튜링은 그와 같은 컴퓨터가 어떻게 과업을 수행할 것인지를 상상해 보았다. 컴퓨터는 연필 한 자루와 한없이 긴 종이 조각을 사용했었다. 수직 방향의 직선으로 프레임들이 구분되어 있는 그 종이를 튜링은 '테이프 (tape)' 라 부르고, 각각의 프레임은 '스퀘어 (sqare)' 라고 불렀다. 그는 "어떤 한 순간에 컴퓨터가 보이는 행동은 그가 관찰하고 있는 기호와 그 순간 그의 '의식 상태' 에 의해 결정된다." 라고 썼다. 이같은 관찰과 의식 상태를 토대로 하여 컴퓨터는 다음 세 가지 가운데 하나를 수행한다. 즉, 인접한 스퀘어로 이동하거나, 현재 스퀘어를 변경하거나, 아니면 새로운 의식 상태로 들어가는 것이다. (잠시 후 그 상태들에 대한 몇 가지 예를 살펴 볼 것이다.) 튜링은 컴퓨터가 무한한 수의 문자들을 구별할 수 없기 때문에 한정된 알파벳을 사용할 것이라고 가정하였다. 튜링은 또한 컴퓨터가 지닐 수 있는 의식 상태의 수도 제한적이라고 가정하였다.
튜링에게 있어 컴퓨터의 문제는 관찰을 위한 행동과 관련하여 그와 같은 한 사람에게 주어진 정확한 명령의 세트로 구성되었다. 예를 들면, '현재 검색하고 있는 스퀘어에서 0 을 읽을 경우 그것을 1 로 대체하거나 오른쪽으로 한 스퀘어 옮겨 가시오.' 와 같은 식이 되는 것이다. 그는 무엇이 계산 가능한가의 개념은 그의 상상 속 컴퓨터가 그 긴 종이 두루마리를 가지고 무엇을 할 수 있는가의 문제와 동등한 것이라는 가설을 세웠다. 지금까지 제작된 컴퓨터들에 한해서는 그가 옳았다.
튜링은 1920 년 독일의 수학자 데이비드 힐버트가 Entscheidungs-problem (글자 그대로 '결정의 문제') 이라 불렀던 문제를 해결하기를 바랐다. 힐버트는 수학에서 최초의 순서 논리로 알려져 있는 수학적 언어를 사용하여 상태를 증명하거나 반증할 체계적 수단을 원했다. 튜링은 자신의 기계를 사용하여 그와 같은 체계적 수단은 결코 존재할 수 없음을 보여 주었다. 다시 말해, 그는 계산될 수 없는 문제들이 존재한다는 것을 입증한 것이었다.
영감을 얻기 위해 튜링은 오스트리아의 수학자 커트 괴델 (Kurt Gödel) 이 얻어낸 결과들에 눈을 돌렸다. 그는 1931 년 25 살의 나이로, 증명될 수도 반증될 수도 없는 산술과 유클리드 기하학에 관한 주장들이 틀림없이 존재한다는 것을 보여 주었다.
괴델의 발상은 숫자들을 취해 그것을 'S 는 증명할 수 없다.' 라고 하는 문장 S 와 같은 논리적 문장들에 집어 넣는 것이었다. 그리고는 다음과 같이 추론하였다. 문장 S 가 증명 가능하다고 가정하자. 그러면 S 는 거짓이 되어, 어떤 사람이 그것이 참이라는 증거를 가지고 있다는 사실에 배치될 것이다. 그럴 경우 S 는 증명할 수 없게 되어, 결국 참이지만 증명할 수는 없는 문장이 된다. [이처럼 스스로의 진위를 주장하는 문장에 대한 발상은 그 기원이 크레타의 에피메니데스 (Epimenides) 가 남긴 거짓말쟁이의 패러독스까지 거슬러 올라간다. 그 궤변은 이런 식으로 전개되었다. '모든 크레타인들은 거짓말쟁이이다.' 그러면 에피메니데스는 거짓말쟁이인가?]
튜링은 이 패러독스를 자신의 인간 기계에 주어진 프로그램들에 적용시켰다. 튜링은 우선 계산할 수 없는 무한한 수의 문제들이 틀림없이 존재한다는 것을 보여 주었다. 즉, 결코 컴퓨터가 문제를 해결할 수 있도록 프로그램을 작성할 수 없는 문제들이 무한한 수로 존재한다는 것이다. 기술적으로는 수학적 함수의 수는 셀 수 없을 만큼 무한한 반면, 프로그램의 수는 단지 셀 수 있을 만큼 무한하다는 것을 보여 주었다. 이 모든 것이 의미하는 것은 무엇인가? 틀림없이 상응하는 프로그램을 갖지 않는 함수들이 무한히 존재한다는 것이다.
튜링은 계속해서 그가 직접 '정지 문제 (halting problem)' 라고 이름붙인 특별한 문제를 제시하였다. 그것은 컴퓨터로 해결할 수 없는 것이었다. 정지 문제는 컴퓨터 X 가 다른 프로그램과 어느 정도의 시작 자료가 로드되어 있는 컴퓨터 Y 가 정지할 것인지 여부를 한정된 시간 내에 판별할 수 있도록 프로그래밍될 수 있는지를 묻는다. 튜링은 거짓말쟁이의 궤변과 유사한 추론을 사용하여, 컴퓨터 X 가 이 일반적 문제를 해결할 수 있게 해 주는 프로그램을 작성하는 것은 불가능함을 보여 주었다. 라빈이 지적한 대로 여기에는 아주 실제적인 의미가 함축되어 있다.
|
IBM 의 한 매니저가 누군가에게 가서 이렇게 말한다고 가정해 봅시다. "메리, 회사에서 프로그램들이 정지하는지 여부를 자동으로 점검할 방법을 필요로하고 있는데, 난 당신이 그것을 위한 알고리즘, 그러니까 이 문제에 답할 계산 방법을 찾아내 주길 바랍니다." 라고 말이지요. 자, 그런데 튜링은 그것이 가능하지 않다는 것을 보여 주었습니다. |
1950 년대 라빈이 이 문제들에 관심을 갖게 되었을 당시, 이스라엘에는 컴퓨터가 한 대도 없었고, 계산에 대한 연구를 하고 있는 사람도 거의 찾아볼 수 없는 실정이었다. 그래서 라빈은 미국으로 옮겨 가 먼저 펜실베이니아 대학에서 수학을 공부한 다음 논리학 박사 과정을 밟기 위해 프린스턴으로 갔다.
라빈은 알론조 처치의 학생이 되었다. "그는 아주 엄격한 분이었습니다. 내가 수학적 논리의 특징들을 진정으로 이해할 수 있도록 만들어 주셨지요." 또한, 처치는 튜링의 이론과 다르지만 그만큼 유력한 계산 가능성에 관한 이론을 내놓았다.
라빈의 박사 학위 논문은 대수군의 계산 가능성에 대한 문제를 다루었다. 군 (groups) 은 많은 과학 분야, 특히 이론 물리학에서 응용되는 기초적인 수학적 구조이다. 라빈은 군에 관련된 많은 문제들이 컴퓨터로 해결될 수 없다는 사실을 입증하였다.
|
튜링은 계산으로 해결될 수 있는 것과 그렇지 않은 것 사이의 커다란 구분을 정의하였습니다. 내 논문은 그와 유사한 맥락으로 군에 관련된 특정한 문제들이 계산될 수 없음을 보여 주었지요. 군은 특정한 방식으로 주어지며, 우리는 그것이 예를 들어 교환 가능한지 아닌지와 같은 특정한 속성들을 가지고 있는지 여부를 확인하고자 합니다. (말하자면, * 로 표시된 식은 그것이 A * B = B * A 인 군의 요소 A 와 B 어떤 것에나 참일 경우에 교환 가능합니다._ 그 문제에서 군 자체는 하나의 프로그램처럼 보이게 묘사됩니다. 계산으로는 그 문제의 답을 구할 수 없지요. 이 밖에도 많은 예들이 있습니다. |
1957 년 라빈이 논문의 결과들을 마무리하고 있을 무렵, IBM 리서치에서 라빈과 데이너 스코트 (Dana Scott) 라는 또 한 명의 젊은 논리학자에게 여름 작업을 제안하였다. 회사측에서는 그들이 무엇이든 마음내키는 대로 할 수 있는 자유를 주었고, 그 두 사람은 컴퓨터 과학에서 기본적인 정리가 될 것에 대한 공동 연구를 진행하였다. 그 연구의 일환으로 그들은 해법들을 '추측 (guess)' 할 수 있는 컴퓨터의 개념을 제안하였다.
라빈과 스코트는 튜링이 이론상으로 제시한 컴퓨터의 제한된 형식, 즉 테이프에 기록하는 것이 금지된 컴퓨터를 고려하는 것에서 출발하였다. '유한 상태 기계 (finite state machine)' 라고도 불리는 그같은 컴퓨터는 상태의 수가 일단 고정되어 있음에도 불구하고, 그것이 습득하는 내용을 기억 장치에 기록한다.
일상에서 볼 수 있는 유한 상태 기계의 예는 조합 잠금 (combination lock) 이다. 만일, 잠금이 순차적인 세 개의 수를 필요로하는 경우, 우리는 그것의 상태들이 각각 어떤 숫자도 다이얼 되지 않은 경우, 우리는 그것의 상태들이 각각 어떤 숫자도 다이얼 되지 않은 경우, 첫 번째 숫자가 제대로 다이얼된 경우, 처음 두 숫자가 제대로 다이얼 된 경우, 세 개의 숫자 모두가 제대로 다이얼 된 경우에 대응되는 것을 상상할 수 있다. 여기서는 오로지 마지막 상태만이 잠금을 해제한다. 그 순서가 틀리면 상태 기계는 아무 숫자도 다이얼 되지 않은 상태로 되돌아간다.
유한 상태 기계는 컴퓨터 응용 프로그램들에 다양하게 사용된다. 예를 들어, 그 기계는 하나의 텍스트에서 어떤 부분이 Br*e C*n 에 부합되는지, 즉 어디서 * 가 공백이 아닌 어떤 문자들의 순서와 일치할 수 있는지를 판별할 수 있다. 예를 들면, Bruce Chatwin 뿐 아니라 Bryce Canyon 에서도 일치 사항을 찾아낼 것이다.
라빈과 스코트는 튜링 모델의 절대적 한계, 즉 한 세트의 명령이 주어진 기계와 어떤 특별한 입력이 항상 동일한 방식으로 행동할 것이라는 점에 흥미를 느꼈다. 다시 말하면, 그것의 행동은 '결정적 (deterministic) 인 것이다.
튜링의 언어에서 결정성 인간 컴퓨터는 동일한 순서의 입력이 주어지면 매번 동일한 '의식 상태' 를 경험하게 될 것이다. 그와 같은 결정성이 앨런 튜링의 연구에 바탕이 된 신조였다. 비결정성 행동을 설명하기 위해 라빈은 식사 시간에 비유한 예를 보여 준다.
|
우린 그 기계가 어떤 특정한 상태에서 특정한 입력을 읽고 있을 때, 그것이 다시 들어갈 수 있는 새로운 상태들의 메뉴를 갖게 될 것이라고 가정하였습니다. 그럴 경우 많은 경로들이 생기기 때문에, 어떤 주어진 입력에 대해 고유한 계산이라는 것은 사라지게 되지요. 잘 꾸며진 한 프랑스 식당의 메뉴를 한 번 생각해 보십시오. 주요리에 갖가지 전채 요리와 수프, 생선 요리 등의 구색이 갖추어져 있습니다. 그 다음엔 고기로 만든 여러 가지 주요리 등이 계속해서 이어지겠지요. 당신은 요리를 선택하기 위한 시작 상태에 있습니다. 우선 전체 요리를 선택한 다음, 수프를 선택하고, 마찬가지로 다음 선택을 계속해 나갑니다. 이건 임의적인 과정이 아닙니다. 동전 던지기를 하고 있는 게 아니라는 뜻이지요. 하지만 이 과정은 비결정적입니다. 다음 번으로 옮겨갈 상태에 관한 선택 (즉, 정선된 메뉴 항목) 이 주어져 있기 때문입니다. 그 선택안들이 바로 상태입니다. 이와 같은 선택의 순서들은 각각 어떤 가능한 계산을 나타내며, 그 결과로 요리에 대한 만족이나 불만을 초래합니다. 받아들이거나 아니면 거절하는 것이지요. |
그 두 논리학자들은 선택이 모호함으로 연결될 수 있다는 걸 인식하여, 만일 어떤 '비결정성' 기계에서 입력시에 가능한 계산들 중 최소한 한 가지가 '받아들이는 상태' 에 이른다면 그 기계가 순서를 '받아들이는 것' 이라고 하였다. 라빈이 비유했던 용어들을 사용하면, 정선된 메뉴가 어떤 비결정적 고객에게 모든 코스마다 훌륭한 선택을 제공할 경우 그 고객은 그 식당이 훌륭하다고 말할 것이다. 반대의 경우라면 그는 그 식당이 별볼 일 없다고 말할 것이다. 다음의 두 가지 점을 제외하면, 추측을 하는 비결정성인 기계라는 것이 단지 지적 호기심으로만 여겨질 수 있다.
첫째, 라빈과 스코트는 유한 상태 기계에 대해서 비결정성 기계로 해결되는 문제는 비록 훨씬 많은 상태들이 필요하긴 하겠지만 결정성 기계를 가지고도 풀 수 있다는 사실을 보여 주었다.
둘째, 비결정성 유한 상태 기계들은 언어 번역, 도서관 문서 검색, 그리고 워드 프로세싱 프로그램에서의 패턴 검색을 표현하는 데 있어 뛰어난 수단으로 입증되었다. 사실상 컴퓨터로 패턴 검색을 실행할 때에는 매번 사용자의 파일에서 부합하는 텍스트를 찾기 위해 라빈가 스코트가 절차를 변형한 형태들이 사용될 것이다. 라빈과 스코트는 이 모든 것을 올림픽 속도로 해내었다.
|
그건 아주 대단한 공동 작업이었습니다. … 우리 중 하나가 어떤 문제를 공식화하면 일단 각자의 위치로 돌아갔다가 다른 한 사람이 그 해법을 제시하는 식이었지요. 거의 하룻밤만에 말입니다. 실제로 3 주만에 우리는 모든 답을 얻어 냈습니다. 그 가운데에는 논문에는 실리지 않았던 결과들도 많이 포함되어 있었지요. 논문이 너무 길어지는 걸 원치 않아 일부를 제외시켰었기 때문입니다. 그것들은 훗날 다른 사람들에 의해 재발견되었습니다. |
그들의 논문은 1959 년까지 전문 분야의 문헌에 등장하지 않았다. 그 후 10 년간 이론가들은 다양한 방식으로 그 연구의 결과들을 확충하였다. 하지만 비결정성의 개념이 훨씬 더 폭넓은 관심을 끌었던 것으로 입증되었다. 라빈은 이에 대해 놀라움을 금치 못했다.
|
우리는 여기에 함축된 모든 것을 보지는 못했다고 해야 할 것입니다. 우리가 제시한 비결정성의 개념은 우리에겐 수학적 창작물이었지요. 난 그 때 이후 업계에서 수많은 자문 활동을 하였습니다. 앉아서 실제 시스템 엔지니어들의 이야기를 듣고, 오퍼레이팅 시스템 전문가들에게 이야기를 하고, 그 오퍼레이팅 시스템의 설계에 관해 논의하는 식이었지요. 누군가가 "난 당신에게 이것이 결정성인지 비결정성인지를 명확히 해 주기를 바랍니다." 라는 말을 꺼냅니다. 그러면 난 혼자서 미소를 짓지요. 그건 바로 이 비결정성 기계들의 수학적 추상으로 다시 거슬러 올라가는 것이기 때문입니다. |
|
유한 상태 자동 기계 유한 상태 기계에 의해 처리되는 패턴들이 반드시 영어 단어일 필요는 없다. 문자나 숫자 혹은 다른 기호들의 조합이 될 수도 있다. 컴퓨터는 2 진수 체계로 작동하기 때문에 우리는 단 두 가지 기호의 알파벳, 즉 'a' 와 'b' 를 사용할 것이다. 단순한 유한 상태 자동 기계 그림 1 이 보여 주는 기계는 입력이 'ab' 일 경우에만 받아들이고 그 밖의 입력은 거부한다. 그 기계는 시작 상태에서 출발하여 첫 번째 기호가 'a' 이면 상태 2 로, 'b' 이면 상태 3 으로 진행한다. 상태 2 에서는 두 번째 기호가 'b' 일 경우 최종 상태로, 'a' 일 경우 상태 3 으로 나아간다. (중복된 원은 관례적으로 최종 상태를 표시하는 기호이다.) 더 이상의 입력을 받을 경우에는 최종 상태를 떠날 것이다. 상태 3 에는 출구가 없다. 따라서, 이 기계는 'ab' 만을 받아들일 것이며, 그것이 전부이다. 이 자동 기계가 입력의 마지막 기호를 읽고 그 상태에서 작동을 종료하면 그 입력은 받아들여진다. 그렇지 않을 경우 입력은 기각된다. 이 기계는 결정성이다. 각각의 상태에 오로지 'a' 에 상응하는 하나의 전이와 'b' 에 상응하는 하나의 전이만이 존재하기 때문이다.
그림 1 ab 에 대한 유한 상태 자동 기계 임의 길이 문자열 앞의 단순한 그림은 단지 짧은 워밍업에 지나지 않는다. 유한 상태 기계는 그 길이가 임의적인 문자열들도 받아들일 수 있다. 그림 2 는 'ab', 'abab', 'ababab', 'abababab' 와 같이 계속되어 나가는 문자열들의 패턴을 받아들일 수 있는 유한 상태 기계이다. 다른 문자열들을 기각될 것이다. 보이는 바와 같이 이 기계는 한 가지만 제외하고는 첫 번째 것과 동일하다. 그것은 'a' 의 입력에 대해 최종 상태에서 상태 2 로 이전한다는 점이다. 상태 2 에서 상태 4 로 옮겨 갔다가 다시 상태 2 로 되돌아가는 경로는 이 자동 기계가 임의 길이의 문자열들을 받아들일 수 있게 해 준다. 예를 들면, 패턴 'abab' 에 대해서 이 기계는 상태 1 에서 시작한 다음 첫 번째 기호 'a' 에 따라 상태 2 로 갔다가 두 번째 기호 'b' 에 따라 최종 상태로, 세 번째 기호 'a' 에 따라 다시 상태 2 로, 그리고 네 번째 기호 'b' 에 따라 다시 최종 상태로 되돌아갈 것이다.
그림 2 ab, abab, ababab 에 대한 유한 상태 자동 기계 AB, ABAB … OR ABBA, ABBABA … 형식의 문자열 이제 'ab', 'abab', 'ababab', 'abababab', … 또는 'abba', 'abbaba', 'abbababa' … 가운데 어느 하나로 구성된 패턴의 인식에 대한 문제를 살펴보자. 여기서 어려운 문제는 두 가지 무한 패턴이 모두 'ab' 로 시작하기 때문에 이 기계가 작업을 수행할 하나의 패턴을 선택해야 한다는 점이다. 이 선택은 비결정성 유산 상태 기계를 사용해서 표현하는 것이 쉽다. 그림 3 에서는 시작 상태인 상태 1 에서 비결정성 선택이 이루어져 'a' 를 입력하면 기계가 상태 2 나 상태 3 가운데 어느 하나로 갈 수 있다. 라빈과 스코트에 의하면, 시작 상태에서 최종 상태에 이르는 어떤 경로가 존재할 경우, 즉 그 경로를 따라 이루어지는 첫 번째 전이는 입력의 첫 번째 문자를 가지고 있고, 두 번째 전이는 두 번째 문자를 가지고 있는 식으로 이어질 경우, 그 입력은 받아들여진다. 예를 들어, 'ababab' 는 받아들여진다. 이것은 시작 상태에서 상태 2 로, 이어 4 로, 다음은 2, 다음은 최종 상태 4, 이어서 2, 그리고 다시 최종 상태 4 로 되돌아 가는 경로인 것이다. 다른 예로, 'abba' 는 시작 상태에서 상태 3 으로, 이어서 5 로, 그리고 6 을 거쳐 최종 상태 7 로 가는 경로이기 때문에 받아들여진다. 반면에 'abba' 는 그 입력에 따라 시작 상태에서 최종 상태로 가는 경로가 없기 때문에 받아들여지지 않을 것이다.
그림 3 ab, abab, ababab, abababab, … 의 형식 또는 abba, abbaba, abbababa, … 의 형식인 문자열들만 받아들이고 다른 것은 받아들이지 않을 비결정적 유한 상태 자동 기계 비결정성 기계의 결정성 기계로의 변환 비결정 유한 상태 기계는 쓰기는 쉽지만 과연 어떤 식으로 프로그래밍할 수 있을 것인가? 라빈과 스코트는 집합 이론을 토대로 체계적 절차를 제안하였다. 그림 4 는 'ab', 'abab', 'ababab', 'abababab', … 의 형식, 혹은 'abba, 'abbaba', 'abbababa', … 의 형식으로 된 문자열들만 받아들이고 다른 것은 받아들이지 않는 결정성 유한 상태 기계를 작성하는 방법을 보여 준다.
그림 4 ab, abab, ababab, abababab, … 의 형식 또는 abba, abbaba, abbababa, … 의 형식인 문자열들만 받아들이고 다른 것은 받아들이지 않을 결정적 유한 상태 자동 기계 |
1958 년 여름, 라빈은 허드슨 강변에 있는 IBM 의 싱크 탱크인 램이스테이트로 돌아갔다. 그 곳에서는 존 매커시가 포트란의 리스트 처리 문제를 안고 씨름하고 있었다. 그는 라빈에게 한 가지 퍼즐을 냈다.
|
전쟁 상태인 두 나라가 있습니다. 한 나라에서 다른 나라로 스파이를 보내려 합니다. 그 스파이들은 자신이 맡은 밀정 활동을 한 후 돌아올 것입니다. 그들은 국경을 넘는 시도를 하면서 자기편 수비대의 총에 맞을 수도 있는 위험을 지니고 있습니다. 따라서, 당신은 어떤 암호 체계를 갖게 되길 바랍니다. 그 스파이들은 수완이 뛰어나며 비밀을 지킬 수 있는 사람들이라고 가정합니다. 하지만 국경 수비대는 지역을 구분하는 차단봉이 있는 곳으로 가서 잡담을 합니다. 따라서, 당신이 그들에게 하는 모든 이야기는 적에게 알려질 것입니다. 스파이는 안전하게 통과할 수 있지만 적들은 경비병들에게 맡겨진 정보를 사용해 자기편 스파이들을 소개할 수 없는 배열을 과연 고안해 낼 수 있을까요? |
라빈은 오늘날 '단방향 함수 (one-way function)' 라 불리는 것을 사용하여 그 해법을 제시하였다. 단방향 함수들은 계산 절차로 번역된다. 그 함수들은 어느 한 방향으로는 쉽게 계산할 수 있지만 반대 방향으로는 계산이 어렵다. 흔히 사용되고 있는 함수들은 이와 다르다. 예를 들어, 어떤 수를 3 배하는 것은 양방향 함수이다. 3 × y 를 계산하는 것도 쉽고 z/3 을 계산하는 것도 쉽기 때문이다. 라빈은 수학자 존 폰 노이만이 개발한 단방향 함수를 사용하였다.
|
어떤 100 자리수를 취하여 그것의 제곱을 구한다고 가정해 봅시다. 이건 컴퓨터로 쉽게 계산할 수 있지요. 그럼 이번엔 200 자리수를 가정해 봅시다. 그 200 개의 숫자들 가운데 중앙의 100 개를 취하고 그 결과로 나오는 수를 y 라고 합시다. 이제 x 가 주어지면 y 를 게산할 수 있습니다. 하지만 y 를 주고 x 를 계산하라고 요구한다면, 아마도 무수히 많이 존재하는 가능한 x 들을 모두 시도해 보아야만 할 것입니다. 따라서, '중앙 제곱 (middle squaring)' 을 계산하기는 쉽지만 그 역은 어려운 함수가 됩니다. 스파이 암호 문제의 해법은 단방향 함수를 사용하는 것이었습니다. |
어떤 식으로 하는 것인지 알겠는가? (퍼즐을 좋아하는 사람이라면, 계속해서 읽어 나가기 전에 여기서 잠시 멈추고 그것에 대해 생각해 보기 바란다.)
라빈의 해법은 이런 식이다. 경비병들이 중앙 제곱의 계산 방법을 알고 있으며, 각각 어느 한 명의 스파이에게 적용되는 y 값들의 리스트를 가지고 있다고 가정한다. 스파이는 국경에 도착하면 자신의 x 값과 이름을 댄다. 경비병들은 그 x 의 중앙 제곱이 그 스파이에게 부여된 y 값과 같은지 확인한다 (그리고 그 스파이가 다른 어떤 곳에도 들어가지 않았는지를 확인한다). 한 경비병이 술집에서 어떤 여자에게 유혹당해 모든 y 값의 리스트를 누설해 버린다 해도, 신분을 사칭한 사람이라면 결코 해당 x 값을 찾아내지 못할 것이다.
라빈의 해법에서 제기되는 보다 일반적인 문제는 중앙 제곱과 같은 함수가 역이되기는 어렵다는 사실을 '증명' 할 방법이었다. 다시 말해, 그것을 어떤 식으로 실행한다 해도 이 연산들에서의 최소값은 아주 큰 수이다. 이 문제로 인해 라빈은 주어진 계산을 수행하는 데 필요한 작업의 최소량, 즉 그 작업의 타고난 어려움을 전반적으로 조사하기에 이르렀다. 라빈이 지적한 바와 같이 물리학계에서는 이 개념이 상당히 직관적이다.
|
내가 이 탁자 위에 책을 한 권 가지고 있으며, 그 책을 천장 높이로 들어 올리고자 한다고 가정해 봅시다. 그렇게 하는 방법은 여러 가지가 있습니다. 우선, 그 책을 손으로 집어 들고 의자 위에 올라선 다음 책을 천장에 닿도록 들어 올리는 방법이 있겠지요. 아니면 도르래를 만들어 거기에 줄을 달아서 천장에 붙이고 책을 위로 끌어 당길 수도 있을 겁니다. 전기 모터 같은 것을 사용할 수도 있지요. 하지만 어떤 방법을 사용하더라도, 그 작업이 본래부터 요구하는 최소 작업량이 존재합니다. 말하자면, 책의 무게 곱하기 천장의 높이가 되겠지요. 그처럼 고유하게 내재된 어려움을 정의하는 것이 바로 내가 계산 작업에 대해 시도한 일입니다. |
이 아이디어가 어떻게 적용되어 왔는지를 쉽게 설명하기 위해 한 가지 게임을 예로 들어 보자. 그 게임에서는 예 또는 아니오로만 대답할 수 있는 질문들을 이용해서 다른 누군가가 생각하고 있는 1 과 1000 사이의 어떤 숫자를 맞춰야 한다. 잘 알려져 있는 한 가지 전략은 그 숫자가 500 보다 큰지 여부를 묻는 것이다. 그렇다고 대답하면 다시 그 수가 750 보다 큰가를 묻고, 아니라고 하면 250 보다 작은가를 묻는 식으로 계속 질문을 해 나간다. 각각의 질문은 가능성의 집합을 절반으로 줄인다. 이러한 전략을 '2 진 검색 (binary search)' 이라고 한다.
2 진 검색 전략을 이용하면 이 게임에서 확실한 답을 알 게 될 때까지 10 회의 질문을 해야 한다. 독자들은 아마 보다 빠른 결과를 얻을 전략이 없을까하고 생각할 것이다. 가능성의 집합을 매번 절반으로 줄여 준다는 보장이 없는 어떤 다른 전략을 선택한다고 상상해보자. 예를 들어, 맨 먼저 그 수가 100 보다 작은가를 물을 수 있을 것이다. 만일, 상대방이 예라고 답한다면 10 번 미만의 질문으로 정확한 수를 알아낼 수 있을 것이다. 반면에 운이 나빠 상대편 대화자가 아니라고 답할 수도 있다. 그것은 결국 그 수가 100 과 1000 사이의 어떤 수라는 것을 의미한다. 따라서, 우리가 기대할 수 있는 최상의 '보장된' 결과는 단 한 번의 예 아니오식 질문으로 처음의 가능한 집합을 절반으로 줄여 주는 것임을 보여줄 수 있다. 여기서 10 이 바로 정확한 답을 보장하는 데 필요한 예 아니오식 질문이 최소 횟수라는 결론이 나온다. 따라서, 이것이 바로 필요한 최소 작업량이다.
|
난 그 측정 (계산의 난이도) 이 어떻게 정의되거나 혹은 어떻게 사용되고 있다고 해도 항상 계산하기가 아주 아주 어려운 계산 가능 함수들, 즉 그 측정치의 관점에서 아주 많은 작업량을 요구하는 함수들이 존재한다는 것을 보여 주었습니다. 결국 나는 함수나 계산이 실제로 그 고유한 난이도의 측면에서 상이하기 때문에 그것이 의미있는 개념이라는 것을 입증한 것이지요. |
라빈은 예일 대학의 마이클 피셔 (Michael Fischer) 와 함께 이 이론을 사용하여 프레스버거 (Presburger) 산술이라 불리는 덧셈만 포함하는 수학 문제들을 검토하였다. 1930 년대에 폴란드의 수학자 M. 프레스버거 (Presburger) 는 자신의 시스템에서 문장의 참 거짓을 판별하는 것이 튜링 기계를 사용한 계산으로 가능함을 보여 주었다. 프레스버거는 이러한 계산들을 수행하는 데 얼마나 많은 수의 연산이 필요한가에 대해서는 상관하지 아낳고, 오로지 한정된 시간 내에 정확한 답을 찾을 수 있는가하는 문제에만 매달려 있었다.
라빈과 피셔는 프레스버거 산술에서 문장의 참이나 거짓을 판별하는 계산이 사실상 이중의 함수로서 실행이 불가능할 만큼 어렵다는 것을 보여 줄 수가 있었다. 단 100 개의 기호로 이루어진 문장들만으로도 1 조 대에 달하는 컴퓨터들을 바쁘게 만들 정도였으며, 이 때 그 각각의 컴퓨터들은 문제의 답에는 근접하지도 못하면서, 1 조 년에 걸쳐 초당 1 조 번의 연산을 실행하게 될 것이었다.
공교롭게도 프레스버거 산술의 정리 증명 프로그램 작성은 라빈이 그 문제에 대해 생각하고 있었던 바로 그 시기에 인공 지능 위원회의 한 목표로 설정되어 있었다.
|
정보 처리 국제 연맹에서 내게 스톡홀름에서 강의를 해 달라는 초청을 해 왔습니다. 난 그 강의의 제목을 '인공 지능에 대한 이론상의 장애' 라고 정했지요. 내가 강의를 한 것은 마침 닉슨이 사임하던 날 (1974 년) 이었습니다. 난 강의를 들으러 오는 사람이 없을 거라고 예상했지요. 실제로 내 앞 사람의 강의가 진행되는 동안 홀은 거의 비어 있었어요. 맞아, 닉슨 때문이지 하고 생각하고 있는데 갑자기 사람들이 몰려 들어오기 시작했습니다. 정말 놀라운 광경이었어요. 이렇게 하여 나는 아주 까다로운 프레스버거 산술과 같은 결과들을 설명하였습니다. 일부 AI 사람들이 정리 증명 프로그램들을 쓰고 있었는데, 아주 단순한 사례에서 그것이 전혀 가망 없는 것임을 입증하는 결과를 보여 준 것이었지요. 정리 증명을 연구하던 사람들은 몹시 애를 태우고 있었습니다. 그들이 내게 이럴 준 바에 의하면, 이것이 자금을 지원하는 기관들에 미칠 영향을 걱정하고 있었던 것입니다. 강의가 끝날 무렵에는 사람들이 마이크 앞에 줄지어 서서 내게 질문을 쏟아 붓기 시작했습니다. 그들이 원했던 것은 오로지 이것이 세상의 끝이 아니라는 말을 끌어 내는 것이었지요. |
라빈이 그 강의를 한 것과 거의 같은 시기에 스티브 쿡 (Steve Cook), 레오니드 레빈 (Leonid Levin), 리처드 카프 (Richard Karp) 세 사람은 각자 개별적으로 NP - 완전 문제 (쿡과 레빈의 장 참조) 라고 부르는, 난이도가 덜하긴 하지만 여전히 다루기 어려울 것으로 보이는 문제들의 거대한 집합을 확인하였다. 그 분야에는 비관적인 분위기가 드리워졌다. 마치 컴퓨터 과학 분야가 표면적으론 단순하지만 결정성 방법들로 해결하기엔 지나치게 어려운 문제들로 인해 그 한계가 그어지게 될 것처럼 보였다.
라빈은 문제들이 본래 타고나는 고유한 난이도에 대한 연구 과정을 통해 컴퓨터에서 고디우스의 매듭 (Gordian knot )을 묶는데 기여하였다. 다음으로는 일부 적합한 문제들에 해법을 제시함으로써 그 매듭을 자를 수 있는 아이디어를 제공하였다.
|
스톡홀름의 강의에서 나는 고유한 난이도에 대해 그와 같은 결과들이 주어질 때 무엇을 할 수 있는가라는 질문을 제기하였습니다. 난 완전한 확신을 가지고 결과나 답을 도출해 내려는 시도를 포기해야 한다고 주장하였습니다. 우리는 어떤 특정한 방식으로 임의성을 사용하여 보다 빠르면서도 오류의 확률은 적은 결과들을 얻어내야 합니다. 당시 (1974 년) 나는 그러한 방법의 실례들을 가지고 있었지만, 다소 인위적인 것들이었습니다. 1975 년 안식년을 맞아 M.I.T. 로 갔을 때 나는 우연히 게리 밀러 (Gary Miller) 가 제시한 결과를 보게 되었습니다. 그는 소위 리만 (Riemann) 의 가설이라고 하는 증명되지 않은 가정을 사용하면 평범한 결정성 알고리즘을 가지고 아주 큰 숫자들의 소수 여부 검사를 할 수 있다는 것을 보여 주었습니다. |
'소수 (prime)' 는 오로지 1 과 자기 자신으로만 나누어지는 정수이다. 예를 들면 2, 3, 5, 7 등이 소수이다. 15 라는 수는 자기 자신과 1, 3, 5 등으로 나누어지기 때문에 합성수이다. 밀러의 결과 수학자들에겐 중요한 의미를 가졌다. 기존에 가장 널리 알려져 있었던 방법들로는 어떤 수가 소수인지 아닌지를 알아내는 데 지나치게 많은 시간이 들었기 때문이다. 그 방법들을 사용하여 x 가 소수인지 여부를 판별하기 위해서는 1 과 x 의 제곱근 사이에 있는 숫자들의 유효소수부를 확인해야 했다.
라빈은 리만의 가설을 받아들여 그에 관한 개연적인 문장을 증명하였다. 그 결과는 당시 소수를 찾아 내는 가장 빠른 검사 방법이었고, 지금도 그것은 마찬가지이다.
소수 검사의 바탕에 갈린 발상은 어떤 수가 합성수임을 보여 주는 '증거 (witness)' 의 개념이다. 143 이라는 수를 생각해 보자. 만일, 13 이라는 수가 주어진다면, 143 을 13 으로 나누어 143 은 11 과 13 의 곱이므로 143 은 합성수라는 결론을 이끌어 낼 수 있다. 따라서, 13 은 143 이 합성수임을 증명하는 '증거' 가 된다. 또 하나의 인수인 11 도 마찬가지이다. 문제는 143 과 같은 많은 수들이 단지 몇 개 안되는 증거들만을 가지고 있다는 점이다. 그 증거들을 우연히 발견하기란 좀처럼 어려울 것으로 보인다.
|
난 합성수에 대한 또 한 가지 유형의 증거를 생각해 냈습니다. 어떤 수 n 에 대해 특정한 관계를 가지고 있는 수들이 바로 n 이 합성수라는 증거를 구성한다는 것이었지요. 합성수인 n 에 대해 우리는 1 과 n 사이에 있는 숫자들 가운데 최소한 4 분의 3 이 새로운 의미에서 n 이 합성수임을 보여 주는 증거가 된다는 것을 입증할 수 있습니다. |
라빈의 새로운 증거에는 소수의 밀도에 관련된 수 이론의 유력한 아이디어들 뿐만 아니라 밀러의 연구 결과도 사용되었다. 그 결과는 눈에 띄게 단순한 알고리즘이었다.
|
현재 n 이 소수인가를 판별하는 무작위화된 검사는 이런 식으로 진행되고 있습니다. 즉, 1 과 n 사이에서 임의로 150 개의 수를 택합니다. 그리고는 각각의 숫자들이 새로운 의미에서 n 이 합성수임을 보여주는 증거가 되는지 여부를 검사합니다. 선택돈 숫자들 가운데 단 하나라도 그 증거가 될 경우 n 이 소수가 아님을 알 수 있지요. 여기서 아주 새로운 특징은 선택된 숫자들 가운데 증거가 되는 것이 하나도 없을 경우 n 이 소수라고 확언할 수 있다는 점입니다. n 이 실제로 합성수인데 소수라고 잘못 선언하는 경우가 생길 수 있을까요? 그럴 수 있습니다. 하지만 이런 경우가 발생하려면 1 과 n 사이에서 기껏해야 4 분의 1 만이 증거가 안 되는 숫자들이라 해도 우리가 임의로 150 개의 숫자들을 뽑을 때마다 매번 증거가 안 되는 결과들이 나와야만 합니다. 이러한 일이 발생할 가능성은 전체적으로 무시해도 좋을 수준 (1072 에 한번 보다 작은 확률) 이지요. |
라빈은 그 접근 방식이 실험을 필요로 한다는 결론을 내려, 그것을 프로그래밍하겠다고 자원한 M.I.T. 의 동료 본 프래트 (Vaughn Pratt) 에게 그 알고리즘을 보여 주었다.
|
그렇게 해서 그는 프로그램을 만들었고, 우린 소수와 비소수로 알려져 있는 아주 큰 수들에 대해 그 프로그램을 시도하여 정확한 결과들을 얻었습니다. 그래서 이번엔 그 때까지 어떠한 노력으로도 접근할 수 없었던 수들을 가지고 시험해 보기로 했습니다. 본은 자신의 연구에 아주 열성적인 사람이었지요. 1975 년 겨울에는 한동안 늦은 밤까지 자신의 컴퓨터 단말기에 매달려 지냈습니다. 우리는 집에서 손님들을 많이 초대하고 평소처럼 라트케같은 요리들을 준비해 하누카 (Chanukah) 파티를 열고 있었는데, 자정이 가까울 무렵 전화가 걸려 왔지요. 마이클, 저 본입니다. 지금 실험 결과가 막 나오고 있어요. 연필하고 종이 좀 가져다 받아 적으세오. 그 때 그는 2400 - 593 이 소수라는 결과를 가지고 있었습니다. 300 보다 작은 모든 소수들의 곱 p 를 k 라고 표시합시다. 두 개의 수 k × 338 + 821 과 k × 338 + 823 은 (차이가 2 인 소수들) 쌍동이 소수들입니다. 이 수들은 당시 알려져 있는 최대의 쌍둥이 소수들이었지요. 난 머리카락이 곤두서는 것만 같았습니다. 그건 믿기 어려운 사실이었지요. 정말 믿기질 않았어요. |
아마 극히 큰 소수들을 보고 오싹한 느낌을 가질 수 있는 건 수학자들 뿐일 것이며, 그 외의 사람들은 단지 그 소수들이 그들에게 어떤 보편적인 특성을 갖는다는 것을 이해하는 것으로 그칠 것이다. 그것들은 아주 자연스러워 그 발견은 오랜 시간 속에 묻혀 버릴 것이다. 오늘날 그 숫자들은 태양계를 떠나 외계 문명을 탐사 중인 우주선 보이저 (Voydger) 에 우리가 암호로 입력시키는 메시지들에서 핵심적인 역할을 한다. 왜 소수들이 거기 있어야 하는가? 왜 그들 가운데 상대적으로 적은 수가 점점 더 큰 자리를 차지하게 되는 것일까? 왜 그들의 분배에서 용이한 패턴이 있을 것처럼 보이지 않는 것일까? 이 밖에도 많은 질문들이 제기되고 있으며, 모든 수학자들이 소수와 관련된 기본적인 발견을 갈망하고 있다. 프래트와 라빈이 시도했던 것이 바로 그 일이었다. 하지만 무작위화 (randomization) 가 그 이상의 것을 이루어 낼 수 있었을까?
컴퓨터 과학의 문화에서는 한 가지 상황에 유효한 아이디어를 핵 (hack) 이라 부르며, 두 번 적용되는 아이디어를 트릭 (trick) 이라고 하고, 흔히 널리 사용되는 아이디어를 기술 (technique) 이라 부른다. 그러면 무작위화는 어디에 속할까? 라빈은 그 발견을 한 후 곧바로 카네기 멜런 대학에서 그것에 관한 강의를 하였다.
|
강의를 마친 후 나는 홀에 서 있었고 나를 에워싼 사람들은 강의가 아주 훌륭했다고 칭찬을 했지만, 한 가지를 제외하고 견해의 일치를 보인 점은 이것이 아주 특별하며 내가 특정하게 한정된 소수의 속성들을 사용하고 있다는 것이었습니다. 말하자면, 내가 이 두 가지 특정한 문제의 해법을 얻기 위해 연구하고 있었던 기하학 문제들의 증거와 특별한 속성들에 관한 정리들을 사용했다는 것이었지요. 이것은 사람들이 내게 말했던 것처럼 폭 넓은 용도를 갖고 있지는 않았습니다. 유일하게 반대 입장을 보인 것은 조 트라우브 (Joe Traub) (당시 카네기대의 컴퓨터 과학과 학과장으로 있었던 계산법의 이론가)였습니다. 그는 무작위화를 사용하면서 오류의 가능성을 허용하는 것은 새로운 출발이라고 말했습니다. |
트라우브가 옳았다. 무작위화는 계산 기하학 (로봇 공학과 제조업에 가장 밀접하게 연관된 알고리즘의 분야) 에서 분산형 컴퓨팅, 정보 검색, 암호학, 통신, 심지어 컴퓨터 해킹에 이르기까지 많은 응용 분야를 가지고 있었다. 하버드에서 학부 시절의 라빈의 학생이었던 로버트 타판 모리스 (Robert Tappan Morris) 는 1988 년 11 월 인터넷을 통한 그의 바이러스 전파를 돕는 데 무작위화를 사용하였다.
과학적으로 유리한 하나의 응용 프로그램에서 병렬 컴퓨터들에 광범위하게 연결된 특별한 목적의 네트워크들은 라빈의 하버드 동료 가운데 하나인 레즐리 밸리언트 (Leslie Valiant) 가 발견한 무작위화 알고리즘을 사용한다. 어떤 네트워크를 사용하는 직접적인 방법은 메시지를 그것의 원시 (source) 로부터 목적지 (destination) 로 곧바로 보내는 것이다. 밸리언트는 그 방법 대신 각각의 메시지를 먼저 원시에서 임의의 사이트로 보낸 다음, 그 사이트에서 목적지로 가도록하는 것이 회선 쟁탈 (교통 체증) 을 줄이는 방법이라는 걸 보여줄 수 있었다. 겉보기에 정신 나간 것처럼 보이는 그 안이 지원해야 할 것은 무작위성의 위력에 대한 증명이다.
무작위화의 응용에서 가장 흥분되고 또 논쟁 거리를 제공하는 문제는 암호학, 특히 '공용 키 암호계 (public-key cryptography)' 라고 알려져 있는 암호화 형식에 대한 것이다. 고전적인 암호화는 전용 키 방식을 사용한다. 송신자와 수신자가 동일한 키를 알고 있는 상태에서 송신자가 그 키를 가지고 메시지를 암호화하면 수신자가 동일한 키를 이용해 메시지를 해독하는 것이다. 전용 키 시스템의 문제는 송신자가 어떻게 해서든 그 키를 사전에 수신자에게 보내야 한다는 점이다. 이를 위해서는 심부름꾼이 필요한데, 그 사람은 붙잡히거나 매수당할 수도 있고 혹은 협박을 당하거나 행방불명이 될 수도 있다.
공용 키 암호계는 단방향 '트랩 도어 (trap-door)' 함수에 기초를 두고 있다. 그것은 일찍이 라빈이 매커시의 스파이 퍼즐을 푸는 데 사용했던 함수와 비슷한 효과를 가지는 것이다.공용 키 암호계에서는 X 라는 사람이 K1 이라는 키를 방송하여 누구든지 K1 으로 암호화한 메시지를 보내서 X 와 통신을 할 수 있도록 허용할 수 있다. 그러한 메시지를 해독할 수 있는 비밀 키 K2 는 오로지 X 혼자만 보유한다. K1 은 큰 소수들을 토대로 한 단방향 함수를 사용해서 만들어지기 때문에 X 를 제외하고는 어느 누구도 K2 를 알아낼 수 없다 (우리는 그렇게 생각한다). 이렇게 하는 과정에는 심부름꾼이 필요없기 때문에 전용 키 암호계에 비해 훨씬 더 동시 발생적인 통신 방식이 가능해진다.
미국에서 정부 기밀 보호와 타국의 암호 해독 업무를 담당하는 NSA, 즉 국가안전보장국 (National Security Agency) 에서는 오직 하나의 암호 체계만을 인정하였다. 그것은 NSA 와 IBM 이 공동 개발한 것으로, 전용 키를 구축하는 데이터 암호화 표준 (Data Encryption Standard) 이라는 방식이다. 이러한 NSA 측의 관여는 NSA 가 그 표준을 사용해 암호를 해독할 수 있는 능력을 가졌다고 의혹을 제기하는 비판을 불러 일으켰다.
1993 년 NSA 는 '백 도어 (back door)' 를 가지고 설계한 클리퍼 (Clipper) 라는 새로운 암호화 칩을 권장하였다. 모든 칩은 정부의 비밀 창고에 보유된 암호키를 갖게 될 것이다. 정부에서 어떤 메일을 읽고자 할 경우 그 키를 검색할 수 있게 해 주는 소환장을 청구할 수가 있다. 이에 대해 정부측에서 주장하는 정당화의 근거는 국가의 안보나 법률의 집행과 관련하여 자신들에겐 사적 메시지를 읽을 권리가 있다는 것이다. [AT & T 벨 연구소의 연구원 매튜 블레이즈 (Matthew Blaze) 는 1994 년 중반 사실상 클리퍼 기술이 법률 집행 당국이 해독할 수 없는 메시지를 암호함하는 데 사용될 수 있음을 보여 주었다. 여러분이 이것을 읽을 때쯤이면 이미 블레이즈의 관찰이 클리퍼를 토대로 한 시스템을 다른 제안으로 대체되게 만들었을 것이다.]
비평가들은 RSA, 즉 리베스트, 샤미르, 에이들먼 (Rivest, Shamir, and Adleman) 알고리즘이라 불리는 공용 키 암호화 방식을 선호한다. 이 알고리즘은 라빈 양식의 무작위화를 사용한다.
|
무엇보다도 소수 검사 자체가 이 공용 키 암호화 시스템에서 한 몫을 합니다. 이 시스템에는 아주 큰 소수들을 제출하는 것으로 출발을 하지요. 그와 같은 두 소수의 곱이 되는 숫자들이 공용 키를 구성합니다. RSA 알고리즘은 두 개의 큰 소수 P 와 Q 를 내보인 다음, P 와 Q 의 곱을 구하여 그것을 N 이라고 부릅니다. N 과 또 다른 어떤 수가 소위 공용 키가 되는 것이지요. RSA 방식은 누군가가 아주 큰 숫자들을 인수 분해하는 (예를 들어, N 이 주어졌을 때 P 와 Q 를 찾아 내는) 빠른 알고리즘을 찾아 낼 경우 해독이 가능해집니다. 하지만 우리는 과연 그와 같은 알고리즘이 존재하는지 알 수가 없습니다. 따라서, 그러한 방법의 실행 가능성은 증명되지 않은 인수 분해의 난이도에 따라 결정된다고 할 수 있습니다. |
인수 분해가 해독될 것인가 (혹은 해독되어 왔는가)? 라빈은 미소를 지어 보이지만, 곧이어 자신이 그 위험을 떠맡게 되는 것은 원치 않는다고 말한다.
라빈은 현재 하버드의 T. J. 왓슨 선임 교수 (T. J. Watson Sr. Professor) 이자 예루살렘에 있는 히브루 대학에서 수학과 컴퓨터 과학을 담당하는 알버트 아인스타인 교수로 있다. 그는 시간을 쪼개어 두 대학을 오가며 한 해를 보내지만 가족들은 그대로 예루살렘에 머물고 있다.
그의 아내는 이스라엘 사법부 국제담당 부서의 책임자로 일하고 있다. 그의 딸들 중 한 명은 변호사이며, 다른 하나는 컴퓨터 과학자로 분산형 시스템과 암호계에 무작위화를 적용시키는 연구를 하고 있다.
라빈 자신은 최근 대형 병렬 컴퓨터들에서 (높은 가능성을 가지고) 신뢰도를 입증하는 데 무작위화를 적요하는 연구를 진행 중이다. 이 연구를 위해 하나의 팀을 구성한 그는 주로 인도의 컴퓨터 과학자인 크리슈나 팔렘 (Krishna Palem) 과 파르타 다굽타 (Parrtha Dasgupta) 를 비롯해 두 명의 이스라엘인 요나탄 오만 (Yonatan Aumann), 츠비 케덤 (Zvi Kedem) 등과 함께 작업을 하고 있다. 일생에 걸쳐 라빈은 보는 사람으로 하여금 그가 어떤 한계를 느끼고 있는 것이 아닌가하는 의혹을 갖게 만들 만큼 아주 많은 다양한 영역에서 컴퓨터가 아주 많은 문제들을 해결할 수 있다는 사실을 보여주었다.
|
복잡한 작업들에 관해 이야기를 나눌 때면, 나는 우리가 현재로선 이해를 완전히 결여하고 있다는 생각을 합니다. 예를 들면, 인간의 기억이 어떻게 작용하는지에 관한 이해를 갖고 있지 못한 것입니다. 내가 만일 베토벤을 언급하면 곧바로 그것이 한 작곡가에 대해 말하고 있는 것임을 알 수 있습니다. 누군가가 메모리 구성 방법과 컴퓨터 프로그램을 구성할 수 있다면 그것으로 어떤 한정된 분야에서 이름들을 분류할 게 될 것입니다. 하지만 우리의 기억은 훨씬 더 복잡합니다. 거리를 걷다가 다소 지저분한 몰골을 한 사람을 보고는 갑자기 고등학교 시절 제대로 씻지 않아 기분을 거슬리게 만들던 옆자리의 누군가를 떠올릴 수도 있습니다. 그 역시 단순한 예입니다. 우리는 사물을 그 구조로 기억합니다. 스트레스를 받고 있는 어떤 사람을 보면서 완전히 다른 성격의 어떤 농담을 떠올릴 수도 있지요. 우리는 늘상 이러한 비약을 하면서 살고 있습니다. 우리는 어떤 방향으로 걸어가고 있는 사람을 뒤에서 보고는 제리도 바로 저랬었다고 말합니다. 좀처럼 실수를 하는 법이 없지요. 최소한 내 경우엔 거의 한 번도 실수를 하는 적이 없습니다. 따라서, 실제로 우리에게 필요한 것은 아주 아주 적다고 할 수 있습니다. 다만 그것이 우리에게 필요한 것은 아주 아주 적다고 할 수 있습니다. 다만 그것이 어떻게 이루어지는지를 우리가 알지 못하는 것뿐이지요. 나는 이것이 의식의 힘과 컴퓨터의 힘 사이에 존재하는 차이를 설명해야 한다고는 생각하지 않습니다. 그 문제는 단지 우리가 그것을 실행할 수 있는 컴퓨터 프로그램을 작성하는 방법을 모르고 있는 것뿐입니다. |