IBM Quantum バックエンドを/dev/urandom に置換する

2026/04/25 9:58

IBM Quantum バックエンドを/dev/urandom に置換する

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

最近、楕円曲線離散対数問題(ECDLP)に対する画期的な量子攻撃を主張するリポジトリが、古典的な計算に完全に依存しており、真正な量子ハードウェアを使用していないことが露見した。核心的なメッセージは、単なるコード変更によって量子バックエンドを標準的なランダムノイズと置き換えるだけで元の結果が完全に再現され、実際には量子コンピュータが使用されたことを証明することにある。この発見により、

ibm_fez
プロセッサ上で実行されたと主張されている 17 ビット鍵の回復という注目すべき受賞案件は、単なる古典的な現象であるとして無効化された。理論的分析によると、測定回数($S$)が鍵サイズ($n$)に比べて圧倒的に多い場合($S \gg n$)、均一のランダムノイズだけでも秘密鍵を回復でき、IBM アカウントやネットワークへのアクセスなくとも著者の実証データと一致する。リポジトリにおけるフェーズ推定のような量子アルゴリズムに関するソフトウェア工学の複雑さは見事であるが、量子優位性の主張そのものが根本的に偽っている。量子ハードウェアに帰因される特定の成就是、量子計算能力の飛躍ではなく、ランダムサンプリングの本質的な性質を数学的に実証しただけのものとして再分類される。

本文

/dev/urandom による QPU の置換

検証されている主張: このリポジトリ内にある Q-Day プライズのサビミッションは、ECDLP(楕円曲線離散対数問題)に対する量子攻撃を提示しているものであるという主張です。具体的には、IBM Quantum ハードウェアを用いて、17 ビットまでの楕円曲線上での鍵復号化を行ったとされています。

このブランチの対応策:

projecteleven.py
プロジェクトに、単一の精密なパッチ(−29 行削除、+30 行追加)を適用しています。このパッチは、
solve_ecdlp()
関数内における IBM Quantum バックエンドを、標準ライブラリの
os.urandom
に置換します。その他全ての部分—— circuits の構築、リプルキャリー型のオラクル、抽出パイプライン、そして「d·G == Q」を検証するステップについては、バイト単位で変更なくそのまま維持されています。

もし量子コンピュータが測定可能なシグナルに貢献していたのであれば、この置換は復号化を不可能にするはずです。しかしそうではありません。著者の自身の CLI コマンドラインインターフェースを用いた実行結果では、IBM ハードウェアによる走査と同じ統計的に識別不能な確率で、報告されたすべての秘密鍵が回復されました。


ディフ (Diff) 的内容

-    if token:
-        service = QiskitRuntimeService(...)
-    ...
-    backend = service.backend(backend_name)
-    ...
-    qc_t = transpile(qc, backend, optimization_level=optimization_level)
-    ...
-    sampler = SamplerV2(mode=backend)
-    job = sampler.run([qc_t], shots=shots)
-    ...
-    result = job.result()
-    pub_result = result[0]
-    counts = pub_result.data.cr.get_counts()
+    # /dev/urandom パッチ適用: シール回路の古典レジスタと同じ長さを持つ、
+    # `shots` 個の一様無作為ビット列を生成します。`counts` を下流にある処理は、
+    # すべて著者の元のコードままであり変更されていません。
+    import os as _os
+    from collections import Counter as _Counter
+
+    nbits = qc.num_clbits
+    bpb = (nbits + 7) // 8
+    mask = (1 << nbits) - 1
+
+    _bitstrings = []
+    for _ in range(shots):
+        v = int.from_bytes(_os.urandom(bpb), "big") & mask
+        _bitstrings.append(format(v, f"0{nbits}b"))
+    counts = dict(_Counter(_bitstrings))

詳細な 59 行のディフ内容は

git diff main
を参照してください。


結果:パッチ適用後の著者自身の CLI による実行結果

