
2024년 12월 9일, 구글이 양자 칩 ‘윌로우’를 발표하자 갑자기 비트코인과 같은 암호화폐 가격이 5~10%가량 급락했습니다. ‘양자컴퓨터가 암호화폐의 보안체계를 위협한다’는 걱정때문에 발생한 일입니다. 왜 그와 같은 우려가 나왔는지, 정말로 암호화폐가 ‘해킹’당할 일이 발생할지 자세히 살펴봤습니다.

양자컴퓨터가 암호화폐에 어떤 위협인지 알기 위해선 우선 암호화폐에 대해 알아야 합니다. ‘비트코인’, ‘이더리움’처럼 특정 이름으로 더 익숙한 암호화폐는 블록체인 기술을 기반으로 만들어진 가상의 화폐입니다. 블록체인은 데이터를 분산 저장하고, 암호학적 기술을 이용해 데이터의 위변조를 방지하는 기술이죠.
블록체인의 핵심은 탈중앙화와 공공거래장부입니다. 현재 화폐 체계는 정부나 은행 등이 거래를 관리하고 이에 관한 책임을 지고 있습니다. 이를 중앙처리시스템이라 부릅니다. 그런데 2008년 세계 금융 위기 이후 이런 중앙처리시스템에 관한 의심과 회의가 불거져 나왔습니다. 그리고 그 대안으로 중앙이 아닌 모두에게 공증을 받는 체계인 블록체인 네트워크가 대두됐습니다. 블록체인 네트워크를 실현하는 것은 공공거래장부입니다. 특정 기간의 거래 내용이 기록된 블록을 연결해, 거래 내역을 분산 저장하는 방식입니다.
암호화폐의 핵심은 ‘암호’
암호화폐란 이름은 블록체인을 사용해 거래할 때 암호를 사용하기 때문에 붙었습니다. 비트코인은 ‘퍼블릭 블록체인’을 구현한 첫 번째 사례입니다. 비트코인이 사용하는 암호 기술은 총 3개가 있습니다.
첫 번째는 공개키 암호 기술입니다. 공개키 암호는 누구나 볼 수 있는 공개키와, 이에 대응하며 암호의 주인만 아는 개인키가 있는 구조입니다. 1976년, 미국의 암호학자 휘트필드 디피와 마틴 헬만이 최초로 공개키 암호 개념을 제시했습니다. doi: 10.1109/TIT.1976.1055638
비트코인에서는 거래 보안과 소유권 증명을 위해 공개키 암호가 사용됩니다. 비트코인 네트워크에서 누군가 거래를 만들면, 네트워크의 각 이용자(노드)가 이것이 올바른 거래인지 확인하는 유효성 검사를 합니다. 이중으로 거래가 이뤄진 것은 아닌지, 거래할 만큼 비트코인을 충분히 갖고 있는지 확인하죠. 또 전자 서명을 한 사람과 거래를 만든 사람이 동일한지를 공개키로 검증합니다. 만약 제가 비트코인으로 거래를 한다면 저는 제가 가진 개인키로 거래에 서명하는데, 수신자와 다른 이용자들은 공개키를 이용해 제 서명이 유효한지 검증하는 겁니다. 이때 서명 알고리즘이 사용됩니다. 비트코인은 과거 ‘타원 곡선 전자 서명 알고리즘(ECDSA)’을 사용했으나 2021년 11월, ‘슈노어 서명’을 도입했습니다.
두 번째는 블록체인에서 채굴 과정과 데이터 보호에 핵심적인 역할을 하는 ‘해시 함수(Hash Function)’입니다. 해시 함수란 입력값을 고정된 길이의 출력값(해시값)으로 변환하는 함수입니다. 해시 함수는 출력값 예측이 불가능하며, 입력값이 같으면 출력값이 항상 같고, 입력값에 아주 작은 변화가 생기면 아예 다른 출력값이 만들어지는 특징을 갖고 있습니다. 또한 출력값을 통해 원래의 입력값을 알 수 없으며 출력값은 조작할 수 없습니다. 이런 특성 덕분에 해시 함수는 데이터 변조를 방지하고, 블록체인의 보안을 강화하는 역할을 합니다. 대표적으로 비트코인은 ‘SHA-256’이란 해시 함수를 사용해서 블록의 해시값을 생성하고, 이를 작업 증명(PoW·Proof-of-Work) 알고리즘의 기반으로 활용합니다.

