Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
quantum — このリポジトリには、https://www.projecteleven.com/ によるQDay賞チャレンジのコードと提出詳細が含まれています。 | Kitploit
ツール/GitHubGitHub/giancarlolelli/quantum
エクスプロイト暗号化ハードウェアセキュリティ論文と研究学習と教育バイナリエクスプロイト
GitHubgiancarlolelli/quantum

quantum

このリポジトリには、https://www.projecteleven.com/ によるQDay賞チャレンジのコードと提出詳細が含まれています。

リポジトリを見る
3520125ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Shor's Algorithm for ECDLP — Q-Day Prize提出物

楕円曲線離散対数問題(ECDLP)のための量子ソルバー。Project Elevenが主催するQ-Day Prize Challengeのために構築されました。目標: 実際の量子ハードウェア上でShorのアルゴリズムを用いてECC秘密鍵を回復すること。

  • 著者: Giancarlo Lelli
  • 連絡先: [email protected]
  • LinkedIn: https://www.linkedin.com/in/giancarlolelli
  • 背景: エンタープライズソフトウェア、フルスタックアーキテクチャ、クラウドネイティブ開発において10年以上の経験を持つテクノロジーリーダー。コンピュータサイエンスのバックグラウンドを持ち、.NET、Python、Rust、Cloudエコシステムにわたる実践的な経験があります。現在は、ソリューションアーキテクチャとセールスエンジニアリングに焦点を当てたCloud GTMスペシャリストとして働いています。

アプローチ

すべてのチャレンジ曲線は、F_p上の y^2 = x^3 + 7 (a = 0, b = 7) を使用しており、secp256k1ファミリーと一致しています。ソルバーはECDLPのためのShorのアルゴリズムの2レジスタバリアントを実装しています:

  1. 計数レジスタ|j>、|k>を一様重ね合わせ状態に準備する(アダマール)
  2. 2t個の制御付き点加算により|j>|k>|jG + kQ>を計算する(t = 計数量子ビット数)
  3. 点レジスタを測定し、ある群要素Rに収縮させる
  4. 計数レジスタに逆QFTを適用する
  5. j, kを測定し、関係式 j + kd = r (mod n) からdを抽出する

秘密鍵dは、群位数nを法として同じ線形関係を満たす複数の(j, k)サンプルを収集することで回復されます。ソルバーは制御付き点加算のための6つのオラクル戦略をサポートしており、曲線のサイズに基づいて自動的に選択されるか、--oracleで手動で選択されます。

オラクル戦略

戦略1: 高密度ユニタリ (n_bits <= 6 の場合のデフォルト)

群位数が最大約6ビットの曲線に使用されます。projecteleven.pyで実装されています。

各制御付き点加算"add S"は、qc.unitary()で適用される2^(n+1) x 2^(n+1)の置換行列として表されます。行列は群の完全な作用をエンコードします:左上ブロックは恒等(制御=0)、右下ブロックは写像P -> P+S (制御=1)に従って基底状態を置換します。

  • エンコーディング: 群インデックス (0..n-1)
  • メモリ: O(2^{2n}) 行列あたり
  • 量子ビット数: 2t + n (2つの計数レジスタ + 点レジスタ)
  • 制限事項: Qiskitのユニタリ分解はO(4^n)であり、約6ビットを超えると実行不可能になります

戦略2: 効率的な置換分解 (n_bits > 6 の場合のデフォルト)

より大きな曲線に使用されます。quantum_arithmetic.pyで実装されています。

高密度行列を構築する代わりに、各"add S"の置換はトランスポジションに巡回分解されます。各トランスポジション(2つの基底状態|a> <-> |b>のスワップ)は以下で実装されます:

  1. CNOT削減 -- ピボットビットから他のすべての異なるビットへのCNOTにより、マルチビットの差をシングルビットの差に削減
  2. マルチ制御X -- 他のすべてのビットがターゲットパターンと一致することを条件とした、ピボットビット上のMCXゲート
  3. CNOTの元に戻す -- ステップ1を逆にして非ピボットビットを復元

