아무런 규칙 없이 정해지는 수를 난수(亂數, Random Number)라고 한다. 주사위를 던지면 1부터 6까지 여섯 숫자 중에서 하나가 예측할 수 없는 방법으로 정해진다. 윷가락 하나를 던져 앞으로 바로 놓이면 0, 뒤로 엎어지면 1이라고 하자. 지금 윷가락 하나를 던지면 0이나 1이 나올 확률은 각각 50%씩이 되지만, 0이 될지 1이 될지 알 수 있는 방법이 없다. 이렇게 주사위나 윷을 던져 얻을 수 있지만 예측할 수 없는 숫자가 난수이다. 영어로는 ‘ Random Number’라고 하지만, 대한수학회 수학용어집에는 무작위수(無作爲數) 또는 난수, 한국물리학회 용어집에는 마구잡이수 또는 난수라고 되어 있다. 1995년 판 한국물리학회 용어집에는 막수라는 표현도 허용하고 있다. 주사위나 윷을 던지는 것처럼 난수를 만들어내는 과정을 확률과정(Random Process, 마구잡이과정, 무작위과정)이라고 한다.

 

고전적인 틀 안에서 결정되는 유사난수

  그러나 뉴턴의 고전물리학 틀 내에서는, 초기조건이 정해지면 물리학 법칙에 따라 그 이후의 모든 것이 결정론적으로 정해지므로, 엄밀한 의미에서 난수를 발생시킬 수 있는 방법이 없다. 그래서 난수가 필요한 경우, 진정한 난수 대신 난수처럼 보이는 유사난수(Pseudo Random Number)를 만들어서 사용한다. 초깃값(Seed)에 일정한 규칙을 적용하여 만들어지는 일련의 유사난수는, 제3자에게는 마구잡이로 만들어진 것처럼 보이지만, 아무런 규칙 없이 만들어진 것이 아니라 분명히 결정론적인 방법으로 만들어진다. 따라서 똑같은 초깃값을 쓰면 동일한 유사난수가 만들어지므로 예측할 수 없다는 난수의 개념에 맞지 않게 된다. 비선형동역학 연구에서 다루는 결정론적 혼돈(Deterministic Chaos)은 초기조건에 매우 민감하여 유사난수를 만들어내기에 적합한 방법이다.
  유사난수를 만드는 방법으로 잘 알려진 폰 노이만(Von Neumann)의 중앙제곱법은, 초깃값으로 N 자릿수의 자연수를 정하고, 이를 제곱하여 얻은 수의 가운데 N 자릿수의 자연수를 택하고, 이를 반복하는 방법으로 난수를 발생시킨다. 그런데 이 방법으로는 충분히 불규칙해 보이는 유사난수를 발생시키지 못하다는 것이 알려져 있다. 요즘은 다양한 유사난수발생기 또는 컴퓨터 프로그램이 개발되어 있어 제3자가 예측하기 거의 불가능한 유사난수를 만들어 내고, 이렇게 만들어진 유사난수가 얼마나 진정한 난수에 가까운 성질을 졌는지 판단하기 위한 난수판별방식들이 개발되고 있다.
  복권추첨 등에 쓰이는 난수발생기로는 부정행위 시비가 따를 수 있는 디지털 컴퓨터 방식을 쓰지 않고 구슬 뽑기나 활쏘기 같은 아날로그 방식을 쓴다. 디지털 방식으로 만들어지는 유사난수들은 비밀 보호를 위한 암호에도 쓰이고, 몬테카를로 방법이라고 하여 복잡한 계산이나 시뮬레이션을 간편하게 하기 위한 컴퓨터 프로그램에 많이 사용된다. 몬테카를로라는 이름은 확률과정을 표현하기 위하여 유명한 도박장이 있는 곳의 이름을 붙인 것이다.
  0과 1 사이의 실수(Real Number)로 된 난수 세 개씩을 한 묶음으로 발생시켜 점의 좌표 (x, y, z)를 나타내고, 이런 난수로 된 점을 100만개를 발생시켜 이 중에서 (1/2, 1/2, 1/2)로부터의 거리가 0.5보다 작은 점들의 수를 구하고 이를 100만으로 나누면, 반지름이 1/2인 구 부피의 어림값을 구할 수 있다. 물론 이런 간단한 계산은 손으로 하는 것이 훨씬 수월하겠지만, 차원이 높아지고 조건이 까다로워지면 몬테카를로 방법이 훨씬 수월해진다.
  두 사람이 비밀메시지를 주고받을 때에 가장 안전한 방식은 일회용 난수표 방식이다. 우선 Alice가 Bob에게 보낼 메시지(평문)를 부호화(Encoding)하여 일련의 이진법 숫자, 즉 0과 1로만 된 숫자 M(부호문)으로 만든다. 이제 이 숫자길이 만큼의 이진법 난수 K를 이진법 방식으로 더하여(Encryption, 암호화) E(암호문)를 만든다. 즉 각 자리마다 0+0 이나 1+1 처럼 같은 수를 더하면 0으로 하고, 0+1 이나 1+0처럼 다른 수를 더하면 1로 한다. 어떤 숫자에라도 난수를 더하면 난수가 된다. 즉 이젠 E도 K처럼 난수가 되었다. 이제 이 E를 B에게 보낸다. 이제 Bob은 E에 K를 더하여(Decryption, 암호해독) M을 구하고, 이를 복호화(Decoding)하여 원래의 메시지를 복원한다.

   이진법 덧셈: 0 + 0 = 1 + 1 = 0, 0 + 1 = 1 + 0 = 1, K + K = 0
   Alice: M + K = E ---> Bob
   Bob: E + K = (M + K) + K = M + (K + K) = M + 0 = M

  여기서 부호화나 복호화는 모르스 부호처럼 잘 알려진 프로토콜에 의해서 진행되지만, 암호화와 암호해독은 일회용 난수표를 가진 통신당사자들만 할 수 있다. 그래서 간첩 또는 스파이를 잡으면 대표적인 증거물로 제시되는 것이 일회용 난수표이다. 여기에 일회용이라는 단서가 붙는 이유는 비밀을 계속 유지하기 위해서는 단 한 번만 사용해야 하기 때문이다. 예를 들어 부호문 M1과 M2에 같은 난수 K를 더하여 암호문 E1과 E2를 만들면, 이 암호문은 누구라도 볼 수 있어서 E1과 E2를 더하여 M1과 M2 뿐 아니라 난수 K까지도 추정할 가능성이 생긴다.

   M1 + K = E1, M 2 + K = E2
   E1 + E2 = (M1 + K) + (M2 + K) = (M1 + M2) + (K + K) = M1 + M2

  여기서 완전히 불규칙해 보이는 E1이나 E2와 달리 M1이나 M2를 추정할 수 있으면,

   E1 + M1 = (M1 + K) + M1 = K