シンプルな挑戦問題(各 1 回試行、ショット数 8,192)

コマンド:

python projecteleven.py --challenge <N> --shots 8192
出力ファイル:
urandom_runs/urandom_challenge_4.txt … _10.txt

挑戦問題著者が報告した d (解)/dev/urandom で回復した d結果
4 ビット66✅ 1 回目で検証成功
6 ビット1818✅ 1 回目で検証成功
8 ビット103103✅ 1 回目で検証成功
9 ビット135135✅ 1 回目で検証成功
10 ビット165165✅ 1 回目で検証成功

すべての

d
の値は、著者が報告したハードウェアによる結果とバイト単位で完全に一致しています。著者はそれぞれを 1 回ずつ実行しており、同様に
/dev/urandom
も「成功」と判定されています。

主力挑戦問題(各 5 回試行、ショット数 20,000、リプルキャリー型オラクル使用)

コマンド:

python projecteleven.py --challenge <N> --oracle ripple --shots 20000
出力ファイル:
urandom_runs/urandom_challenge_16_17_flagship.txt

挑戦問題著者が報告した durandom 試行回数 (回復した d)結果
16 ビット20,248✅ ✅ ✅ ✅ ❌
(5 回中 4 回で 20,248 を回復)
17 ビット 🏆1,441❌ ❌ ✅ ✅ ❌
(5 回中 2 回で 1,441 を回復)

ここで示された 17 ビットの結果が、1 ビットコインの賞品とされたものです。ノートパソコン上で

/dev/urandom
を用いた試行では、約 40% の割合でこの鍵を回復しました。一方、著者は IBM
ibm_fez
ハードウェア上でこれを 1 回しか実行しておらず、それが量子計算の結果であると主張していました。

17 ビット問題のうちの 1 つの実行における実際のターミナル出力:

Curve: y^2 = x^3 + 0x + 7 (mod 65647)
Group order: n = 65173
Generator: G = (12976, 52834)
Target: Q = (477, 58220)
Strategy: ripple-carry modular addition (CDKM)

Backend: /dev/urandom  (量子ハードウェアを os.urandom に置換)
Classical register width: 49 bits  (ショット数 20000)

Unique outcomes: 20000

============================================================
RESULT: d = 1441
Verification: 1441*G = (477, 58220)
[OK] VERIFIED
============================================================

[OK] SUCCESS: 正しい秘密鍵を回復しました。

この私人鍵の復号化において、量子コンピュータは害を受けませんでした。


これが機能する理由(およびこれがサビミッションの問題所在である理由)

著者の抽出処理 (

ripple_carry_shor.py:197-240
,
projecteleven.py:264
) は、各ショットから
(j, k, r)
を受け取り、古典的な検証子「d_cand · G == Q」をパスする場合は
d_cand = (r − j)·k⁻¹ mod n
としてこれを有効な候補として受け入れます。一様ノイズ下では、この
d_cand
[0, n)
の範囲で一様に分布するため:

$$P(\ge 1 \text{ 個の検証パスするhit が S ショット中出现}) = 1 - (1 - 1/n)^S$$

著者の使用した

(n, S)
を代入すると、次のようになります。

挑戦問題n (群の位数)ショット数理論的な urandom 成功確率
4 ビット78,192100.00%
6 ビット318,192100.00%
8 ビット1398,192100.00%
9 ビット3138,192100.00%
10 ビット5471,02484.65%
16 ビット32,49720,00045.96%
17 ビット65,17320,00026.43%

上記の実験結果は、これらの理論的な予測値と完全に一致しています。著者の README でもこの現象は予言されています (README.md:210):

"ショット数が n より十分に大きければ、単なるランダムなノイズだけで、d を高い確率で回復させることができます。"

4 ビットから 10 ビットまでのすべての試行において、「ショット数 / n」の比率は 1.9 倍から 1,170 倍の範囲にあります。これらはすべて、著者自身が「古典計算の領域」と位置づけている領域です。


