2¹²⁸個の候補と、見比べてはいない。

「量子コンピュータなら、2¹²⁸個の鍵を同時に試して暗号を破れる」――この言い方を聞いて、「じゃあ中では1個ずつ比較しているんでしょ?」と思ったなら、その疑問はまっとうだ。舞台はAESの鍵探索:手に入れた平文と暗号文のペアを検算の手がかりに、2¹²⁸個の候補から正しい鍵を1個探し出す問題だ。答えは、比較していない。グローバーのアルゴリズムの心臓部「オラクル」の正体は、正解の値に合わせて作られたたった1つの固定回路。それが重ね合わせ全体に効くのは、量子力学の線形性のおかげだ。錠前のたとえから出発して、Xゲートと多重制御Z、補助量子ビットと逆計算、そしてAES鍵探索の全体像まで――「オラクル1回」の中身を、部品から自分の手で組み立てよう。

クエストを選ぼう!

ステージ1から順番にクリアしよう(前のステージをクリアすると次が解放されます)

1
古典回路⏱ 約10分
一致判定は回路になる

「101かどうか」を調べるのに、000、001、010…と順番に見比べる必要はない。ANDとNOTでできた固定回路が、比較リストなしで一致を見抜く。錠前が鍵の一覧表を持たないのと同じ理屈だ。

はじめる →
2
量子回路⏱ 約11分
位相に目印を付ける

同じ一致判定を量子回路で。0の位置にXゲートを置き、「全部1なら矢印を反転」する多重制御Zをはさむ。|101⟩だけが−|101⟩になる固定回路を、3ビットで組み上げる。

はじめる →
3
線形性⏱ 約10分
重ね合わせを1回で

重ね合わせを入れても、回路は1回しか動かない。それでも当たりの成分だけが反転するのは、量子力学の線形性が「足してから通す=通してから足す」を保証するからだ。仕分けの正体を見る。

はじめる →
4
補助ビット⏱ 約12分
128ビットの照合

「128個全部1なら反転」という巨大ゲートは、1個の部品としては存在しない。補助量子ビットにANDを順番に書き込み、使い終わったら逆再生で消す。逆計算が必要な深い理由は「手がかり」だ。

はじめる →
5
AES鍵探索⏱ 約18分
AES鍵探索の全体像

暗号文レジスタが2¹²⁸本あるのではない。128量子ビットのレジスタ1本が、鍵ごとに違う暗号文の重ね合わせになっている。教科書の「オラクル1回」に何が含まれているのか、全部数える。

はじめる →
6
誠実な結論⏱ 約10分
それでも2⁶⁴回

オラクルの中身が分かれば、コストも数えられる。グローバーでもAES-128には約2⁶⁴回の反復が必要で、しかも直列。だから世界は鍵を256ビットに伸ばした。誇張のない結論でまとめる。

はじめる →