얼마 전 구글에서 슈퍼컴퓨터를 능가하는 양자컴퓨터를 만들었다는 소식이 전해졌습니다. 최고의 슈퍼컴퓨터로 1만 년이 걸리는 연산 작업을 단 200초 만에 계산했다는 얘기였습니다. 구글에서 만든 53개의 큐비트로 구성된 시커모어라는 양자컴퓨터 칩이 양자 우월성(quantum supremacy : 양자 컴퓨터가 기존 컴퓨터의 성능을 앞지르는 것을 뜻함)에 도달했다고도 이야기합니다. 나오는 용어들이 모두 낯설어 무슨 말인지 이해가 힘든 뉴스이기도 했지요. 과연 양자 컴퓨터란 무엇일까요?
이 질문에 답하기에 앞서 기존 컴퓨터가 어떤 한계를 가졌기에 새로운 컴퓨터가 필요한지를 살펴보도록 하지요.
초창기 컴퓨터에 비하면 현재의 컴퓨터는 엄청나게 빨라졌고, 크기는 더 작아졌지요. 이를 위해 엔지니어들은 컴퓨터의 중앙처리장치(CPU)와 메모리의 회로를 가능한 한 작게 만들기 위해 노력했습니다. 그 결과 현재 회로의 선폭은 불과 14nm(나노미터) 정도밖에 안 됩니다.
그런데 극도로 회로가 좁아지면 양자 터널링이라는 현상에 부딪힙니다. 양자 터널링은 쉽게 말해서 가로막은 장벽(정확하게는 포텐셜 에너지라고 함)을 전자(또는 그와 같은 작은 입자)가 그냥 통과해버리는 현상입니다. 미시세계에선 입자가 파동성을 가지게 되는데 이 파동의 확률함수에 따라 일정한 비율로 이런 믿기 어려운 현상이 일어나는 거지요. 물론 입자가 크거나 통과할 장벽이 아주 두꺼우면 거의 일어나지 않는 일입니다. 그러나 회로 선폭이 불과 원자 몇 개 정도가 되면 이런 현상은 아주 빈번하게 일어나게 됩니다. 그러다 보니 0 또는 1이라는 신호값이 원래의 의도와는 다르게 전달되는 경우가 생깁니다.
세상이 발전할수록 컴퓨터에 요구하는 성능은 계속 높아지고 이 요구를 수용하려면 선폭이 더 좁아질 수밖에 없습니다. 하지만 현재와 같은 속도로 선폭이 좁아지면 결국 이 양자 터널링 현상이 발목을 잡게 될 것으로 전문가들은 예상하고 있습니다. 이런 문제를 극복하기 위해 다양한 연구들이 진행되고 있고, 그중 하나가 양자 컴퓨터 개발인 것이지요.
이전에는 엄두도 못 내던 계산을 컴퓨터가 아주 수월하게 계산하게 된 것은 20세기의 대표적 성과입니다. 하지만 사람의 욕심이란 끝이 없는 걸까요? 컴퓨터에 맡겨지는 연산 요구는 컴퓨터의 성능 향상 속도보다 더 빠르게 증가하고 있습니다.
예를 들어 기상 관측을 하려면 우리나라의 수천 개가 넘는 기상 관측소에서 실시간으로 보내오는 풍향, 풍속, 기압, 습도 등의 정보와 인공위성과 이웃 나라의 실시간 기상 정보를 취합하여 아주 난이도가 높은 시뮬레이션을 해야 합니다. 일반 컴퓨터로는 도저히 할 수 없기에 기상청에는 슈퍼컴퓨터가 있습니다. 도로 교통을 예측하는 문제도 비슷하게 아주 많은 데이터를 아주 빠르게 처리해야 합니다. 유전공학이나 분자생물학, 소립자 물리 등 다양한 과학 분야에서도 이전보다 훨씬 많은 정보가 쏟아져 나오고 있습니다.
특히나 21세기 들어 빅데이터를 기반으로 한 인공지능이 대두되면서 데이터를 처리하고 이를 통해 학습하는 과정에서도 수없이 많은 계산이 요구되고 있지요. 기존의 슈퍼컴퓨터로도 감당이 되지 않아 연구가 중지되는 경우도 있습니다. 슈퍼컴퓨터의 성능이 아무리 좋아져도 항상 그보다 더 높은 요구를 감당하기 힘든 시점이 된 것이죠. 이 문제를 해결하기 위한 다양한 방안이 연구 중인데 그중 가장 유력한 것이 양자 컴퓨터입니다.
일반 컴퓨터는 비트를 기본 정보 단위로 쓰는데 이는 0과 1이라는 두 가지 상태 중 하나를 선택하는 것입니다. 실제로는 트랜지스터에서 전기가 통하느냐 그렇지 않으냐의 두 상태에 각각 0과 1을 부여합니다. 즉 한 개의 트랜지스터가 하나의 정보 단위가 됩니다. 이를 1비트(bit)라고 합니다. 따라서 트랜지스터가 두 개가 되면 00, 01, 10, 11이라는 네 가지 정보 중 하나를 선택할 수 있지요.
이에 대해 양자 컴퓨터는 큐비트(quantum bit: Qubit)라는 단위를 쓰는데 기본적으로 하나의 큐비트가 네 가지 정보를 담을 수 있습니다.
비트가 트랜지스터의 전류 허용 여부에 의해 결정되듯이 큐비트는 전자의 스핀 방향에 의해 결정됩니다. 스핀이라는 것은 전자의 회전 방향을 말하는데 (실제로 전자가 회전한다는 뜻은 아님) 그 방향이 주어진 자기장의 방향과 같은지 아니면 반대인지에 따라 0과 1로 주어지는 것이지요.
아주 작은 미시세계에서의 입자는 관측되기 전에는 두 가지 상태가 중첩된 형태로 존재합니다. 즉 오른쪽으로 도는 방향과 왼쪽으로 도는 방향이 있다고 할 때 둘 중 한 방향으로 돌고 있는데 관측되기 전에는 50%의 확률로 두 상태가 존재한다는 것이지요. 이를 양자 중첩이라고 합니다. 전자의 스핀은 앞서 말씀드린 것처럼 두 가지 상태가 있는데 관측 전에는 둘 다 확률적으로 존재하며 이 둘이 중첩된 상태인 것이지요. 그러다 연산을 하게 되면 큐비트를 관측하게 되고 이 관측을 통해 해당 큐비트는 0이든 1이든 결정이 됩니다.
기존의 비트는 00, 01, 10, 11 등의 상태에 2개의 숫자가 담깁니다. 즉 2개의 정보로 네 가지 상태를 표현할 수 있는 거지요. 그러나 큐비트의 경우 양자 중첩에 의해 확률로 존재하기 때문에 그 확률을 표현하는 계수를 포함하여 4개의 계수가 담기게 됩니다. 위 그림의 I0>, IΨ>, φ, I1>가 그 계수들입니다. 이를 네 개의 정보라고 볼 수 있습니다. 그래서 양자 중첩이 기존의 트랜지스터보다 2배 더 많은 연산을 할 수 있습니다.
이를 통해 기존의 컴퓨터 대비 2제곱 배 더 많은 연산을 하게 됩니다. 즉 10큐비트는 10비트에 비해 1000배 많은 연산을 하고, 20큐비트는 20비트에 비해 백만 배 많은 연산을 할 수 있는 거죠.
하지만 이런 특징을 가지고 양자컴퓨터가 잘 할 수 있는 일은 따로 있습니다. 앞서 말씀드린 것처럼 큐비트는 확률을 포함합니다. 이 확률을 통해 오답의 소거가 가능한 경우 굉장한 파워를 가지는 것이죠.
가령 10가지 경로 중 가장 빠른 길을 선택하는 문제라 한다면 기존 컴퓨터는 열 가지 길을 다 가봐야 어느 길이 가장 빠른지 알 수 있습니다. 그러나 양자 컴퓨터의 경우 열 가지 길을 각각의 확률로 배정하면 동시에 측정하여 가장 먼저 도달한 길을 답으로 내게 됩니다. 열 번 할 계산을 한 번에 해치우는 것이지요. 그러나 이렇게 각각의 확률값을 배정하는 방식이 아닌 단순 사칙연산 계산의 경우는 양자 컴퓨터도 기존 컴퓨터와 별 차이가 없습니다. 따라서 단순 계산 등의 연산에서는 기존 컴퓨터에 별 우위를 점하지 못합니다.
양자 컴퓨터가 잘 할 수 있는 일로 우선 소인수분해가 있습니다. 소인수란 어떤 수의 약수 중 소수(그 자신과 1 이외의 숫자로 나뉘지 않는 자연수)를 말합니다. 가령 10을 소인수 분해하면 2X5이니 2와 5가 소인수입니다. 12는 2의 제곱(4) 곱하기 3이니 2와 3이 소인수이지요. 27은 3의 세제곱이니 소인수는 3뿐입니다.
12의 소인수 정도는 쉽게 풀리지만, 숫자가 상당수 이상 커지면 문제가 좀 심각해지지요. 가령 12,345,903 같은 숫자를 소인수 분해하려면 2의 배수인지, 3의 배수인지 혹은 5의 배수인지를 일일이 따져봐야 합니다. 100 이하의 소수는 모두 25개입니다. 따라서 4자리 숫자는 일단 최소한 25개의 소수로 나눠서 딱 떨어지는지를 계산해봐야 아는 것이죠. 천 이하의 소수는 총 168개이고 만 이하의 소수는 1,229개입니다. 이렇게 자릿수가 하나 늘어날 때마다 해야 할 계산이 약 10배 증가합니다. 따라서 자릿수가 100개, 1000개 이런 식으로 늘어나면 성능 좋은 컴퓨터도 애를 먹을 수밖에 없습니다. 그런데 양자 컴퓨터의 확률을 활용하면 여러 소수가 오답인지 아닌지를 동시에 파악하여 계산 자체가 줄어들게 됩니다. 한 번에 열 개의 소수를 파악하면 계산이 10분의 1로 줄어들고 백 개의 소수를 파악하면 100분의 1로 줄어듭니다.
소인수분해 따위를 잘해서 무슨 소용이냐고 생각할 수 있지만, 현재 컴퓨터나 인터넷과 관련된 보안시스템의 알고리즘은 대부분 소인수분해를 기반으로 하고 있습니다. 가령 129자리 숫자를 소인수분해 하는데 1,600여 대의 워크스테이션으로 8개월이 걸렸습니다. 만약 250자리 수라면 80만 년이 걸리고 1000자리 수라면 1,025억 년이 걸립니다. 흔히 비밀번호를 등록할 때 길게 하는 게 좋다는 것은 이처럼 자릿수가 늘어나면 그 암호, 즉 비밀번호를 푸는데 훨씬 더 오랜 시간이 걸리고 결국 물리적으로 불가능해지기 때문입니다. 영어 외에 숫자와 특수 기호를 넣는 것도 경우의 수를 늘리기 위해서이지요. 하지만 양자 컴퓨터라면 앞서 말한 식의 확률을 통해 오답을 배제하는 방식을 쓸 수 있기 때문에 연산 자체가 확 줄어들 수 있습니다.
또한, 소인수분해 외에도 암호 알고리즘의 바탕이 되는 이산로그도 양자컴퓨터를 아주 잘 활용할 수 있는 영역입니다. 기본적으로 암호 알고리즘 자체가 기존의 컴퓨터로 푸는데 긴 시간이 걸리는 연산을 토대로 세워진 것인데 대부분 기존의 방정식으로 풀 수 없고 일일이 대입해서 풀어야 하는 방법을 토대로 하고 있지요. 이렇게 일일이 대입해서 정답과 오답을 가리는 문제에서 양자 컴퓨터는 대단히 좋은 대안이라고 볼 수 있습니다. 보안 문제뿐만 아니라 다양한 시뮬레이션도 마찬가지입니다. 교통상황이나 기후 상황처럼 초깃값이 조금만 바뀌어도 결과가 현격히 다르게 나타나는 문제들(이런 문제를 비선형 문제라고 함)을 푸는데 강력한 힘을 발휘할 것이라 여겨지는 것이죠.
구글이 양자 우월성을 증명해 보였다는 소식이 전해지자 암호화폐 관련 주가가 뚝 떨어진 것도 양자 컴퓨터가 가진 강력한 암호 파훼 능력이 두렵기 때문입니다. 하지만 아직 그리 크게 걱정할 단계는 아닙니다. 암호 알고리즘에는 양자 컴퓨터로도 파훼하기 어려운 것들이 있기도 하고요, 그것과는 무관하게 양자 컴퓨터의 실용화가 그리 쉽지는 않기 때문입니다. 현재 구글이나 IBM 마이크로소프트 등 IT업계의 대표적인 기업과 미국, 일본, 중국, 우리나라 등 각국이 연구에 나서고 있는 것은 사실이나 아직 실용화까지는 꽤 많은 난제들이 산적해 있습니다. 또한, 양자컴퓨터가 개발되어도, 양자컴퓨터가 잘 할 수 있는 것과 기존의 컴퓨터가 잘 할 수 있는 일이 다르기 때문에 상용화된다고 하더라도 기존의 컴퓨터와 서로 보완적 관계를 유지하게 될 것입니다.