처럼 하여 비밀로 유지되어야 할 K를 추정할 가능성이 생긴다. 실제로 냉전초기 미국의 수소폭탄 비밀을 훔쳐 소련에 보낸 혐의를 받아 사형에 처해진 로젠버그 부부는 소련 정보당국의 실수로 같은 난수를 거듭 사용하다 꼬리가 잡혔다는 설이 있다.

 

AES방식의 대표적인 예, RSA

  요즘은 일정한 길이의 난수 초깃값을 두 통신 당사자가 가지고 있다가, 이를 그대로 재사용하는 것이 아니라, 한 번 쓸 때마다 재가공하여 새로운 유사난수를 만드는 방식으로 재활용하는 AES(Advanced Encryption System)방식 등이 쓰이고 있다. 일회용 난수표 방식은 두 통신 당사자가 똑같은 난수를 사용하므로 대칭암호방식이라고 한다. 이에 비해 송신자와 수신자가 서로 다른 방식으로 암호화 하고 암호해독하는 방식을 비대칭암호방식이라고 한다. 그 대표적인 것으로 발명자 세 사람 이름의 첫 글자를 딴 RSA방식이 있다. 즉 비밀메시지를 받기를 원하는 Bob이 세상 모든 사람들에게 똑같은 자물쇠를 나누어 주고, 이 자물쇠를 열 수 있는 열쇠는 자신만이 가지고 있다. 이 자물쇠를 공개키(Public Key)라 하고 열쇠를 비밀키(Secret Key)라고 한다. 자물쇠와 열쇠는 당연히 밀접한 상관관계가 있지만, 자물쇠를 가지고 있다고 해서 열쇠를 만들 수는 없다. 따라서 열쇠가 없어도 잠글 수는 있지만, 열쇠 없이는 열 수가 없다. 이런 관계를 수학적으로 일방향 함수(One-Way Function)라고 한다. RSA는 이런 비대칭적인 상관관계로 큰 수의 소인수분해를 택하였다.
  큰 소수(素數, Prime Number) P와 Q가 주어지면, 이 둘의 곱 N을 구하는 것은 쉽지만, N이 주어졌을 때 이를 소인수분해(素因數分解, Factoring)하여 P와 Q를 구하는 것은 매우 어렵다. RSA 방식은 말하자면 세상 모든 사람들에게 N을 알려서, 이 N으로 암호문을 만들어 자신에게 보내라고 하고, 이렇게 만들어진 암호문은 P와 Q를 알고 있는 자신만 풀 수 있게 한 것이다.

 