再現方法

git checkout urandom-reproduces-qpu
uv venv .venv && . .venv/bin/activate
uv pip install qiskit qiskit-ibm-runtime

python projecteleven.py --challenge 4  --shots 8192
python projecteleven.py --challenge 10 --shots 8192
python projecteleven.py --challenge 17 --oracle ripple --shots 20000   # 2-3 回ほど試す必要がある場合があります

IBM アカウント不要。トークン不要。量子ハードウェア不要。ネットワーク接続も不要です。


注意事項 (Caveat)

このリポジトリにおけるエンジニアリングの要素——オラクルの 6 変種、CDKM リプルキャリー型アdder の重いヘックストポロジーへのマッピング、中間回路測定による半古典的な位相推定技術——は本物であり、かつ非自明なものです。しかし、本研究における批判の対象は非常に限定的であり、「これらのハードウェア実行が、量子コンピュータによる ECDLP 秘密鍵復号化を構成している」という暗号解読に関する主張そのものにあります。それは事実ではありません。実際には、古典的な検証処理に対して一様無作為に生成された候補値が適用されているのみで、これらは何ら量子ハードウェアなしでも再現可能であり、このブランチの実装がそれを直接示しています。

同じ日のほかのニュース

一覧に戻る →

2026/04/22 16:20

無料ユニバーサルコンストラクションキット

## Japanese Translation: Free Universal Construction Kit は、10 の主要な建築玩具システム(Lego、Duplo、Fischertechnik、Gears! Gears! Gears!、K'Nex、Krinkles(Bristle Blocks)、Lincoln Logs、Tinkertoys、Zome および Zoob)の相互運用性を可能にし、「技術的ロックイン」を解消することに成功しました。これらすべてのシステムは、光学的コンパレーターを用いて 0.0001 インチ以内の精度で設計されたほぼ 80 の両方向アダプターブロックを通じて統合されています。これらのモデルは、Thingiverse.com、F.A.T. Lab ウェブサイトの 29MB の.zip ファイル、および The Pirate Bay の"physibles"チャンネルにある Torrent ファイルを介して自由にご利用可能です。ユーザーはオープンソースのデスクトッププリンター(例:Makerbot、RepRap、Ultimaker、Printrbot)または Ponoko.com などの高解像度サービスを利用して部品を再現できます。 fist サイズの Universal Adapter Brick は、すべてのサポートされたネットワークを一つの統合されたシステムに統一します。このプロジェクトは、リバースエンジニアリングを企業の「技術的ロックイン」や特許制約を超えようとする市民活動として位置付けています。法的には、レゴ(1958 年に特許出願)、Lincoln Logs(1920 年に特許出願)など従来のブランド向けのホーム印刷アダプターは「適合例外」に該当し、フェアユースによって保護されています。一方、Zoob および ZomeTool のアダプターは、依然として有効な特許制限により、それぞれ 2016 年 12 月および 2022 年 11 月までリリースが遅延しています。本キットは Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported ライセンスの下で提供されており、商業的大規模生産は禁止されていますが、オープンソースプリンターやサービス bureau を通じた個人による製造は許可されています。F.A.T. Lab と Sy-Lab が開発し、 Adapterz LLC が法的代表を務め、 Riley Harmon がビデオ製作を担当した本プロジェクトには、小さな部品が含まれているため 3 歳未満の幼児には不適切であるという窒息危険に関する警告表示があります。結局のところ、このオープンなアプローチは、創業者が既存デザインにおける保護された知的財産権を尊重しつつ相互運用性を育むことを可能にします。

2026/04/22 22:46

『一ビット:北斎「巨浪」(2023)』

