概要
Q-Day Prize の主張は、IBM Quantumハードウェアを用いた ECDLP鍵回復 の量子攻撃の実証です。 os.urandom で量子ハードウェア部分を置換しても、結果が 統計的に同一 であることが判明。 回復率 は理論的な乱数成功率と一致し、量子計算の寄与は見られません。 著者自身のREADME でも、十分なショット数なら乱数だけで成功すると明記。 本質的な課題 は、量子計算機による鍵回復の証明になっていない点です。
QPUの/dev/urandom置換によるECDLP鍵回復検証
- 検証対象 :Q-Day Prizeリポジトリの量子コンピュータによるECDLP攻撃の主張
- 変更内容 :projecteleven.py内のsolve_ecdlp()で、IBM Quantumバックエンドを os.urandom で置換
- その他の処理 :回路構築やリップルキャリーオラクル、検証パイプライン等は 一切変更なし
- 期待される結果 :量子ハードウェアが本当に有効なら、乱数置換で 鍵回復が失敗 するはず
- 実際の結果 : すべてのテストで乱数置換でも鍵回復に成功、IBMハードウェアと統計的に区別不可
実装上のパッチ内容
- QiskitRuntimeServiceやIBMバックエンド呼び出しを削除し、 os.urandomでクラシカルレジスタ長のビット列を生成
- 生成したビット列を Counter でカウントし、以降の処理は 元のコードと同一
- 59行のdiffで 量子部分のみを乱数で再現
小規模チャレンジ(1回ずつ、8,192ショット)
- 全てのチャレンジ(4〜10ビット)で、 著者報告値と完全一致した鍵を1回目で回復
- IBMハードウェアと /dev/urandom の両方が1回で成功
大規模チャレンジ(5回ずつ、20,000ショット、リップルキャリーオラクル)
- 16ビット:5回中4回成功(著者報告値と一致)
- 17ビット(1BTC賞):5回中2回成功(著者報告値と一致)
- /dev/urandomでも40%程度の成功率、IBMハードウェアと同等
理論値と実測値の一致
- 成功確率は「 P(≥1 verified hit in S shots) = 1 − (1 − 1/n)^S」で計算可能
- 乱数による回復率と 理論値が完全一致
- READMEにも「 shots ≫ nなら乱数だけで高確率で回復」と明記
再現手順
- IBMアカウント・トークン・量子ハードウェア・ネットワーク 不要
- コマンド例:
python projecteleven.py --challenge 4 --shots 8192python projecteleven.py --challenge 17 --oracle ripple --shots 20000
本件の本質的な問題点
- 本リポジトリの エンジニアリング(回路設計等)は高度で本物
- 問題の本質 は「量子計算機による鍵回復の実証」主張が成り立っていない点
- 実際には「 クラシカルな乱数候補への検証」に過ぎず、量子計算の寄与が無い
- /dev/urandomで完全再現可能 なため、量子ハードウェアの意味がない
まとめ
- Q-Day Prize の量子ECDLP攻撃主張は、 /dev/urandom置換で完全再現可能
- 量子計算の証明にはなっていない ため、主張の根拠が崩れる
- 鍵回復の成功はクラシカルな乱数検証の結果 であり、量子ハードウェアの意義は示されていない