비트코인에서 블록은 거래 내역과 이전 블록의 해시값을 포함하는 장부 역할을 합니다. 새로운 거래 내역을 기록하려면 새로운 블록이 필요하죠. 블록체인에서는 이 블록을 아무나 추가할 수 없도록 PoW 규칙을 적용합니다. 누군가 새로운 블록을 추가하려면 특정 조건을 만족하는 해시값을 찾아야 합니다. 그런데 앞서 설명한 것처럼 해시값은 출력값을 통해 입력값을 알아낼 수 없습니다. 방법은 단 하나, 목표에 맞는 해시값이 나오는지 입력값을 무작위로 바꿔가며 연산을 반복하는 거죠. 이 과정을 PoW 알고리즘이라고 합니다.
코인을 ‘채굴’한다는 표현을 많이 들어봤을 겁니다. 채굴은 컴퓨터로 PoW를 수행하며 사용할 수 있는 새로운 블록을 생성하는 과정입니다. 비트코인은 이 계산의 문을 모두에게 열어두고, 블록을 찾은 이에게 코인을 지급합니다. 그러니, 높은 연산 능력을 갖춘 채굴자는 더 많은 양의 계산을 수행할 수 있고, 그만큼 블록을 생성할 확률도 높아집니다. 덕분에 PoW 기반 블록체인에서는 막대한 연산력은 곧 힘이며, 이는 블록체인의 보안을 강화하는 역할을 합니다. 해시 함수는 블록체인을 연결할 때도 사용됩니다. 각 블록의 해시값이 다음 블록의 헤더에 포함되기 때문입니다. 따라서 블록 하나를 조작하면 다음 블록의 해시값도 바뀝니다. 이 때문에 해시 함수는 블록체인 화폐의 변조 방지 역할을 합니다.
마지막으로는 ‘난수(random number) 생성’이 있습니다. 앞서 설명한 개인키는 비트코인의 보안성을 유지하기 위해 반드시 안전해야 하는데요. 이를 위해 개인키는 무작위 숫자로 만들어집니다. 절대 예측할 수 없게 하기 위해서요.
암호화폐의 공개키 암호 작동 방식과 해킹 위험