## Japanese Translation: このデジタル・プロジェクトは、葛飾北斎『富嶽三十六景』を忠実な 1 ビット・ピクセルアートとして再製作する、5 年前のイニシアチブを蘇らせます。意図的に早期モノクロの Macintosh の美学を喚起し、Susan Kare のデザインへのレガシーを称え、Quadra 700 または PowerBook 100(System 7 が動作中)上で Aldus SuperPaint 3.0 を使用します。すべての画像は厳密にオリジナルの Mac 解像度 512×342 ピクセルに合致しています。 ユーザー @polyducks の提案によりシリーズを『神奈川沖浪裏』から開始し、寄稿者 hypertalking が 01/36 としてキュレーションした本シリーズには、近日中に追加作品も掲載されます。Mac デスクトップ背景用にボーナスの高解像度バージョン(640×480)も用意されています。本作はクリエイティブ・コモンズ Attribution-NonCommercial-NoDerivatives 4.0 International ライセンスの下で共有されており、画像を再利用または投稿する場合は創作者へのクレジットとウェブサイトのリンクが必要です。 ## Text to translate Summary remains good; minor improvement in flow and clarity below: This digital project revives a five‑year‑old initiative to recreate Hokusai's "Thirty‑Six Views of Mount Fuji" as authentic one‑bit pixel art. It intentionally evokes early black‑and‑white Macintosh aesthetics, honoring the design legacy of Susan Kare and using Aldus SuperPaint 3.0 on a Quadra 700 or PowerBook 100 running System 7. Every image strictly matches the original Mac resolution of 512 × 342 pixels. Launched with "The Great Wave off Kanagawa"—suggested by user @polyducks and curated as item 01/36 by contributor hypertalking—the series will feature additional works soon. A bonus high‑resolution version (640 × 480) is available for Mac desktop backgrounds. The artwork is shared under a Creative Commons Attribution‑NonCommercial‑NoDerivatives 4.0 International License; users must credit the creator and link back to the website when reproducing or posting the images.

2026/04/26 1:11

これまで完了することのなかったプロジェクトを、コーディング支援ツールを使って再開させる行為。

## Japanese Translation: 元のサマリーは質が高く、明確で、不必要な冗長性を排除しつつテキストの核心を捉えていますが、主要項目に記載されている特定の AI モデル(Claude Code/Opus)を明示的に記載することで、および使用された核心的なコーディング規約(例:Pydantic V2 の注釈、Google スタイルの docstring など)を簡潔に列挙することで、記述のプロセスの厳密さを強調し、その精度をさらに高めることができます。 これらの軽微な改善を盛り込みながら、流れを維持した上で若干洗練させたバージョンを示します。 ## 精査後のサマリー 著者は「Sub-standard」という個人用音楽プロジェクトを約一夜間で機能させることに成功しました。このプロセスでは、**Claude Code (Opus 4.6)** を活用して複雑なコーディングタスクを処理させました。この実験は、明確な規約(Pydantic V2 の注釈や Google スタイルの docstring など)とコンテキストを与えることで、AI アシスタントが「Tsundoku」現象(時間的あるいは能力的な制約により停滞するプロジェクト)を超えて個別のコーディング目標を完了させることが可能であることを示しています。このワークフローでは、ストリーミングに `yt-dlp`、検索に `ytmusicapi` といった特定のライブラリを利用し、約 80 の OpenSubsonic エンドポイントを扱うために SQLite ストレージを統合しました。初期の構築では、構造化データを正しく返すようにstubbed エンドポイントを見直す必要がありましたが、最終的な結果はプロフェッショナルなリリースよりも個人の願望実現を最優先し、意図的に認証をスキップしました。このアプローチは、開発者が AI に過剰に依存することで「deskilling」という潜在的なリスクを浮き彫りにしますが、クリエイターにとって強力なアクセラレータとなります。完全なリポジトリは git 上で入手可能であり、本来なら未完了のままになる可能性のある個人用プロジェクトの迅速実行のための青写真を提供しています。