<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>암호 해독 on kenji.blog</title><link>http://kenji.blog/ko/tags/%EC%95%94%ED%98%B8-%ED%95%B4%EB%8F%85/</link><description>Recent content in 암호 해독 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ko</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 05 Sep 2026 22:09:21 +0900</lastBuildDate><atom:link href="http://kenji.blog/ko/tags/%EC%95%94%ED%98%B8-%ED%95%B4%EB%8F%85/index.xml" rel="self" type="application/rss+xml"/><item><title>양자 컴퓨터는 정말 RSA 암호를 파괴할 것인가? ~쇼어의 알고리즘과 현재의 도달점~</title><link>http://kenji.blog/ko/p/shors-algorithm-and-rsa-breaking/</link><pubDate>Sat, 05 Sep 2026 22:09:21 +0900</pubDate><guid>http://kenji.blog/ko/p/shors-algorithm-and-rsa-breaking/</guid><description>&lt;img src="http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990.jpg" alt="Featured image of post 양자 컴퓨터는 정말 RSA 암호를 파괴할 것인가? ~쇼어의 알고리즘과 현재의 도달점~" />&lt;h2 id="시작하며-암호-기술과-양자-컴퓨터의-교차점">시작하며: 암호 기술과 양자 컴퓨터의 교차점
&lt;/h2>&lt;p>현대 인터넷 사회에서 통신의 비밀을 지키기 위한 기반이 되고 있는 것이 &amp;lsquo;공개키 암호&amp;rsquo;입니다. 그 중에서도 대표적인 것이 1977년 Ron Rivest, Adi Shamir, Leonard Adleman 세 사람에 의해 개발된 &amp;lsquo;RSA 암호&amp;rsquo;입니다. 우리가 매일 이용하는 온라인 쇼핑 결제, 웹사이트 열람(HTTPS), 이메일 송수신에 이르기까지 RSA 암호는 인터넷 인프라의 심장부로서 기능하고 있습니다.&lt;/p>
&lt;p>그러나 &amp;lsquo;양자 컴퓨터&amp;rsquo;의 등장으로 인해 이러한 안전성이 근본부터 뒤집힐 가능성이 지적되고 있습니다. 미디어에서는 &amp;ldquo;양자 컴퓨터가 완성되면 전 세계의 비밀번호나 암호가 몇 초 만에 해독되어 버린다&amp;quot;는 등 선정적인 헤드라인이 장식되기도 합니다. 과연 그것은 사실일까요?&lt;/p>
&lt;p>이 글에서는 고전적인 암호 해독 기법인 GNFS(일반 수체 체)와 양자 컴퓨터를 이용한 암호 해독 알고리즘의 결정판인 &amp;lsquo;쇼어의 알고리즘(Shor&amp;rsquo;&amp;rsquo;s Algorithm)&amp;lsquo;의 구조를 깊이 파헤쳐 봅니다. 양자 푸리에 변환이나 주기 발견과 같은 고도의 개념을 알기 쉽게 해설하고, 현재의 NISQ(Noisy Intermediate-Scale Quantum) 시대에 있어서 양자 하드웨어의 현황과, 실제로 RSA-2048을 깨기 위해 필요한 난관들에 대해 상세히 검증해 보겠습니다.&lt;/p>
&lt;hr>
&lt;h2 id="rsa-암호의-근간-소인수-분해의-어려움">RSA 암호의 근간: 소인수 분해의 어려움
&lt;/h2>&lt;p>RSA 암호의 안전성은 수학에서의 매우 단순한 비대칭성에 의존하고 있습니다. 그것은 &amp;ldquo;두 개의 거대한 소수를 곱하는 것은 간단하지만, 그 곱한 결과(합성수)로부터 원래의 두 소수를 찾아내는(소인수 분해하는) 것은 극히 어렵다&amp;quot;는 사실입니다.&lt;/p>
&lt;p>예를 들어, $ p = 61 $, $ q = 53 $ 이라는 두 개의 소수가 있다고 가정해 봅시다. 이 곱셈 $ N = p \times q = 3233 $ 을 계산하는 것은 순식간입니다. 하지만 &amp;lsquo;3233&amp;rsquo;이라는 숫자만 주어지고 &amp;ldquo;이것은 어느 소수와 어느 소수의 곱셈인가?&amp;ldquo;를 푸는 것은 숫자가 커질수록 계산량이 폭발적으로 증가합니다.&lt;/p>
&lt;p>현재 주류가 되고 있는 RSA-2048에서는 키 길이가 2048비트, 즉 10진수로 약 617자리에 달하는 거대한 합성수 $ N $ 이 사용되고 있습니다. 이 $ N $ 을 소인수 분해할 수 있다면, 암호는 해독된 거나 다름없게 됩니다.&lt;/p>
&lt;h3 id="고전-컴퓨터의-도전-gnfs-일반-수체-체">고전 컴퓨터의 도전: GNFS (일반 수체 체)
&lt;/h3>&lt;p>소인수 분해 문제를 풀기 위해 수학자나 암호학자들은 오랜 세월에 걸쳐 다양한 알고리즘을 개발해 왔습니다. 그 중에서도 고전 컴퓨터에서 현재 가장 빠르다고 여겨지는 것이 &lt;strong>일반 수체 체(GNFS: General Number Field Sieve)&lt;/strong> 입니다.&lt;/p>
&lt;p>GNFS는 거대한 수 $ N $ 을 소인수 분해하기 위해, 정수환에서의 계산을 더 추상적인 대수체(Number Field)로 확장하여 해석하는 기법입니다. 대략적인 흐름은 다음과 같습니다.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>다항식의 선택&lt;/strong> : $ N $ 을 근으로 가지는, 적절한 차수와 계수를 가진 다항식 $ f(x) $ 를 찾습니다.&lt;/li>
&lt;li>&lt;strong>데이터 수집(체질)&lt;/strong> : 유리수체 및 대수체 위에서, 작은 소수(매끄러운 수, Smooth numbers)로 분해될 수 있는 수의 쌍을 대량으로 탐색합니다. 이 과정이 &amp;lsquo;체질(Sieving)&amp;lsquo;이라 불리며 가장 많은 시간을 필요로 하는 부분입니다.&lt;/li>
&lt;li>&lt;strong>행렬의 생성과 축약&lt;/strong> : 수집한 관계식을 바탕으로 거대한 희소 행렬(성분의 대부분이 0인 행렬)을 생성하고, 선형대수학적 기법(블록 란초스 방법 등)을 사용하여 해를 구합니다.&lt;/li>
&lt;li>&lt;strong>제곱근의 계산&lt;/strong> : 마지막으로 대수체 위에서 제곱근을 계산하여, $ N $ 의 인수(소인수)를 도출해 냅니다.&lt;/li>
&lt;/ol>
&lt;p>GNFS의 계산량은 점근적으로 $ O(\exp((\sqrt[3]{\frac{64}{9}} + o(1)) (\log N)^{\frac{1}{3}} (\log \log N)^{\frac{2}{3}})) $ 로 평가됩니다. 이는 &amp;lsquo;준지수함수적(Sub-exponential)&amp;rsquo; 시간 계산량이라 불립니다. 지수 시간보다는 빠르지만, 다항 시간(Polynomial time)보다는 훨씬 느린 계산량입니다.&lt;/p>
&lt;p>실제로 2020년에는 국제적인 연구팀이 GNFS를 사용하여 RSA-250(829비트, 250자리 합성수)의 소인수 분해에 성공했습니다. 이 계산에는 전 세계의 컴퓨터 자원을 끌어모아 약 2700 CPU 코어 연도라는 방대한 계산 시간을 소모했습니다. 그러나 이것이 2048비트가 되면, 필요한 계산량은 우주의 수명의 수조 배로 부풀어 오른다고 언급되고 있어, 현재의 슈퍼컴퓨터를 아무리 병렬로 가동시킨다 해도 고전적인 기법으로는 현실적인 시간 내에 해독하는 것이 불가능합니다.&lt;/p>
&lt;hr>
&lt;h2 id="양자-컴퓨터의-비장의-카드-쇼어의-알고리즘">양자 컴퓨터의 비장의 카드: 쇼어의 알고리즘
&lt;/h2>&lt;p>여기서 등장하는 것이 1994년 피터 쇼어(Peter Shor)에 의해 발표된 &amp;lsquo;쇼어의 알고리즘&amp;rsquo;입니다. 이 알고리즘은 소인수 분해 문제를 양자 컴퓨터 상에서 &lt;strong>다항 시간&lt;/strong> ( $ O((\log N)^3) $ ) 안에 풀 수 있다는 획기적인 것이었습니다. 준지수함수적 시간과 다항 시간의 차이는 결정적인 것이며, 이론상 양자 컴퓨터를 사용하면 RSA 암호는 완전히 파괴됨을 의미합니다.&lt;/p>
&lt;h3 id="쇼어의-알고리즘의-전체-흐름">쇼어의 알고리즘의 전체 흐름
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[소인수 분해하고 싶은 수 N을 입력] --&amp;gt; B[랜덤한 정수 a를 선택]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{a와 N의&amp;lt;br&amp;gt;최대공약수}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|1보다 크다| D[운 좋게 소인수를 발견!]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|1 즉, 서로소| E[양자 컴퓨터의 차례]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt; F[함수 f_x = a^x mod N 의&amp;lt;br&amp;gt;주기 r을 양자 푸리에 변환으로 구함]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G{주기 r이 짝수 이고&amp;lt;br&amp;gt;a^r/2 ≢ -1 mod N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|Yes| H[최대공약수 gcd_a^r/2 ± 1, N 을 계산]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I((소인수 분해 성공!))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|No| B
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>쇼어의 알고리즘은 소인수 분해라는 문제를 직접 푸는 것이 아니라, 정수론의 정리를 이용하여 &amp;lsquo;주기 발견 문제(Period Finding Problem)&amp;lsquo;라는 별개의 문제로 변환하고, 그것을 양자 컴퓨터의 특성을 살려 고속으로 푸는 접근법을 취합니다.&lt;/p>
&lt;h3 id="단계-1-소인수-분해에서-주기-발견-문제로의-환원-고전적-처리">단계 1: 소인수 분해에서 주기 발견 문제로의 환원 (고전적 처리)
&lt;/h3>&lt;p>알고리즘의 첫 단계는 고전 컴퓨터에서 이루어집니다.
소인수 분해하고자 하는 수 $ N $ 에 대해, $ N $ 과 서로소인(최대공약수가 1인) 랜덤한 정수 $ a $ ( $ 1 &lt; a &lt; N $ )를 선택합니다. 만약 우연히도 최대공약수가 1이 아니라면, 그 시점에서 찾은 공약수가 $ N $ 의 소인수이므로 해독 완료이지만 확률은 극히 낮습니다.&lt;/p>
&lt;p>다음으로 이하의 모듈로 방정식 수열을 생각합니다.
$ f(x) = a^x \pmod N $&lt;/p>
&lt;p>이 함수 $ f(x) $ 에 $ x = 1, 2, 3, \dots $ 를 대입해 가면 값은 무작위인 것처럼 보이지만, 유한한 범위 내에서 계산하고 있기 때문에 반드시 어딘가에서 원래 값으로 돌아오고 같은 수열을 반복합니다. 이 반복의 주기를 $ r $ 이라고 부릅니다. 즉,
$ a^r \equiv 1 \pmod N $
이 되는 최소의 양의 정수 $ r $ 을 찾는 문제, 이것이 &amp;lsquo;주기 발견 문제&amp;rsquo;입니다.&lt;/p>
&lt;p>만약 이 주기 $ r $ 이 발견되고 $ r $ 이 짝수라면, $ a^r - 1 \equiv 0 \pmod N $ 이 되어 인수 분해 공식을 사용하여
$ (a^{r/2} - 1)(a^{r/2} + 1) \equiv 0 \pmod N $
와 같이 변형할 수 있습니다. 여기서 유클리드 호제법을 사용하여 $ N $ 과 $ a^{r/2} \pm 1 $ 의 최대공약수를 계산함으로써, $ N $ 의 소인수를 극히 높은 확률로 얻을 수 있습니다.&lt;/p>
&lt;p>고전 컴퓨터로 주기 $ r $ 을 찾기 위해서는 결국 지수 시간적인 단계가 필요해져 고속화할 수 없습니다. 하지만 양자 컴퓨터라면 이 주기 $ r $ 을 순식간에(다항 시간 안에) 찾을 수 있는 것입니다.&lt;/p>
&lt;h3 id="단계-2-양자-상태의-준비와-중첩">단계 2: 양자 상태의 준비와 중첩
&lt;/h3>&lt;p>여기서부터 양자 컴퓨터가 나설 차례입니다.
양자 컴퓨터는 &amp;lsquo;0&amp;rsquo;과 &amp;lsquo;1&amp;rsquo;의 상태를 동시에 가질 수 있는 &amp;lsquo;양자 비트(Qubit)&amp;lsquo;를 사용합니다. 쇼어의 알고리즘에서는 입력을 저장하는 레지스터(제1 레지스터)와 계산 결과를 저장하는 레지스터(제2 레지스터) 두 가지를 준비합니다.&lt;/p>
&lt;p>먼저 아다마르 게이트(Hadamard gate)라 불리는 양자 게이트 조작을 제1 레지스터의 모든 양자 비트에 적용합니다. 이로써 제1 레지스터는 생각할 수 있는 모든 $ x $ 의 값( $ 0 $ 부터 $ 2^n-1 $ 까지. $ n $ 은 충분히 큰 비트 수)의 &lt;strong>균등한 중첩 상태&lt;/strong> 가 됩니다.&lt;/p>
&lt;p>즉, 양자 컴퓨터의 내부에는 $ x=0, 1, 2, 3, \dots $ 이라는 무수한 입력값이 동시에 병행하여 존재하고 있는 상태가 만들어집니다.&lt;/p>
&lt;h3 id="단계-3-양자-모듈로-거듭제곱-quantum-modular-exponentiation">단계 3: 양자 모듈로 거듭제곱 (Quantum Modular Exponentiation)
&lt;/h3>&lt;p>다음으로 제1 레지스터의 중첩 상태를 입력으로 하여 $ f(x) = a^x \pmod N $ 을 계산하고, 그 결과를 제2 레지스터에 저장합니다.
이 계산은 양자 회로 상의 유니터리 변환으로서 실행되기 때문에, 중첩이 유지된 채 모든 $ x $ 에 대한 $ f(x) $ 의 계산이 &amp;lsquo;동시 병행적으로(양자 병렬성)&amp;rsquo; 이루어집니다.&lt;/p>
&lt;p>이 시점에서의 양자 시스템 전체의 공간은,
$ |x, a^x \bmod N\rangle $
이라는 상태의 방대한 중첩으로 되어 있습니다.&lt;/p>
&lt;p>그러나 여기서 단순히 제2 레지스터를 측정(관측)해 버리면, 랜덤한 $ a^x \bmod N $ 의 값이 단 하나만 확률적으로 선택되고, 그에 연동되어 제1 레지스터의 $ x $ 도 하나로 확정되어 버립니다. 이래서는 고전 컴퓨터로 한 번 계산한 것과 다를 바 없어, 주기 $ r $ 을 찾을 수 없습니다.&lt;/p>
&lt;p>양자역학의 규칙에서는 중첩 상태의 내용을 직접 들여다보는 것은 불가능합니다. 그렇다면 어떻게 전체의 &amp;lsquo;주기&amp;rsquo;라는 전역적인(global) 정보를 추출하는 것일까요?&lt;/p>
&lt;h3 id="단계-4-양자-푸리에-변환-qft-quantum-fourier-transform">단계 4: 양자 푸리에 변환 (QFT: Quantum Fourier Transform)
&lt;/h3>&lt;p>이 벽을 돌파하는 쇼어 알고리즘의 진면목이 바로 제1 레지스터에 대한 &lt;strong>양자 푸리에 변환(QFT)&lt;/strong> 의 적용입니다.&lt;/p>
&lt;p>측정을 실시하기 전에, 함수 $ f(x) $ 의 파동적 성질을 해석합니다. 제2 레지스터를 관측했다고 가정해 봅시다. 어떤 값 $ y $ 를 얻었다고 합시다. 그러면 제1 레지스터의 상태는 &amp;ldquo;$ a^x \pmod N = y $ 가 되는 모든 $ x $ 의 중첩&amp;quot;으로 수축됩니다.
이 $ x $ 의 값은 $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \dots $ 와 같이 주기 $ r $ 의 간격으로 이산적으로 나열된 상태(일종의 빗 모양의 확률 진폭 분포)가 됩니다.&lt;/p>
&lt;p>이 상태에 대해 양자 푸리에 변환(QFT)을 적용합니다. 고전적인 이산 푸리에 변환이 시간 영역의 신호를 주파수 영역으로 변환하듯이, QFT는 양자 상태의 확률 진폭에 간섭을 일으킵니다.&lt;/p>
&lt;p>QFT를 걸면 양자 간섭 효과에 의해 주기 $ r $ 과 공명하지 않는(위상이 맞지 않는) 잘못된 답의 확률은 서로 상쇄되어 0에 가까워지고(상쇄 간섭), 주기 $ r $ 의 정보를 가진 올바른 답의 확률만이 증폭됩니다(보강 간섭).&lt;/p>
&lt;h3 id="단계-5-측정과-연분수-전개-고전적-후처리">단계 5: 측정과 연분수 전개 (고전적 후처리)
&lt;/h3>&lt;p>QFT 적용 후에 제1 레지스터를 측정하면, 매우 높은 확률로 $ c \approx \frac{j \cdot 2^n}{r} $ 이라는 형태에 가까운 정수 $ c $ 를 얻게 됩니다( $ j $ 는 미지의 정수, $ 2^n $ 은 레지스터의 크기).&lt;/p>
&lt;p>이 측정 결과 $ c $ 를 고전 컴퓨터로 가져와서 $ \frac{c}{2^n} \approx \frac{j}{r} $ 이라는 분수를 만듭니다. 그리고 수학적 기법인 &amp;lsquo;연분수 전개(Continued fraction expansion)&amp;lsquo;를 사용하여 근사치를 계산함으로써 분모인 주기 $ r $ 을 멋지게 찾아낼 수 있습니다.&lt;/p>
&lt;p>$ r $ 을 알게 되면, 남은 것은 단계 1의 공식을 사용하여 $ N $ 의 소인수를 계산하기만 하면 되며 RSA 암호는 완전히 해독됩니다.&lt;/p>
&lt;hr>
&lt;h2 id="현재의-양자-컴퓨터nisq의-실력과-과제">현재의 양자 컴퓨터(NISQ)의 실력과 과제
&lt;/h2>&lt;p>이론적으로는 완벽한 쇼어의 알고리즘이지만, &amp;ldquo;내일이라도 당장 RSA 암호가 깨지는가?&amp;ldquo;라고 묻는다면 답은 명확히 &amp;ldquo;아니오&amp;quot;입니다. 그 이유는 현재의 양자 컴퓨터의 하드웨어 기술의 한계에 있습니다.&lt;/p>
&lt;h3 id="nisq-noisy-intermediate-scale-quantum-시대">NISQ (Noisy Intermediate-Scale Quantum) 시대
&lt;/h3>&lt;p>현재 우리가 살고 있는 것은 &amp;lsquo;NISQ&amp;rsquo;라 불리는 시대입니다. NISQ 디바이스는 수십에서 수백 개의 물리 양자 비트를 가지지만, 노이즈에 대해 극히 취약합니다.&lt;/p>
&lt;p>양자 비트는 열이나 전자파 등의 외부 환경의 영향을 받기 쉬워, 양자 상태가 깨져 버리는 &amp;lsquo;결어긋남(Decoherence, 양자 얽힘 상실)&amp;lsquo;이나 게이트 조작 시의 &amp;lsquo;게이트 에러&amp;rsquo;가 빈번하게 발생합니다. 쇼어의 알고리즘과 같이 매우 깊은(연산 단계 수가 방대한) 양자 회로를 실행하려고 하면, 계산 도중에 에러가 축적되어 최종적인 출력은 의미를 가지지 않는 완전한 노이즈가 되어 버립니다.&lt;/p>
&lt;h3 id="물리-양자-비트와-논리-양자-비트">물리 양자 비트와 논리 양자 비트
&lt;/h3>&lt;p>이 에러 문제를 해결하기 위해 필수불가결한 것이 &amp;lsquo;양자 오류 정정(Quantum Error Correction)&amp;lsquo;입니다.
고전 컴퓨터에서도 오류 정정 코드가 사용되고 있지만, 양자 상태의 복제를 금지하는 &amp;lsquo;복제 불가능성 정리(No-cloning theorem)&amp;lsquo;가 있기 때문에 양자 오류 정정은 매우 복잡합니다.&lt;/p>
&lt;p>양자 오류 정정에서는 &amp;lsquo;표면 부호(Surface Code)&amp;rsquo; 등의 기술을 이용하여, 다수의 노이즈투성이인 &amp;lsquo;물리 양자 비트&amp;rsquo;를 조합함으로써 에러가 없는 이상적인 하나의 &amp;lsquo;논리 양자 비트&amp;rsquo;를 만들어 냅니다.&lt;/p>
&lt;p>현재의 에러율을 전제로 하면, 하나의 논리 양자 비트를 만들기 위해서는 약 1,000～10,000개의 물리 양자 비트가 필요해진다고 추산되고 있습니다. 이를 &amp;lsquo;오류 정정의 오버헤드&amp;rsquo;라고 부릅니다.&lt;/p>
&lt;h3 id="rsa-2048을-파괴하기-위해-필요한-자원이란">RSA-2048을 파괴하기 위해 필요한 자원이란?
&lt;/h3>&lt;p>그렇다면 실제로 RSA-2048을 해독하기 위해, 쇼어의 알고리즘을 구동시키려면 어느 정도의 자원이 필요할까요?&lt;/p>
&lt;p>Craig Gidney (Google) 와 Martin Ekerå 의 2021년 논문에 따른 획기적인 자원 추정에 의하면, 최적화된 쇼어의 알고리즘을 사용하고 표면 부호에 의한 오류 정정을 수행할 경우 다음과 같은 자원이 필요하다고 합니다.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>논리 양자 비트 수&lt;/strong> : 약 4,096 개&lt;/li>
&lt;li>&lt;strong>물리 양자 비트 수 ** : ** 약 2000만 개&lt;/strong> (에러율 $10^{-3}$ 정도를 가정)&lt;/li>
&lt;li>&lt;strong>계산 시간&lt;/strong> : 약 8시간 (물리 게이트 조작이 수백만～수십억 회 필요)&lt;/li>
&lt;/ul>
&lt;p>이에 반해, 현재의 양자 하드웨어의 도달점은 어떨까요?
2023년 말에 IBM이 발표한 초전도 양자 프로세서 &amp;lsquo;Condor(콘도르)&amp;lsquo;는 1,121 양자 비트입니다. 또한 논리 양자 비트의 생성과 관련된 획기적인 연구(하버드 대학이나 QuEra사 등에 의한 중성 원자 양자 컴퓨터를 이용한 48개의 논리 양자 비트 생성 등)도 등장하고 있지만, 아직 &amp;ldquo;노이즈 없는 완벽한 연산&amp;quot;을 장시간 연속으로 실행할 수 있는 단계에는 이르지 못했습니다.&lt;/p>
&lt;p>수천 개의 물리 양자 비트에서 &lt;strong>2000만 개&lt;/strong> 의 실용적인 물리 양자 비트(게다가 상호 결선되어 극저온에서 안정적으로 동작하고 초고속으로 제어 신호를 처리할 수 있는 시스템)로의 스케일업은 공학적으로 엄청난 장벽(배선 문제, 냉각 능력의 한계, 제어 전자장치의 비대화)이 존재합니다. 많은 전문가들은 RSA-2048을 해독할 수 있는 &amp;lsquo;결함 허용(Fault-Tolerant) 양자 컴퓨터(FTQC)&amp;lsquo;가 실현되려면 적어도 10년에서 30년, 혹은 그 이상의 세월이 필요하다고 예측하고 있습니다.&lt;/p>
&lt;hr>
&lt;h2 id="다가오는-store-now-decrypt-later의-위협과-pqc의-여명">다가오는 &amp;lsquo;Store Now, Decrypt Later&amp;rsquo;의 위협과 PQC의 여명
&lt;/h2>&lt;p>&amp;ldquo;아직 10년 이상 걸린다면 안심이다&amp;quot;라고 생각하는 것은 시기상조입니다. 현재 국가 기밀정보나 의료 데이터, 장기적인 인프라 설계 등 수십 년 후까지 비밀을 보장해야만 하는 데이터가 존재합니다.&lt;/p>
&lt;p>여기서 우려되고 있는 것이 바로 &lt;strong>&amp;lsquo;Store Now, Decrypt Later (지금 저장하고, 나중에 해독한다)&amp;rsquo;&lt;/strong> 는 공격 기법입니다. 악의가 있는 국가나 조직이 현재의 RSA나 ECC(타원곡선암호)로 암호화된 통신 데이터를 모두 도청하여 스토리지에 저장해 두는 것입니다. 그리고 10년 후, 20년 후에 강력한 양자 컴퓨터가 완성되는 순간에 쇼어의 알고리즘을 사용하여 과거의 데이터를 모두 해독해내어 비밀을 폭로한다는 기법입니다.&lt;/p>
&lt;p>이러한 타임 래그의 위협에 대항하기 위해 NIST(미국 국립표준기술연구소)를 중심으로 &lt;strong>&amp;lsquo;양자 내성 암호 (PQC: Post-Quantum Cryptography)&amp;rsquo;&lt;/strong> 의 표준화 프로세스가 급피치로 진행되어 왔습니다.&lt;/p>
&lt;p>PQC는 양자 컴퓨터를 이용하더라도 해독이 곤란한(즉, 쇼어의 알고리즘을 적용할 수 없는) 수학적 문제를 기반으로 한 새로운 암호 알고리즘입니다. 주요 접근법으로는 다음과 같은 것들이 있습니다.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>격자 암호 (Lattice-based cryptography)&lt;/strong> : LWE(Learning with Errors) 문제 등을 기초로 합니다. NIST의 표준화에서 주류 (Kyber, Dilithium 등).&lt;/li>
&lt;li>&lt;strong>부호 기반 암호 (Code-based cryptography)&lt;/strong> : 오류 정정 부호의 복호 문제의 어려움에 의존합니다.&lt;/li>
&lt;li>&lt;strong>다변수 다항식 암호 (Multivariate cryptography)&lt;/strong> : 다변수의 연립 이차방정식을 푸는 어려움에 의존합니다.&lt;/li>
&lt;li>&lt;strong>해시 기반 서명 (Hash-based signatures)&lt;/strong> : 해시 함수의 안전성에만 의존하는 디지털 서명입니다.&lt;/li>
&lt;/ul>
&lt;p>이미 Google Chrome이나 Apple의 iMessage 등 주요 소프트웨어나 플랫폼에서는 PQC의 도입 테스트나 하이브리드 구현이 시작되었습니다.&lt;/p>
&lt;h2 id="마치며">마치며
&lt;/h2>&lt;p>양자 컴퓨터는 SF 세계의 꿈 같은 이야기에서 현실적인 공학적 도전으로 넘어가고 있습니다. 쇼어의 알고리즘은 수학과 양자역학이 융합된 인류의 위대한 지적 성과이지만, 동시에 우리 디지털 사회의 기반을 뒤흔드는 &amp;lsquo;파괴적인 힘&amp;rsquo;을 간직하고 있습니다.&lt;/p>
&lt;p>RSA 암호가 내일 당장 쓰지 못하게 되는 것은 아닙니다. 하지만 양자 기술의 진화와 &amp;lsquo;Store Now, Decrypt Later&amp;rsquo;의 리스크를 감안한다면, PQC로의 이행이라는 암호 역사에 남을 대규모의 마이그레이션은 이미 시작되었습니다. 우리는 지금 정보 보안의 패러다임 시프트의 최전선을 목격하고 있는 것입니다.&lt;/p></description></item><item><title>[수학적 고찰] 왜 암호 해독 알고리즘 'GNFS'는 양자 컴퓨터 시대의 Shor 알고리즘에 패배하는가?</title><link>http://kenji.blog/ko/p/gnfs-to-shors-algorithm-math-deepdive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/ko/p/gnfs-to-shors-algorithm-math-deepdive/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508.jpg" alt="Featured image of post [수학적 고찰] 왜 암호 해독 알고리즘 'GNFS'는 양자 컴퓨터 시대의 Shor 알고리즘에 패배하는가?" />&lt;p>현대 인터넷 사회의 정보 보안은 RSA 암호를 비롯한 공개키 암호 방식에 의해 보호받고 있습니다. RSA 암호의 안전성 근거는, &lt;strong>&amp;lsquo;거대한 합성수의 소인수분해는 계산량적으로 극히 어렵다&amp;rsquo;&lt;/strong> 는 사실에 의존하고 있습니다.&lt;/p>
&lt;p>이 글에서는 고전 컴퓨터에서 최강의 소인수분해 알고리즘인 &lt;strong>&amp;lsquo;일반 수체 체(General Number Field Sieve, GNFS)&amp;rsquo;&lt;/strong> 의 수학적 메커니즘을 파헤치고, 그것이 왜 피터 쇼어(Peter Shor)가 발견한 &lt;strong>&amp;lsquo;쇼어 알고리즘(Shor&amp;rsquo;s Algorithm)&amp;rsquo;&lt;/strong> 에 의해 완전히 무너지는지, 그 패러다임 시프트를 수식과 개념도를 이용해 철저히 깊이 있게 다룹니다.&lt;/p>
&lt;hr>
&lt;h2 id="1-고전-계산에서의-소인수분해-접근법-페르마의-소인수분해법으로부터의-발전">1. 고전 계산에서의 소인수분해 접근법: 페르마의 소인수분해법으로부터의 발전
&lt;/h2>&lt;p>소인수분해 문제란, 주어진 합성수 $N$에 대하여 $N = p \times q$가 되는 소수 $p, q$를 찾는 문제입니다.&lt;/p>
&lt;p>기본적인 아이디어는 다음 합동식을 만족하는 자명하지 않은 $x, y$를 찾는 것으로 귀결됩니다.&lt;/p>
$$ x^2 \equiv y^2 \pmod N $$
&lt;p>이를 변형하면,&lt;/p>
$$ x^2 - y^2 \equiv 0 \pmod N $$
$$ (x - y)(x + y) \equiv 0 \pmod N $$
&lt;p>여기서 $x \not\equiv \pm y \pmod N$ 이라면, $\gcd(x-y, N)$ 또는 $\gcd(x+y, N)$을 계산함으로써 $N$의 자명하지 않은 인수를 얻을 수 있습니다. 이 사실이 GNFS 등 근대적인 소인수분해 알고리즘의 기초가 됩니다.&lt;/p>
&lt;hr>
&lt;h2 id="2-고전-최강의-알고리즘-일반-수체-체gnfs의-심연">2. 고전 최강의 알고리즘: &amp;lsquo;일반 수체 체(GNFS)&amp;lsquo;의 심연
&lt;/h2>&lt;p>&lt;strong>&amp;lsquo;GNFS&amp;rsquo;&lt;/strong> 는 오늘날 알려진 고전 컴퓨터용 소인수분해 알고리즘 중에서 가장 빠른 것입니다. 그 시간 복잡도는 준지수 함수적(Sub-exponential)인 시간을 필요로 합니다.&lt;/p>
&lt;h3 id="gnfs의-계산량">GNFS의 계산량
&lt;/h3>&lt;p>수 $N$의 자릿수를 $b = \log_2 N$이라고 할 때, GNFS의 계산량은 다음과 같이 표현됩니다.&lt;/p>
$$ O\left( \exp \left( \left(\frac{64}{9} b\right)^{1/3} (\log b)^{2/3} \right) \right) $$
&lt;p>이 식에서 알 수 있듯이, 계산량은 다항식 시간이 아니라 지수 함수보다는 약간 느린 &lt;strong>&amp;lsquo;준지수 시간&amp;rsquo;&lt;/strong> 이 됩니다. 그럼에도 자릿수가 늘어나면 계산 시간은 천문학적으로 증대합니다.&lt;/p>
&lt;h3 id="gnfs의-수학적-메커니즘">GNFS의 수학적 메커니즘
&lt;/h3>&lt;p>GNFS는 크게 4개의 단계로 구성됩니다.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>다항식 선택 (Polynomial Selection)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>체질 (Sieving)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>행렬의 간소화 (Matrix Reduction)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>제곱근 계산 (Square Root)&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h4 id="21-다항식-선택과-대수체">2.1. 다항식 선택과 대수체
&lt;/h4>&lt;p>먼저, 정수를 계수로 하는 기약 다항식 $f(x)$와 $g(x)$를 선택합니다. 이들은 공통의 근 $m$을 modulo $N$으로 가지도록 설정됩니다. 즉,&lt;/p>
$$ f(m) \equiv 0 \pmod N $$
$$ g(m) \equiv 0 \pmod N $$
&lt;p>일반적으로 $g(x)$는 일차 다항식 $g(x) = x - m$으로 선택됩니다. $f(x)$의 근을 $\alpha$라고 두면, $\mathbb{Q}(\alpha)$라는 &lt;strong>&amp;lsquo;대수체&amp;rsquo;&lt;/strong>(Number Field)가 구성됩니다. $\mathbb{Q}(\alpha)$의 환에서의 연산과 일반적인 정수환 $\mathbb{Z}$의 연산을 준동형 사상 $\phi: \alpha \mapsto m$을 통해 비교합니다.&lt;/p>
&lt;h4 id="22-체질-sieving">2.2. 체질 (Sieving)
&lt;/h4>&lt;p>다음으로 서로소인 정수 쌍 $(a, b)$를 대량으로 탐색합니다. 목적은 다음 두 값이 각각 &lt;strong>&amp;lsquo;B-smooth&amp;rsquo;&lt;/strong>(비교적 작은 소인수로만 구성됨)가 되는 쌍을 찾는 것입니다.&lt;/p>
&lt;ol>
&lt;li>$a - bm$ (정수환 위에서의 값)&lt;/li>
&lt;li>$b^d f(a/b)$ (대수체 위에서의 노름 $N(a - b\alpha)$에 대응)&lt;/li>
&lt;/ol>
&lt;p>여기서 &lt;strong>&amp;lsquo;체&amp;rsquo;&lt;/strong>(Sieve)라고 불리는 고속 탐색 기법이 사용됩니다. 이를 통해 방대한 후보 중에서 조건을 만족하는 $(a, b)$ 쌍을 효율적으로 추출합니다.&lt;/p>
&lt;h4 id="23-행렬의-간소화-linear-algebra-over-gf2">2.3. 행렬의 간소화 (Linear Algebra over GF(2))
&lt;/h4>&lt;p>수집한 쌍 $(a, b)$로부터 지수 벡터를 구성하고, 거대한 희소 행렬의 왼쪽 영공간(Left Null Space)을 $\mathbb{F}_2$(요소가 0과 1뿐인 체) 위에서 구합니다.&lt;/p>
&lt;p>관계식 $ \prod (a_i - b_i m) $ 와 $ \prod (a_i - b_i \alpha) $ 가 각각 제곱원이 되도록 벡터 $v$를 해로 찾습니다. 이는,&lt;/p>
$$ M \mathbf{x} \equiv \mathbf{0} \pmod 2 $$
&lt;p>라는 선형 방정식계를 푸는 것과 다름없습니다. 여기서 블록 란초스 알고리즘(Block Lanczos Algorithm)이나 블록 위데만 알고리즘(Block Wiedemann Algorithm) 등의 고도화된 수치 계산 알고리즘이 활용됩니다.&lt;/p>
&lt;h4 id="24-제곱근-계산">2.4. 제곱근 계산
&lt;/h4>&lt;p>마지막으로 대수체와 정수환 양쪽에서 제곱근을 취하고, $x^2 \equiv y^2 \pmod N$이라는 관계식을 도출해 냅니다. 그리고 $\gcd(x-y, N)$을 계산하여 인수를 얻습니다.&lt;/p>
&lt;hr>
&lt;h2 id="3-양자-계산에-의한-혁신-쇼어-알고리즘">3. 양자 계산에 의한 혁신: &amp;lsquo;쇼어 알고리즘&amp;rsquo;
&lt;/h2>&lt;p>GNFS가 준지수 함수적인 시간을 필요로 하는 반면, 1994년 피터 쇼어가 발표한 &lt;strong>&amp;lsquo;쇼어 알고리즘&amp;rsquo;&lt;/strong> 은 양자 컴퓨터를 사용하여 이 문제를 &lt;strong>&amp;lsquo;다항식 시간&amp;rsquo;&lt;/strong> 에 풀 수 있습니다.&lt;/p>
&lt;h3 id="쇼어-알고리즘의-계산량">쇼어 알고리즘의 계산량
&lt;/h3>&lt;p>양자 비트 수를 $O(\log N)$이라고 할 때, 시간 복잡도는 다음과 같습니다.&lt;/p>
$$ O((\log N)^3) $$
&lt;p>이는 비트 수에 대해 지수 함수적인 폭발을 일으키지 않음을 의미합니다. &lt;strong>&amp;lsquo;고전 계산&amp;rsquo;&lt;/strong> 의 계산량이 우주의 수명을 초과할 만한 거대한 합성수라도, &lt;strong>&amp;lsquo;양자 계산&amp;rsquo;&lt;/strong> 에서는 몇 시간～며칠 만에 해독 가능해진다는 경이로운 결과입니다.&lt;/p>
&lt;h3 id="쇼어-알고리즘의-전체상-주기-찾기-문제로의-귀결">쇼어 알고리즘의 전체상: 주기 찾기 문제로의 귀결
&lt;/h3>&lt;p>쇼어 알고리즘은 소인수분해 문제를 &lt;strong>&amp;lsquo;주기 찾기 문제&amp;rsquo;&lt;/strong> 로 교묘하게 귀결시킵니다.&lt;/p>
&lt;ol>
&lt;li>$N$과 서로소인 무작위 정수 $a$를 선택합니다 ($1 &lt; a &lt; N$).&lt;/li>
&lt;li>함수 $f(x) = a^x \bmod N$을 정의합니다.&lt;/li>
&lt;li>$f(x)$의 주기 $r$, 즉 $a^r \equiv 1 \pmod N$이 되는 최소의 양의 정수 $r$을 찾습니다.&lt;/li>
&lt;li>$r$이 짝수이면, $a^{r/2} \not\equiv -1 \pmod N$인지 확인하고, $\gcd(a^{r/2} \pm 1, N)$을 계산하여 소인수를 얻습니다.&lt;/li>
&lt;/ol>
&lt;p>이 3단계의 &lt;strong>&amp;lsquo;주기 $r$의 발견&amp;rsquo;&lt;/strong> 이야말로 고전 컴퓨터에서는 지수 함수적 시간을 필요로 하는 병목 현상이지만, 양자 컴퓨터는 &lt;strong>&amp;lsquo;양자 중첩&amp;rsquo;&lt;/strong> 과 &lt;strong>&amp;lsquo;양자 푸리에 변환&amp;rsquo;&lt;/strong>(QFT)을 사용하여 이를 순식간에 해결합니다.&lt;/p>
&lt;hr>
&lt;h2 id="4-양자-푸리에-변환qft과-주기의-추출">4. 양자 푸리에 변환(QFT)과 주기의 추출
&lt;/h2>&lt;p>쇼어 알고리즘의 핵심인 양자 상태의 조작에 대해 수식으로 자세히 살펴보겠습니다.&lt;/p>
&lt;h3 id="41-양자-중첩의-생성">4.1. 양자 중첩의 생성
&lt;/h3>&lt;p>먼저 2개의 양자 레지스터를 준비합니다. 레지스터 1은 입력 $x$의 중첩 상태를 유지하고, 레지스터 2는 함수의 계산 결과 $f(x)$를 유지합니다. 초기 상태 $|0\rangle |0\rangle$에 아다마르 변환(Hadamard Transform)을 적용하여 가능한 모든 $x$의 중첩을 만들어 냅니다.&lt;/p>
$$ |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |0\rangle $$
&lt;p>
(여기서 $Q$는 $N^2 \le Q &lt; 2N^2$을 만족하는 2의 거듭제곱)&lt;/p>
&lt;p>다음으로 양자 오라클 $U_f$를 사용하여 $f(x) = a^x \bmod N$을 계산하고 레지스터 2에 저장합니다.&lt;/p>
$$ |\psi_2\rangle = U_f |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |a^x \bmod N\rangle $$
&lt;p>여기서 레지스터 2를 측정했다고 가정해 봅시다 (실제로 측정하지 않아도 수학적 구조는 동일합니다). 어떤 값 $y = a^{x_0} \bmod N$이 관측되었다고 하면, 레지스터 1의 상태는 $f(x) = y$가 되는 모든 $x$의 중첩으로 수축합니다. 주기를 $r$이라고 하면, 그러한 $x$는 $x_0, x_0 + r, x_0 + 2r, \dots$가 됩니다.&lt;/p>
$$ |\psi_3\rangle = \frac{1}{\sqrt{M}} \sum_{k=0}^{M-1} |x_0 + kr\rangle $$
&lt;p>
(여기서 $M \approx Q/r$은 항의 수)&lt;/p>
&lt;p>이 상태는 주기 $r$의 정보를 내포하고 있지만, 직접 측정해도 무작위한 $x_0 + kr$이 얻어질 뿐, 주기 $r$은 알 수 없습니다. 여기서 QFT가 등장합니다.&lt;/p>
&lt;h3 id="42-양자-푸리에-변환-quantum-fourier-transform-의-적용">4.2. 양자 푸리에 변환 (Quantum Fourier Transform) 의 적용
&lt;/h3>&lt;p>QFT는 양자 상태의 진폭에 대해 이산 푸리에 변환을 수행하는 조작입니다. 상태 $|x\rangle$에 대한 QFT의 작용은 다음과 같이 정의됩니다.&lt;/p>
$$ \text{QFT} |x\rangle = \frac{1}{\sqrt{Q}} \sum_{y=0}^{Q-1} e^{2\pi i \frac{xy}{Q}} |y\rangle $$
&lt;p>이것을 $|\psi_3\rangle$에 적용하면, 위상의 간섭(양자 간섭)이 일어납니다.&lt;/p>
$$ |\psi_4\rangle = \text{QFT} |\psi_3\rangle = \frac{1}{\sqrt{MQ}} \sum_{y=0}^{Q-1} \sum_{k=0}^{M-1} e^{2\pi i \frac{(x_0 + kr)y}{Q}} |y\rangle $$
&lt;p>이 식의 합을 전개하면,&lt;/p>
$$ \sum_{k=0}^{M-1} e^{2\pi i \frac{kry}{Q}} $$
&lt;p>라는 부분이 나타납니다. 이 기하급수의 합은 $ry/Q$가 정수에 가까울 때에만 보강 간섭(Constructive Interference)이 일어나고, 그 외의 경우에는 상쇄 간섭(Destructive Interference)이 일어납니다.&lt;/p>
&lt;p>따라서 높은 확률로 측정되는 상태 $|y\rangle$는,&lt;/p>
$$ \frac{y}{Q} \approx \frac{c}{r} $$
&lt;p>이라는 조건을 만족하는 정수 $y$가 됩니다 ($c$는 어떤 정수).&lt;/p>
&lt;h3 id="43-연분수-전개에-의한-주기-특정">4.3. 연분수 전개에 의한 주기 특정
&lt;/h3>&lt;p>측정을 통해 $y$를 얻은 후, 고전 컴퓨터를 이용하여 $y/Q$를 &lt;strong>&amp;lsquo;연분수 전개&amp;rsquo;&lt;/strong>(Continued Fraction Expansion)합니다. 이를 통해 $y/Q$의 근사 분수 $c/r$을 계산하고, 분모로부터 주기 $r$의 후보를 고효율로 추출할 수 있습니다.&lt;/p>
&lt;hr>
&lt;h2 id="5-개념-모델의-비교와-패러다임-시프트">5. 개념 모델의 비교와 패러다임 시프트
&lt;/h2>&lt;p>GNFS와 쇼어 알고리즘의 차이를 직관적으로 이해하기 위해, Mermaid 기법을 사용한 개념도를 제시합니다.&lt;/p>
&lt;h3 id="양자-회로에-의한-쇼어-알고리즘의-개념도">양자 회로에 의한 쇼어 알고리즘의 개념도
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[초기 상태: 0...0] --&amp;gt; B[아다마르 변환으로 모든 상태의 중첩]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C[모듈러 거듭제곱 연산 a^x mod N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|양자 얽힘| D[주기성을 가지는 상태로의 수축]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> D --&amp;gt; E[양자 푸리에 변환 QFT]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt;|간섭에 의한 확률 증폭| F[측정: y를 얻음]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G[고전 처리: 연분수 전개]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt; H[주기 r 발견]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I[N의 소인수 산출]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style A fill:#f9f,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style E fill:#bbf,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style I fill:#bfb,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="패러다임-시프트의-본질">패러다임 시프트의 본질
&lt;/h3>&lt;p>GNFS는 &lt;strong>&amp;lsquo;수학적인 공간(대수체) 안에서 관계식을 탐색한다&amp;rsquo;&lt;/strong> 라는 접근 방식을 취합니다. 하지만 탐색 공간은 자릿수에 대해 지수 함수적으로 확대되기 때문에, 고전 컴퓨터의 계산 능력(병렬화를 포함하더라도)으로는 키 길이가 2048비트 등을 초과하면 사실상 해독이 불가능해집니다.&lt;/p>
&lt;p>반면, 쇼어 알고리즘은 &lt;strong>&amp;lsquo;양자 간섭에 의한 파동의 성질&amp;rsquo;&lt;/strong> 을 이용합니다. 중첩 상태에 있는 모든 계산 경로를 동시에 평가하고, QFT에 의해 불필요한 답을 상쇄(약화)시키고, 정답이 되는 주기의 확률 진폭만을 증폭(강화)시킵니다. 이를 통해 공간을 탐색하는 것이 아니라, &lt;strong>&amp;lsquo;정답 그 자체를 떠오르게 한다&amp;rsquo;&lt;/strong> 는 전혀 다른 차원의 접근 방식을 실현하고 있는 것입니다.&lt;/p>
&lt;h2 id="6-요약">6. 요약
&lt;/h2>&lt;p>이 글에서는 고전 한계의 끝판왕인 &lt;strong>&amp;lsquo;GNFS&amp;rsquo;&lt;/strong> 와 양자 계산의 힘을 보여주는 &lt;strong>&amp;lsquo;쇼어 알고리즘&amp;rsquo;&lt;/strong> 에 대해, 각각의 수학적 배경과 알고리즘의 구조를 깊이 비교했습니다.&lt;/p>
&lt;p>GNFS가 다항식의 선택이나 거대한 행렬의 계산 등 수학적 기교를 부려 준지수 시간으로 계산량을 끌어내린 반면, 쇼어 알고리즘은 양자 역학의 기본 원리인 중첩과 간섭을 수학적 도구(QFT)와 융합시켜 단숨에 다항식 시간으로의 혁신을 이루어냈습니다.&lt;/p>
&lt;p>현재 시점에서는 실용적인 규모(수천 양자 비트)로 쇼어 알고리즘을 실행할 수 있는 결함 허용 양자 컴퓨터(FTQC)는 존재하지 않습니다. 하지만 이 수학적·이론적인 패러다임 시프트의 존재야말로, 현재 전 세계적으로 양자 내성 암호(PQC: Post-Quantum Cryptography)로의 이행이 시급해진 가장 큰 이유입니다.&lt;/p></description></item></channel></rss>