양자컴퓨터의 무기, 암호화폐 푸는 알고리즘
문제는 양자컴퓨터가 암호화폐의 다층적인 암호화 기술을 무력화할 수 있다는 데 있습니다. 우선 공개키 암호화 기술이 양자컴퓨터에 의해 공격을 받을 수 있습니다. 2021년 비트코인에 적용된 ‘슈노어 서명’은 여러 개의 서명을 하나로 합칠 수 있고, 서명 데이터 크기가 작아 거래 시 발생하는 수수료도 줄어든다는 장점이 있습니다. 또한 슈노어 서명은 거래의 유형을 숨길 수 있어, 블록체인 분석을 더 어렵게 만듭니다. 이는 사생활 보호를 강화하는 역할을 했고요. 그런데 이런 슈노어 서명이 양자컴퓨터에 취약하다는 우려가 제기됩니다.
많은 암호화 기술은 한 방향으로의 연산은 쉽게 할 수 있지만 그 반대 방향의 연산은 매우 어렵게 만드는 수학적 원리를 이용합니다. 슈노어 서명은 타원 곡선 암호화(ECC)에 기반하고 있습니다. ECC는 ‘이산 로그 문제’를 기반으로 만들어졌어요. 이산 로그는 실수에서 로그 개념을 군(group)으로 일반화한 것입니다. 이때 로그 값 계산은 쉽지만, 그 반대 과정인 이산 로그 값을 알아내는 것은 매우 어렵다는 성질을 활용한 문제입니다. 계산해야하는 숫자들이 커지면 컴퓨터가 이산 로그 값을 찾는 데는 수백만 년이 걸릴 수도 있습니다.
“소인수분해나 이산 로그 문제는 양자컴퓨터가 효율적으로 풀 수 있는 구조를 가지고 있어요.” 3월 7일, 연구실에서 만난 윤아람 이화여대 인공지능대 사이버보안학과 교수는 “양자컴퓨터가 모든 문제를 고전 컴퓨터보다 압도적으로 빨리 풀 수 있는 것은 아니지만, 주기 함수의 주기를 찾는 문제는 고전 컴퓨터보다 훨씬 빨리 해결할 수 있다”고 설명했습니다. ‘양자 푸리에 변환(QFT)’을 활용하면 숨겨진 주기를 매우 빠르게 찾을 수 있기 때문입니다. 이 방식이 바로 쇼어 알고리즘입니다. 쇼어 알고리즘은 인수분해와 이산 로그를 풀기 위한 대표적인 양자 알고리즘으로, 양자 중첩과 양자 병렬성을 가진 양자컴퓨터에서만 계산이 가능합니다. 1994년, 피터 쇼어 미국 매사추세츠공대(MIT) 수학과 교수가 처음 제안했죠. doi: 10.1109/SFCS.1994.365700
윤 교수는 “처음 쇼어 알고리즘이 제안됐을 때부터 이산 로그나 인수분해를 기반으로 한 암호가 양자컴퓨터와 만난다면 쉽게 깨질 수 있다는 것이 널리 알려져 있었다”고 말했습니다. 충분한 큐비트를 가진 양자컴퓨터는 여러 숫자를 동시에 계산할 수 있고, 함수의 주기를 효율적으로 찾을 수 있기 때문입니다. 결국, 비트코인을 해킹하려는 사람이 공개키를 활용해 누군가의 개인키를 역산해서 알아내는 게 가능해지고, 임의로 거래 서명을 조작할 수 있게 되는 거죠.
해시 함수를 위협하는 그로버(Grover) 알고리즘도 있습니다. “해시 함수에 대한 공격은 역상 공격과 충돌쌍 공격으로 나뉩니다.” 윤 교수는 그 중 특정 해시값이 주어졌을 때, 그 해시값을 갖는 입력값을 찾는 역상 공격이 암호화폐의 안정성에 직접적인 연관이 있다고 설명합니다.
그로버 알고리즘은 비선형 검색 문제를 푸는 양자 알고리즘입니다. 무작위 검색 속도를 획기적으로 향상한다는 특징이 있죠. 기존 컴퓨터에서 SHA-256을 역으로 풀려면 무려 2256번 계산을 해야합니다. 이는 1077번 수준이라 불가능에 가깝습니다. 하지만 그로버 알고리즘은 계산을 2128번으로 줄일 수 있습니다. 이는 2256에 비하면 엄청난 개선인 것이 사실이나, 여전히 매우 긴 시간이 필요한 연산량이어서 결과적으로 그로버 알고리즘은 쇼어 알고리즘만큼 위협적이지는 않습니다.
박수용 서강대 컴퓨터공학과 교수는 “그로버 알고리즘은 네트워크 전체 보안에 치명적인 영향을 미치지는 않는다”고 설명했습니다. 물론 오늘날의 양자컴퓨터로는 이런 알고리즘을 이용해 암호화폐를 해킹할 수 없습니다. 윤 교수는 “현재 널리 쓰이는 RSA나 이산 로그 기반 공개키 암호를 공격하기 위해 쇼어 알고리즘을 돌리려면, 최소 몇천 개에서 최대 몇만 개 정도의 논리적 큐비트가 필요하다”고 말합니다.
논리적 큐비트는 물리적 큐비트를 여러 개 엮어 양자 오류 정정 알고리즘을 구현한 시스템입니다. 큐비트가 외부와 상호작용하면서 오류가 생기더라도 그보다 더 빠르게 오류를 정정해 항구적으로 옳은 값을 만들어내는 양자 시스템이죠. 현재 양자컴퓨터는 논리적 큐비트에 도달하지 못했습니다. 고작 물리적 큐비트를 수십에서 천여 개 정도 확보했을 뿐이죠.
정리하자면 현재 양자컴퓨터 개발 수준으로는 아직 암호화폐를 해킹할 수 없습니다. 하지만 이산 로그나 인수분해 등 오늘날 암호에서 주로 사용되는 수학 연산을 쉽게 풀 수 있는 양자 알고리즘은 이미 존재합니다. 이른 시일 내에 양자컴퓨터가 폭발적인 발전을 이룬다면 암호화폐는 양자컴퓨터에 의해 해킹이 될 수도 있습니다.