양자컴퓨터, 난수에 ‘병 주고 약 주고’

  지난 30여년간 RSA 방식은 디지털 정보시대의 보안에 큰 역할을 하여 왔지만, 양자컴퓨터의 등장 가능성으로 인해 위험에 처하게 되었다. 나는 양자물리학과 정보보안을 ‘병 주고 약 주는’ 관계로 이야기한다. 양자컴퓨터가 만들어지면 큰 수의 소인수분해 뿐 아니라 불가능에 가깝게 어렵다고 알려진 상당수의 수학 문제들이 쉽게 풀리게 되니 ‘병 주는’ 꼴이 되고, 어떠한 방식으로도 풀 수 없는 양자암호라는 새로운 방식의 암호방식을 주니 ‘약 주는’꼴이 된다. 여기서는 양자컴퓨터나 양자암호에 대해 길게 이야기할 수 없고, 양자물리학을 이용한 진정한 난수 발생방식에 대해 덧붙인다.
  앞에서 밝힌 것처럼 고전물리학의 틀 내에서는 모든 것이 결정론적이기 때문에 진정한 난수는 있을 수 없다. 난수처럼 보이는 유사난수는 규칙이 없고 혼란스러워 보이지만, 그 뒤에 알려지지 않은 규칙이 있다. 이에 비해 양자물리학의 측정은 완전히 확률적이다. 그럼 45도로 편광된 광자 한 개를 수평편광판에 통과시키려 하면 어떻게 될까? 광자는 반으로 쪼개지지는 않고, 통과하든지 말든지 두 가지 가능성 중 하나만 택하게 된다. 통과하는 것을 1, 통과하지 않는 것을 0으로 하면, 양자물리학에 의하면 이 과정에서 0이 될지 1이 될지 정할 수 있는 방법이 없고 확률만 50%씩이라는 것을 알 수 있다. 양자물리학 측정의 확률론적인 면을 못 마땅하게 생각한 아인슈타인 박사는 ‘신은 주사위 놀음을 하지 않는다’는 말로 불만을 표했다. 고전물리학에서 확률적이라는 것은 완전한 정보를 모르는 탓이고, 양자물리학 측정이 확률적인 것은 원리적인 셈이다. 양자물리학의 확률론적인 면을 고전물리학처럼 이해하기 위해, 부족한 정보를 채워서 생각하는 숨은 변수 이론(Hidden Variable Theory) 같은 것이 제안 되었지만 이를 검증하기 위한 벨의 부등식이 1964년에 제안되었고, 숨은 변수 이론은 실험적으로 완벽하게 부정되었다.
  모든 것에는 그렇게 되기 위한 이유가 있다는 인과론과 결정론 등은 뉴턴과 아인슈타인 등 물리학자 뿐 아니라 불교의 연기론 등에서도 엿보인다. 겉으로 보기에 아무런 규칙이 없어 보이는 현상을 보면, 사람들은 뭔가 그럴 수밖에 없는 까닭이 있을 것이라고 생각하고 그 까닭을 찾으려고 애쓴다. 그런데 사실은 우리로서는 정보가 부족하여 그 까닭을 도무지 알 수 없거나, 양자 측정처럼 원리적으로 확률론적인 경우가 있다. 믈로디노우(Mlodinow)가 쓴 <Drunkard's walk-how randomness rules our lives>를 보면, 사람들은 난수와 같이 확률론적인 현상에 대한 이해나 적응이 쉽지 않은 경우를 많이 볼 수 있다. 그래서 점을 치거나 도박에 중독되기도 하고, 말도 안 되는 음모론(Conspiracy Theory)에 빠지거나 황당한 사기에 걸려들기도 한다. 우리 교육 과정이 결정론적인 것뿐 아니라 확률론적인 것에 대한 이해를 넓힐 수 있는 기회 제공이 필요하다.

김재완
고등과학원
계산과학부 교수

 

 

저작권자 © 채널PNU 무단전재 및 재배포 금지