tecktom.com

この章のまとめ

2026年10月15日8分で読めますAI生成教科書『虎の巻』第6部 第3章 Shor のアルゴリズム

AI 生成・木下が未勉強

相対エントロピーから情報と物理を組み立てる 第6部 第3章 §6.3.7 ★★ 因数分解 → 位数 → UaU_a の位相推定 → 連分数。情報の側では、位相に書かれた ln⁡r\ln r nat を逆 Fourier 変換が読める形にする

この章では、整数 NN の因数分解を4段に分けた。第一に、aa の位数 rr が偶数で ar/2≢−1a^{r/2}\not\equiv-1 なら gcd⁡(ar/2±1,N)\gcd(a^{r/2}\pm1,N) が因数になり、でたらめな aa で半分以上の確率でそうなる(定理 6.3.1)。第二に、掛け算の置換 UaU_a の固有値は e2πis/r\mathrm{e}^{2\pi\mathrm{i} s/r} で、固有ベクトルの和が ∣1⟩| 1 \rangle なので(式 (6.3.5))、∣1⟩| 1 \rangle から始めた位相推定で s/rs/r の近似が得られる。第三に、2t≥N22^t\ge N^2 に取れば s/rs/r は連分数の近似分数として一意に読め(定理 6.3.2)、約分で分母が欠けた場合は2回の結果の最小公倍数で補える。第四に、1回の実行は定数の確率(最も近い mm が出る確率は 4/π24/\pi^2 以上)で成功し、手間は O(n3)\mathcal{O}(n^3) で、古典の数体ふるい法の LNL_N より遅く増える。

情報の側からは、周期の情報が状態の位相 e2πisx/r\mathrm{e}^{2\pi\mathrm{i} sx/r} にあり、計算基底で測ると I(S;X)=0I(S;X)=0、逆 Fourier 変換の後に測ると I(S;M)≈ln⁡rI(S;M)\approx\ln r になることを数で確かめた。出力は一様分布から D(PM ∥ u)=tln⁡2−H(M)D(P_M\,\|\,u)=t\ln2-H(M) だけ離れ、第1のレジスタの容量のうち周期に使われるのは ln⁡r≤nln⁡2\ln r\le n\ln2 で、残りは連分数で分母を読むための精度に使われる。RSA の復号は、因数分解を経ずに暗号文の位数からもできる。次の 第6部第4章 の Grover の探索は、この章のような周期の構造を持たない問題での加速で、加速は N\sqrt N 倍にとどまり、それが最適であることを情報の側からも見る。

要点

  • 帰着:rr が偶数かつ ar/2≢−1(modN)a^{r/2}\not\equiv-1\pmod N なら gcd⁡(ar/2±1,N)\gcd(a^{r/2}\pm1,N) が非自明な因数。確率 ≥1−2−(k−1)\ge1-2^{-(k-1)}(kk は異なる素因数の数)。
  • Ua∣y⟩=∣ay mod N⟩U_a| y \rangle =| ay\bmod N \rangle、∣us⟩=r−1/2∑ke−2πisk/r∣ak⟩| u_s \rangle =r^{-1/2}\sum_k\mathrm{e}^{-2\pi\mathrm{i} sk/r}| a^k \rangle、Ua∣us⟩=e2πis/r∣us⟩U_a| u_s \rangle =\mathrm{e}^{2\pi\mathrm{i} s/r}| u_s \rangle、r−1/2∑s∣us⟩=∣1⟩r^{-1/2}\sum_s| u_s \rangle =| 1 \rangle。
  • 出力の分布 P(m)=1r∑sFt(s/r−m/2t)P(m)=\frac1r\sum_sF_t(s/r-m/2^t)。最も近い mm の確率 ≥4/π2\ge4/\pi^2。
  • 2t≥N22^t\ge N^2 で ∣m/2t−s/r∣<1/(2r2)\lvert m/2^t-s/r\rvert <1/(2r^2)、Legendre の定理で s/rs/r は近似分数。約分の対策に2回の lcm(確率 ≥6/π2\ge6/\pi^2)。
  • 手間 O(n3)\mathcal{O}(n^3)、量子ビット 2n+32n+3 で組める。数体ふるい法は LN=exp⁡[(64/9)1/3(ln⁡N)1/3(ln⁡ln⁡N)2/3]L_N=\exp[(64/9)^{1/3}(\ln N)^{1/3}(\ln\ln N)^{2/3}] 程度。
  • 計算基底の測定は I(S;X)=0I(S;X)=0、逆 QFT の後は I(S;M)≈ln⁡rI(S;M)\approx\ln r。D(PM ∥ u)=tln⁡2−H(M)D(P_M\,\|\,u)=t\ln2-H(M)。
  • RSA:cc の位数 rr から d′=e−1 mod rd'=e^{-1}\bmod r、cd′≡xc^{d'}\equiv x。

総合問題 N=35N=35 を因数分解し、RSA の暗号文を読む ★★★