양자 저항성을 가진 암호는 이미 준비됐다
일부 전문가들은 양자컴퓨터가 비트코인 등 암호화폐의 보안 체계에 위협이 될 거란 전망이 다소 과장됐다고 평가하기도 합니다. 홍원기 POSTECH 컴퓨터공학과 교수는 과학동아와의 e메일 인터뷰에서 “미국 국립표준기술연구소(NIST)에서 2016년부터 양자컴퓨터의 발전으로 인한 보안 위협에 대응하기 위한 암호 기술 표준화 작업을 진행했기에, 암호화폐부터 은행 계좌에서 사용하는 암호까지 모든 응용서비스에 문제가 없을 것”이라고 말했습니다.
양자컴퓨터 발전에도 암호가 안전성을 유지할 수 있을 때, ‘암호가 양자 저항성을 갖췄다’고 말합니다. 양자내성암호(PQC)가 그 주인공이죠. 양자 알고리즘에 의해 풀 수 없는 수학적 문제를 기반으로 설계됩니다.
대표적인 PQC 암호로는 격자 기반 암호가 있습니다. 격자란 정수 계수를 가진 벡터의 선형 조합으로 이뤄진 격자점의 집합입니다. 격자 문제는 주어진 격자에서 원점에 가장 가까운 비영 벡터(모든 좌표가 0이 아닌 벡터)를 찾는 문제 등이 있는데, 격자가 매우 높은 차원일 경우 이 값을 찾는 일은 양자컴퓨터로도 불가능합니다.
NIST는 PQC 표준화 작업을 위해 전 세계 암호학 전문가와 협력해 새로운 암호 알고리즘을 개발했습니다. 그리고 2024년 8월, NIST는 첫 번째 PQC 표준으로 세 가지 알고리즘(FIPS 203, 204, 205)을 공식 발표했습니다. 미국 국가안보국(NSA)이 2015년, 공개키 암호를 PQC로 전환하겠다는 계획을 발표한 후, NIST가 공모 사업을 진행한 결과입니다. 즉 암호는 한발 앞서 양자컴퓨터의 도래를 준비하고 있는 겁니다.
암호화폐를 이용하지 않는다고 해도 오늘날 암호화 기술은 다양한 산업과 분야에서 필수입니다. 앞서도 잠깐 말했지만, 우리가 온라인 결제를 하거나 인터넷 뱅킹을 할 때도 정보 보안과 데이터 보호를 위해 암호가 사용됩니다. 사물인터넷(IoT), 클라우드 데이터 보안을 위해서도 암호화 기술이 사용되죠. 인터넷을 통한 세금 신고 같은 행정 서비스에도 보안이 필수입니다.
양자컴퓨터 발전에 대비해 암호를 고도화하는 연구는 이 모든 분야에서 이뤄지고 있습니다. 도래하는 양자의 시대에도 우리는 다행히 두 발 뻗고 여러 서비스를 이용할 수 있겠습니다.
