はじめに
こんにちは、データ&セキュリティ研究所の山口と伊豆です。暗号技術に関する調査や研究開発を担当しています。
2024年1月に中国の研究者たちが量子アニーリング計算を使った新しい素因数分解法を提案しました。 日本でも Gigazineが紹介するなど 注目になっていますが、 内容が高度に専門的であること、また論文が中国語で書かれていることから詳細が知られていません。
本記事ではこの提案論文を調査し、量子アニーリング計算を使った新しい素因数分解法の概要を紹介します。 なお提案論文の本文は中国語で記述されているため、調査には Google 翻訳を利用しました。 翻訳結果を鵜呑みにせず可能な限り補正を試みましたが、それでも誤訳や誤解の可能性があることを承知置き下さい。
文献情報
本記事で紹介する論文の情報は以下の通りです。
タイトル: 基于 D-Wave Advantage 的量子退火公钥密码攻击算法研究 (Quantum Annealing Public Key Cryptography Attack Algorithm Based on D-Wave Advantage)
著者: Wang Chao, Wang Qi Di, Hong Chun Lei, Hu Qiao Yun, Pei Zhi (Key Laboratory of Specialty Fiber Optics and Optical Access Networks, Shanghai University)
論文情報: Chinese Journal of Computers, Vol. 47, No.5, May 2024 (投稿:May 02, 2023, オンライン公開:Jan 15, 2024)
URL: http://cjc.ict.ac.cn/online/onlinepaper/wc-202458160402.pdf
計算機の分類
素因数分解の話をする前に、計算機の分類を紹介しておきます。 これら分類を頭に入れておくと、後の素因数分解法の説明が理解しやすくなります。
計算機は大別して量子計算機と古典計算機に分けられます。 量子計算機とは量子現象と呼ばれる物理的な特性を利用した計算機のことで、 現在の計算機では原理的に計算できないような問題を解くことが期待されている、言わば夢の計算機です。 これに対し現在われわれが使用している計算機を総称して古典計算機と呼びます。 ノートPCやデスクトップPCはもちろんのこと、 サーバー、スーパーコンピューター、スマホ、ゲーム機等、すべて古典計算機です。 「古典」という用語は物理分野の用語からの流用で「量子ではない」程度の意味しか持っていないことに注意して下さい。
量子計算機の種類
量子計算機はさらに FTQC, NISQ, 量子アニーリング計算機に分類できます。 現在、世界中で量子計算機の開発が進められているのですが、これまでに開発された、 あるいは今後数年のうちに開発される量子計算機は環境から受けるノイズの影響により計算エラーが発生し、 正しい答を導出することができないという課題を抱えています。 つまり現在の量子計算機では夢を実現できないのです。 そこで夢と現実を区別するために、 計算エラーが発生しない夢の量子計算機のことを FTQC (Fault-Torelant Quantum Computer)、 計算エラーが発生する現在の量子計算機を NISQ (Noisy Intermediate-Scale Quantum) と呼び分けます。 FTQC は夢でありまだ実現できていないのに対し、NISQ はすでに実現できています。
量子アニーリング計算機は NISQ の一種ですが、 ハミルトニアンと呼ばれる多変数の二次多項式の最小値と(その時の変数の値)を求めることに特化されています。 ノイズ等の影響により必ずしも最小値 (最適解) を求められないこともありますが、 それでもそこそこ小さい値 (近似解) を求めることが可能であるため、 現在得られている解よりもよりよい解が得られれば近似解で構わないという事例では 量子アニーリング計算は重宝します。
このように量子計算機には FTQC, NISQ, 量子アニーリング計算機の三種類がありますが、 この順に実現の難易度は易しくなり、 FTQC は未実現、NISQ は数十~数百量子ビット、量子アニーリング計算機は数千量子ビットを処理可能です。 またこの順に処理できる計算の種類の制約は強くなり、 FTQC ではさまざまな計算(アルゴリズム)が実現できるのに対し、 量子アニーリング計算機は最適化計算に限定されます。
古典計算機の種類
古典計算機にはさまざまな規模がありますが、量子計算機に比べれば利用可能なビット数は多く、 さまざまな計算が可能です。 このうち、量子アニーリング計算を古典計算機によってシミュレート (模倣) した計算機を シミュレーティッドアニーリング計算機と呼びます。 以前は量子状態が持つ量子トンネル効果という物理現象を利用できることから 量子アニーリング計算機はシミュレーティッドアニーリング計算機よりも性能が良い (より良い近似解を求められる) と 考えられていましたが、近年はシミュレーティッドアニーリング計算機の性能が向上しており、 場合によっては量子アニーリング計算機同等の近似解を求められるケースも知られています。 現在のシミュレーティッドアニーリング計算機は数万量子ビットを処理することが可能です。
なお以下では、量子アニーリング計算機とシミュレーティッドアニーリング計算機をまとめて 単にアニーリング計算機と呼びます。
論文の意義
それでは本題です。 「量子計算機を用いると素因数分解や暗号解読が劇的に簡単になる」という話を聞いたことがある方は多いと思います。 これは理論的には正しく、FTQC に Shor アルゴリズムを実装することでこれが可能になります。 しかしわれわれが暗号で実際に使用しているような巨大な合成数 (例えば2048ビット合成数) を 素因数分解するには莫大な量子ビット数や量子回路が必要であるため、実現はまだまだ先の話と考えられています。 このため研究者たちは、もっと効率的で省リソースな量子素因数分解法の研究開発を進めています。
論文概要
提案論文では量子アニーリング計算に適した2つの素因数分解法 (正確には素因数分解法の改良法) が提案されており、 それぞれの改良法を用いて量子アニーリング計算機 D-Wave Advantage を使った素因数分解実験の結果が示されています。 1つ目は筆算法と呼ばれる素因数分解法において、 高次の多変数多項式を二次の多変数多項式に変換するアルゴリズム (次数削減) を改良するものです。 2つ目は Schnorr (シュノア) 型素因数分解法において必要となる最適化計算に 量子アニーリング計算を適用するという改良です。
筆算法の改良
筆算法は積の筆算式からハミルトニアンを導出し、その最小値から素因数分解を行う方法で、
アニーリング計算機向けに開発されました。
例えば合成数 143 の素因数分解を考えましょう。
この合成数が 2 桁の自然数の積であることを仮定して
それら自然数を (
は 1 桁の自然数をあらわす変数) とかくことにすると、
積の筆算は図のようになります (現実には繰り上がりを考慮する必要がありますが、ここでは省略します)。
各桁を見比べることで、
を同時に満たす
を求めれば良いことになります。
われわれはアニーリング計算機を使ってこの連立方程式を解きたいので、
ハミルトニアンを [tex: (y_2 x_2 - 1)2 + (y_2 x_1 + y_1 x_2 - 4)2 + (y_1 x_1 - 3)2] と定義します。
このハミルトニアンが最小値 となるとき
は連立方程式の解となっているので、
そこから素因数分解が得られます。
今の場合、例えば
となります。
ここまでが筆算法の概要です。
上のハミルトニアンをよく見ると四次式になっていることき気づきます。 アニーリング計算機が最小値を見つけられる多項式は二次式以下なので、 四次式を二次式(以下)に変換する必要があります。 この変換法を次数削減と呼びます。 詳細は省略しますが、次数削減を適用すると次数が削減できる代わりに 変数の個数や係数(の絶対値)が増加するため、 アニーリング計算によって最小値を求めることが難しくなります。 なおアニーリング計算で使用する変数はバイナリ (変数値が 0 または 1 の2種類) という条件があるため、 実際のハミルトニアンの変数の個数はもっと多くなっています。
提案論文はこの次数削減法を改良しました。 筆者等の主張によると、 従来よりも係数の増大を抑えることが可能で、 結果として量子アニーリング計算によって最小値を求められる確率が向上したとのことです (ここでは詳細を省略しますので、興味ある方は提案論文を参照ください)。
実際、D-Wave Advantage という D-Wave 社の量子アニーリング計算機を用いて実験を行ったところ、 13 ビット合成数 7781 の素因数分解に成功し、 ハミルトニアンの係数が従来よりも 79% から 87% 削減できたとのことです。 また 22 ビット合成数 2269753 の素因数分解にも成功しており、 従来の Purdue 大学の記録 (量子アニーリング計算機による 19 ビット合成数の素因数分解)、 ロッキードマーチンの記録 (量子アニーリング計算機による 20 ビット合成数の素因数分解)、 富士通の記録 (量子計算機シミュレータによる 8 ビット合成数の素因数分解) を 越えたことも触れられています。
Schnorr 型素因数分解法の改良
Schnorr 型素因数分解法とは、 素因数分解を複数の格子上の最近ベクトル問題 (CVP) に変換し、 それら最近ベクトル問題の解をもとに素因数分解する手法です。 名称の通り数学者・暗号研究者として有名な Schnorr によって開発されました。 ここで興味深いのは、使用する解は最近(つまり距離が最小)である必要はなく、 そこそこ近い解 (近似解) でも良いという特徴を持っていることです。
最近ベクトル問題の解法として Schnorr は古典計算機 (Enumeration 法) を用いたのに対し、 Yan 等は最近ベクトル問題をさらに組み合わせ最適化問題に変換し、 NISQ 上の QAOA (Quantum Approximated Optimization Algorithm) という最適化アルゴリズムを利用して CVP の近似解を求めるという改良法を提案しました。 さらに Yan 等は NISQ 上にこの改良法を実装し、 48ビット合成数の素因数分解において解く必要がある最近ベクトル問題の近似解が求められることを検証しています。
[2212.12372] Factoring integers with sublinear resources on a superconducting quantum processor
提案論文のアイディアは NISQ の代わりに量子アニーリング計算機を利用するというものです。 量子アニーリング計算機が持つトンネル効果により、 最近ベクトル問題のより良い近似解を求められることが主張されています。 実際、D-Wave 社の量子アニーリング計算機 D-Wave Advantage を用いて実験を行ったところ、 4 ビット合成数から 50 ビット合成数の素因数分解において解く必要がある最近ベクトル問題の 近似解が求められることを検証しています。 特に 50 ビット合成数の素因数分解においては、 10次元の格子に対する最近ベクトル問題を設定し、 最近ベクトル問題の一般的な解法である Babai アルゴリズムよりも精度の良い解が得られたと報告されています。
評価
ここまで説明した通り、提案論文が提案している量子アニーリング計算機を用いた素因数分解法は それぞれ 22/50 ビット合成数の素因数分解に成功しています。 これら素因数分解法がもっと大きな合成数に対しても通用するかを知りたくなりますが、 提案論文では可能性に触れられているだけで、残念ながら定量的な説明は書かれていませんでした。
富士通の取り組みと考察
最後に提案論文に関連する富士通の取り組みを紹介します。
筆算法
2020年に富士通は Digital Annealer というシミュレーティッドアニーリング計算機に筆算法を実装し、 32ビット合成数の素因数分解に成功しました。
プログラム|SCIS2020 暗号と情報セキュリティシンポジウム
この実験ではナイーブな次数削減法を使用しましたが、 それでも今回の提案論文よりも大きな合成数を素因数分解できており、 この程度の桁数では量子計算機の効果は発揮できないように見えます。 なおシミュレーティッドアニーリング計算の場合、最小解が求まることは保証されていませんし、 計算時間が多項式時間に収まることも保証されていないので、 筆算法は大きな合成数に対しては効果を発揮しないと予想されています。 このため量子アニーリング計算機における同様な解析は必要でしょう。
Schnorr 型素因数分解法
2023年に富士通は Schnorr 型素因数分解法において Yan 等が QAOA を使用した計算を シミュレーティッドアニーリング計算機 Digital Annealer に代替し、 55ビット合成数の素因数分解に成功しました。
この実験では素因数分解に必要な多数の最近ベクトル問題を全て Digital Annealer を使って解いたのですが、 桁数に対し解くべき問題数が指数的に増加していたため、 Schnorr 型素因数分解は大きな合成数の素因数分解に向かないだろうとの結論を得ました。 本実験でも提案論文の実験より大きな合成数を素因数分解できており、 やはりこの程度の桁数では量子計算機の効果が十分に発揮されていないように思えます。
Schnorr 型の素因数分解法に興味を持たれた方は、以下の記事・資料を参照ください。
https://joint.imi.kyushu-u.ac.jp/wp-content/uploads/2024/01/f98bfb4ed49e10ee209a9d924ea6a7a5-2.pdf
まとめ
量子アリニーリング計算機を使った新しい素因数分解法の提案論文の内容を紹介しました。 また、富士通の関連研究結果をもとに提案内容を考察しました。 近年は量子計算機を使った素因数分解が盛んに研究されていますので、 機会があれば別の素因数分解法を本ブログにて紹介したいと思います。 最後まで読んでいただきありがとうございました!