オリジナルN=35N=35、a=2a=2 で Shor のアルゴリズムを走らせる。

  1. (1) 22 の 3535 を法とした位数 rr を、 mod 5\bmod5 と  mod 7\bmod7 の位数から求めよ。帰着の条件を確かめ、3535 の因数を出せ。(使う道具:6.3.1 節)
  2. (2) 式 (6.3.9) の条件を満たす最小の tt を求めよ。そのとき山はどこに立ち、どの ss の山が1本だけになるか。最も近い mm のどれかが出る確率と、そのうち gcd⁡(s,r)=1\gcd(s,r)=1 である確率を数値で求めよ。(使う道具:6.3.2 節・6.3.4 節、第6部第2章 の位相推定)
  3. (3) 測定値 m=1195m=1195 から位数を読め。別の2回の実行で m=512m=512 と m=1365m=1365 を得たとき、それぞれから何が読め、合わせると何が分かるか。(使う道具:6.3.3 節)
  4. (4) この回路の I(S;M)I(S;M) と D(PM ∥ u)D(P_M\,\|\,u) は 1.7851.785 や 3.6253.625(N=21N=21)からどう変わるか。数値で求め、ln⁡r\ln r、tln⁡2t\ln2、第2のレジスタの容量 nln⁡2n\ln2 と比べよ。(使う道具:6.3.5 節、第1部第3章 の相互情報量、第3部第7章 の Holevo 限界)
  5. (5) N=35N=35、e=5e=5 の RSA で、平文 x=2x=2 の暗号文 cc を求めよ。cc の位数から d′d' を作り、平文を戻せ。(使う道具:6.3.6 節と (1))
解答

(1)  mod 5\bmod5 では 2,4,3,12,4,3,1 で位数 44、 mod 7\bmod7 では 2,4,12,4,1 で位数 33 なので、中国剰余定理から r=lcm⁡(4,3)=12r=\operatorname{lcm}(4,3)=12 である。rr は偶数で、26=64≡292^6=64\equiv29 は −1≡34-1\equiv34 でない。gcd⁡(28,35)=7\gcd(28,35)=7、gcd⁡(30,35)=5\gcd(30,35)=5 で、35=5×735=5\times7 である。

(2) 352=122535^2=1225 で 210=1024<1225≤2048=2112^{10}=1024<1225\le2048=2^{11} なので t=11t=11 である。山は 2048s/12=170.67s2048s/12=170.67s の近く、s=0,…,11s=0,\dots,11 の12か所に立つ。2048s/122048s/12 が整数になるのは ss が3の倍数のとき(0,512,1024,15360,512,1024,1536)で、この4本は山が1本で高さ 1/12=0.08331/12=0.0833 である。他の8本は最も近い mm で 211δ=±1/32^{11}\delta=\pm1/3 となり、例題 6.3.4 と同じく条件付き確率 0.6840.684、高さ 0.05700.0570 である。最も近い mm のどれかが出る確率は 4×0.0833+8×0.0570=0.7894\times0.0833+8\times0.0570=0.789 で、gcd⁡(s,12)=1\gcd(s,12)=1 の s=1,5,7,11s=1,5,7,11 に限ると 4×0.0570=0.2284\times0.0570=0.228 である。どちらも N=21N=21 と同じ値になるのは、r=6r=6 と r=12r=12 がともに 2t/r2^t/r の端数を ±1/3\pm1/3 にするからである。

(3) 1195/2048=[0;1,1,2,2,42,4]1195/2048=[0;1,1,2,2,42,4] で、近似分数は 1/11/1、1/21/2、3/53/5、7/127/12、297/509,…297/509,\dots である。分母 q<35q<35 の候補 1,2,5,121,2,5,12 を順に試すと、212^1、222^2、25=322^5=32 は 11 でなく、212≡12^{12}\equiv1 で r=12r=12 を得る。誤差は ∣1195/2048−7/12∣=1/6144≤1/4096\lvert 1195/2048-7/12\rvert =1/6144\le1/4096 である。m=512m=512 は 512/2048=1/4512/2048=1/4 で s=3s=3 の山、約分で分母 44 が出て 24=16≢12^4=16\not\equiv1 である。m=1365m=1365 は s=8s=8 の山(1365.331365.33)で、近似分数に 2/32/3 が現れ分母 33 だが 23=8≢12^3=8\not\equiv1 である。2つを合わせて lcm⁡(4,3)=12\operatorname{lcm}(4,3)=12 を試すと 212≡12^{12}\equiv1 で位数が分かる。

(4) 数値で H(M)=3.311H(M)=3.311、H(M ∣ S)=0.830H(M\,|\,S)=0.830、I(S;M)=2.481I(S;M)=2.481 nat で、ln⁡12=2.485\ln12=2.485 の 99.8%99.8\% である。D(PM ∥ u)=tln⁡2−H(M)=7.625−3.311=4.314D(P_M\,\|\,u)=t\ln2-H(M)=7.625-3.311=4.314 nat である。N=21N=21 と比べて I(S;M)I(S;M) は ln⁡12−ln⁡6=ln⁡2\ln12-\ln6=\ln2 ほど増え、tt も2増えたので DD も増えた。35<2635<2^6 で第2のレジスタは n=6n=6 量子ビット、nln⁡2=4.159≥ln⁡12n\ln2=4.159\ge\ln12 で、周期の情報 ln⁡r\ln r はレジスタの容量の中に収まる。第1のレジスタの容量 tln⁡2=7.625t\ln2=7.625 は ln⁡r\ln r の3倍ほどで、残りは連分数で分母を一意に読むための精度に使われている。

(5) ϕ(35)=24\phi(35)=24、5⋅5=25≡1(mod24)5\cdot5=25\equiv1\pmod{24} なので d=5d=5 である。c=25=32c=2^5=32 である。32=2532=2^5 で gcd⁡(5,12)=1\gcd(5,12)=1 なので ord⁡35(32)=ord⁡35(2)=12\operatorname{ord}_{35}(32)=\operatorname{ord}_{35}(2)=12 で、(1) の位数がそのまま使える。d′=5−1 mod 12=5d'=5^{-1}\bmod12=5(25≡125\equiv1)で、325=225=22⋅12+1≡2(mod35)32^5=2^{25}=2^{2\cdot12+1}\equiv2\pmod{35} となり、平文 22 が戻る。位数を求める同じ回路が、因数分解にも RSA の復号にも使える。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