MCXは(n-2)個の専用アンシラ量子ビットを持つVチェーン分解を使用し、アンシラなしのO(n^2)に対して、MCXあたりO(n)個のToffoliゲートを実現します。各制御付き加算は孤立したサブ回路として構築され、単一の不透明ゲートとして追加され、Qiskitでの二次的なDAGの増大を回避します。

  • エンコーディング: 群インデックス (0..n-1)
  • メモリ: O(N) 加算あたり (N = 群位数)
  • 量子ビット数: 2t + n + (n-2) アンシラ
  • ゲート数(加算あたり): O(N * n)

戦略3: 座標ベース量子オラクル (--oracle coordinate)

最大約6ビットの曲線で利用可能です。quantum_oracle.pyで実装されています。

点を群インデックスとしてエンコードする代わりに、量子レジスタは実際の**(x, y)体要素座標**をバイナリで保持し、さらに恒等フラグを加えます。点レジスタのレイアウトは:

  • x_reg: f_bits 量子ビット (f_bits = ceil(log2(p)))
  • y_reg: f_bits 量子ビット
  • id_flag: 1 量子ビット (1 = 無限遠点)

各制御付き"add S"は、すべての有効な座標エンコーディングに対するEC加算式から計算され、座標レジスタ上の置換を生成します。この置換は、戦略2と同じCNOT削減 + MCXインフラストラクチャを使用してトランスポジションに巡回分解されます。

  • エンコーディング: (x, y, id_flag) 座標
  • 量子ビット数: 2t + 2f_bits + 1 + max(0, 2f_bits - 1) アンシラ
  • ゲート数(加算あたり): O(N * f_bits)

戦略4: 算術オラクル (--oracle arithmetic)

多項式スケーリングの点加算のためのフレームワーク。quantum_oracle.pyおよびquantum_arithmetic.pyで実装されています。

戦略3と同じ座標エンコーディングを使用し、QFTベースのモジュラ算術プリミティブを完全な算術点加算に向けた構成要素として使用します。コードベースには以下のテスト済み実装が含まれています:

  • Beauregardモジュラ加算器 -- QFTベース (target + constant) mod p、適切なアンシラアンコンピュート付き
  • 量子-量子モジュラ乗算 -- |a>|b>|0> -> |a>|b>|a*b mod p>、シフトアンド加算と明示的なモジュラ倍化を使用、O(n^3)ゲート
  • モジュラ逆元置換 -- |x> -> |x^{-1} mod p>、ルックアップテーブルトランスポジションによる
  • 制御付き量子-量子モジュラ加算 -- 制御付き|a> -> |a + b mod p>、Beauregard削減を使用

算術プリミティブは点加算あたりO(n^3)スケーリングを達成し、置換アプローチのO(N*n)に対して優れています。しかし、QFTベースの演算は約150倍の定数因子が大きく、そのため算術アプローチは約20ビット以上の群位数を持つ曲線でのみ効率的です。現在のチャレンジサイズ(最大12ビット)では、置換ベースの加算器が高速であり、デフォルトで使用されます。

戦略5: Google半古典位相推定 (--oracle google)

google_semiclassical.pyで実装されています。Griffiths & Niu (1996) の量子ビットリサイクル位相推定手法に触発され、Babbush et al. (2026) でsecp256k1 ECDLPリソース見積もりに大規模適用されました。Babbush et al. の論文は2026年3月30日に公開されました。

2つのマルチ量子ビット計数レジスタ(j, k)とバルク逆QFTを、2つの単一リサイクル量子ビットと古典的条件付き位相補正に置き換えます。各計数レジスタビットは順次処理されます:|+>に準備し、制御付き点加算を適用し、以前に測定されたすべてのビットに基づいて位相を補正し、測定します。Qiskitのreset + if_test動的回路プリミティブにより、IBM Quantumハードウェア上でこれが可能になります。

制御付き点加算のためのオラクルは既存のインフラストラクチャ(<=6ビットでは高密度ユニタリ、>6ビットでは効率的置換)に委譲されるため、量子ビット節約は完全に計数レジスタを排除することから来ています。

曲線サイズ標準量子ビット数半古典量子ビット数削減率ハードウェア検証
4ビット (n=7)11555%はい
6ビット (n=31)17759%はい
7ビット (n=79)26 + anc1446%はい
8ビット (n=139)25 + anc10 + anc60%いいえ (QPU同期オーバーヘッド)
10ビット (n=547)31 + anc12 + anc61%いいえ (QPU同期オーバーヘッド)
  • エンコーディング: 基盤となる戦略と同じ (群インデックス)
  • 量子ビット数: 2 + n_bits + アンシラ (2t + n_bits + アンシラ に対して)
  • トレードオフ: 動的回路(中間回路測定、リセット、古典的条件付きゲート)が必要。IBM Heron r2では7ビットまで動作可能; 8ビット以上では、古典的フィードバック同期オーバーヘッドがQPU時間予算を超える

戦略6: リップルキャリーモジュラ加算 (--oracle ripple)

ripple_carry_shor.pyで実装されています。制御付き点加算にCDKMリップルキャリー加算器(Cuccaro et al. 2004)を使用し、高密度ユニタリ行列と巡回分解トランスポジション回路の両方を置き換えます。

群インデックスエンコーディングでは、点P = kGは巡回群内のインデックスkで表されます。S = sGの加算は、**既知の定数sのモジュラ加算(mod n)**になります。重要な洞察: 各制御付き点加算は、QiskitのCDKMRippleCarryAdderとIntegerComparatorを使用して実装された、既知の定数の単一制御付きモジュラ加算に還元されます。

オラクルは2m個の制御付きモジュラ加算(計数レジスタあたりm個)で構成され、各制御付きモジュラ加算は以下を実行します:

  1. 定数をロード 制御量子ビットからアンシラレジスタへのCX経由
  2. CDKM半加算器 アンシラをアキュムレータに加算(最近傍ゲートのみ)
  3. 整数比較器 オーバーフローを検出(acc >= n)
  4. 条件付きnの減算 フラグ制御による2^m1 - nの加算
  5. フラグのアンコンピュート キャリーベースのプロービングによる

秘密鍵dの知識は回路構築に使用されません。Gパワーの群インデックスは2^i mod n(公開)として計算されます。Qパワーの群インデックスは、Gによって生成される巡回群の公開列挙から導出されます — 点Qはこの列挙の中で検索されます。

  • エンコーディング: 群インデックス (0..n-1)
  • 量子ビット数: 4m + 5 (m = ceil(log2(n)))
  • ゲート数(加算あたり): O(m) CDKM演算、各O(m) CXゲート
  • 総CXスケーリング: O(m^3)
  • ハードウェアマッピング: CDKMは最近傍ゲートのみを使用し、IBM heavy-hexトポロジ上で約1倍のルーティングオーバーヘッドを与える(QFTベース加算器の26-33倍に対して)
曲線サイズ量子ビット数2量子ビットゲート数(トランスパイル後)ハードウェア検証
4ビット (n=7)171,824はい (シミュレーション)
8ビット (n=139)3711,224—
10ビット (n=547)4517,204—
12ビット (n=2143)5324,304—
16ビット (n=32497)6598,049はい
17ビット (n=65173)69111,816はい

比較

指標高密度ユニタリ効率的置換座標オラクル算術オラクル半古典位相推定リップルキャリー
点エンコーディング群インデックス群インデックス(x, y, id_flag)(x, y, id_flag)群インデックス群インデックス
加算あたりのスケーリングO(4^n) 分解O(N * n)O(N * f_bits)O(n^3) 漸近的O(N * n)O(m^2)
量子ビット数 (4ビット)11132424517
量子ビット数 (6ビット)17213636925
2量子ビットゲート数 (4ビット)774~1,2006,4496,449~1,2001,824
2量子ビットゲート数 (6ビット)23,471~38,00095,25495,254~38,0004,582
実用範囲6ビット以下約16ビット以下6ビット以下20ビット以上 (将来)約16ビット以下約20ビット以下

QFT算術プリミティブ

コードベースには、完全な算術座標エンコーディングを256ビットで実現するための基盤として、QFTベースのモジュラ算術構成要素(Beauregard/Draper加算器、量子-量子モジュラ乗算、モジュラ逆元/否定)が含まれています。これらのプリミティブは、p=13までの素数に対するStatevectorシミュレーションで正しく動作することが検証されています。

結果

IBM Quantumハードウェア上で、最大17ビットのチャレンジ曲線に対する秘密鍵の回復に成功しました:

ツールをダウンロード