2026 年 5 月 27 日、Anatoly Kulikov らは Nature に Experimental randomness amplification という論文を発表した[1]。この論文の主題は、単に量子現象から乱数を取り出すことではない。不完全な乱数を入力にし、Bell test によってその乱数性を増幅し、出力に予測不能性が含まれていることを実験的に認証する点にある。つまり、本研究が扱っているのは、「ばらばらに見える数字列を作る方法」ではなく、「その数字列が本当に予測不能だったとどのような根拠で言えるのか」という問題である。
この成果は、ScienceAlert でも “Physicists Just Achieved ‘Perfect Randomness’ For The First Time Ever” という見出しで取り上げられた[2]。この見出しだけを見ると、物理学者がついに「完全にばらばらな数字列」を作ったように読める。しかし、ここでまず注意すべきなのは、乱数の問題は、数字がばらばらに見えるかどうかではないという点である。数字列を見て、0 と 1 がほどよく混ざっている、同じ数字が続きすぎていない、規則が見えにくい、と感じることはできる。だが、その数字列が本当に誰にも事前に予測できなかったのか、装置やプログラムに仕込みがなかったのか、攻撃者が生成条件を知っても次を読めなかったのかは、見た目だけでは分からない。
この点を押さえないまま “perfect randomness” という言葉を読むと、本研究の意味を取り違える。本研究の成果は、単に高品質な量子乱数生成器を作ったという話ではない。ETH Zurich の公式発表も、この成果を、乱数生成器に残り得る小さな偏りを Bell test と超伝導量子ビットによって克服する研究として説明している[3]。つまり、ここでいう「完全な乱数」とは、見た目が完全に不規則な数字列という意味ではなく、特定の物理実験と統計解析のもとで、予測不能性を認証できる乱数という意味で読む必要がある。
この違いは、日常的な乱数の理解からは見えにくい。計算機で乱数を作るとき、多くの場合、実際には疑似乱数が使われる。疑似乱数は、seed と呼ばれる初期値とアルゴリズムから作られるため、同じ seed を与えれば同じ数字列を再現できる。これは、シミュレーション、ゲーム、テストでは便利である。再現できるから、同じ条件で実験をやり直せる。しかし、暗号鍵、認証トークン、セッション ID、電子署名の nonce のように、攻撃者に次の値を予測されると破綻する用途では、再現可能性は危険になる。乱数は、用途によって「再現できること」が長所にもなり、弱点にもなる。
したがって、本稿で扱う中心問題は、「乱数とは何か」という一般論だけではない。問題は、乱数の予測不能性をどこに根拠づけるかである。疑似乱数はアルゴリズムを信頼する。暗号論的乱数は OS と entropy source と呼ばれる予測不能性の供給源を信頼する。物理乱数は熱雑音や電子ノイズなどの物理現象と測定装置を信頼する。量子乱数は量子測定の予測不能性を信頼する。しかし本研究が踏み込んだのは、装置内部を全面的に信頼するのではなく、観測された Bell test の相関から乱数性を認証する段階である。乱数の問題は、数字を作る技術の問題であると同時に、何を信頼すれば「予測不能だった」と言えるのかという信頼境界の問題でもある。
この視点に立つと、ScienceAlert の見出しは、単なる誇張として退けるべきものではない。むしろ、読者が乱数について持っている直感を問い直す入口になる。完全な乱数とは、見た目が整っていない数字列のことではない。攻撃者が生成過程の一部を知っていても、装置に偏りがあり得ても、それでもなお、出力に予測不能な成分が含まれていたと説明できる状態のことである。本稿では、まず乱数と疑似乱数の違いを確認し、次に乱数生成がなぜ難しいのかを発生源、測定、抽出、entropy、装置信頼に分解する。そのうえで、Bell test が乱数性の認証にどのように関わり、Experimental randomness amplification がどこに新規性を持つのかを整理する。
1. 乱数は「ばらばらな数字」ではなく「予測不能性の根拠」である
乱数という言葉から最初に想像されるのは、サイコロを振る、コインを投げる、数字が不規則に並ぶ、といった現象である。たとえば、サイコロを何度も振って 1、4、2、6、3、5 と出れば、乱数らしく見える。逆に、1、1、1、1、1 と続けば、何かがおかしいように感じる。しかし、乱数を本当に理解するには、出てきた数字列の見た目ではなく、生成過程に注目する必要がある。完全な偶然でも、短い範囲では同じ値が続くことがある。逆に、計算で作った疑似乱数でも、短い範囲では非常に自然なばらつきに見えることがある。
たとえば 0101010101 という列は規則的に見える。一方で 0110101100 という列は不規則に見える。しかし、前者が完全な偶然でたまたま出た可能性はあるし、後者が誰かの作った規則によって生成された可能性もある。出力だけを見ても、その列が本物の乱数なのか、疑似乱数なのか、意図的に作られた列なのかは決められない。ここで重要なのは、乱数らしく見えることと、乱数であることは同じではないという点である。
このため、乱数を評価するときには「どの数字が出たか」だけでは不十分である。重要なのは、その数字を事前に知る方法がなかったか、生成装置に仕込みがなかったか、攻撃者が seed や内部状態を推測できなかったか、測定装置が偏りを持っていなかったか、という生成過程の問題である。見た目の不規則さは、乱数を疑う入口にはなる。しかし、それだけで予測不能性を証明することはできない。乱数らしく見える数字列なら計算で作れるが、その数字列が本当に予測不能だったと示すことは、はるかに難しい。
| 観点 | 見た目の乱雑さ | 予測不能性 |
|---|---|---|
| 見る対象 | 出てきた数字列を見る。 | 数字列がどのような仕組みで生成されたかを見る。 |
| 判断方法 | 0 と 1 の比率、分布、連続回数、周期性などを調べる。 | 攻撃者が seed、内部状態、測定条件、装置の癖を知っても次を読めないかを考える。 |
| 誤解 | ばらばらに見えれば本物の乱数だと考えてしまう。 | ばらばらに見えるだけでは不十分であり、生成過程の信頼性が必要になる。 |
| 本稿の役割 | 乱数を出力列の問題として捉える入口になる。 | 本研究が目指す「認証可能な乱数」へ接続する。 |
したがって、本稿では乱数を「人間にとって読みにくい数字列」としてではなく、「攻撃者にも予測できないと説明できる生成過程」として扱う。この視点に立つと、疑似乱数、暗号論的乱数、物理乱数、量子乱数、そして Bell test 型の乱数増幅は、単に品質の高低で並ぶものではなく、予測不能性の根拠をどこに置くかの違いとして整理できる。疑似乱数ではアルゴリズムを信頼し、暗号論的乱数では OS と entropy source を信頼し、物理乱数では自然現象と測定装置を信頼し、量子乱数では量子測定の予測不能性を信頼する。本研究は、その先で、装置内部ではなく Bell test の観測結果を乱数性の根拠にしようとする試みである。
2. 計算機は本来、乱数を作る機械ではない
計算機は、同じ入力と同じ内部状態が与えられれば、同じ出力を返すように作られている。これは欠点ではなく、計算機としての基本性質である。たとえば、同じプログラムに同じデータを与えたのに、実行するたびに結果が変わるなら、ソフトウェアは検証できず、バグの再現もできない。計算機は、本来「同じ条件なら同じ結果を返す」ことによって信頼されている。ところが乱数では、次に何が出るかわからないことが求められる。ここに、決まった計算を正確に実行する機械である計算機と、予測できない値を必要とする乱数との根本的なずれがある。
したがって、「乱数を作ればよい」と言っても、実際には何を目的にした乱数なのかを分ける必要がある。ゲームで敵の動きを少し変えるための乱数、シミュレーションで多数の試行を行うための乱数、テストで入力値を散らすための乱数、暗号鍵や認証トークンを作るための乱数では、必要な性質が違う。ゲームやテストでは、同じ条件で同じ結果を再現できることが役に立つ。一方で、暗号や認証では、攻撃者に次の値を予測されないことが最優先になる。つまり、乱数に求められる性質は、用途によって変わる。
計算だけで作る乱数は、実際には「乱数のように見える決定論的な数列」である。最初の値を seed と呼び、その seed とアルゴリズムが同じなら、以後の出力も同じになる。これはシミュレーションやテストでは非常に便利である。同じ seed を使えば同じ実験を再現でき、バグの再現にも使える。しかし、暗号や認証では、この再現性が危険になる。攻撃者が seed や内部状態を推測できれば、未来の値を読めるからである。
| 用途 | 必要な性質 | 理由 |
|---|---|---|
| ゲーム | ほどよく不規則に見えること。 | 敵の動き、アイテム出現、イベント発生などに変化を出せればよく、必ずしも物理的な予測不能性までは必要ない。 |
| シミュレーション | 統計的に偏りが少なく、同じ条件を再現できること。 | 同じ seed で同じ試行を再現できると、計算結果の検証や比較がしやすくなる。 |
| テスト | 入力を広く散らしつつ、失敗時に再現できること。 | ランダム入力で不具合を見つけても、再現できなければ原因を調べにくい。 |
| 暗号・認証 | 攻撃者に予測されないこと。 | 鍵、トークン、セッション ID、署名用 nonce が予測されると、なりすましや秘密鍵の漏えいにつながる。 |
この違いを踏まえると、計算機で扱う乱数には大きく 2 種類がある。ひとつは、計算で作る疑似乱数である。これは高速で、同じ seed から同じ数列を再現できるため、シミュレーション、ゲーム、テストに向いている。もうひとつは、予測不能性を重視する乱数である。こちらは、OS が集めた物理的な揺らぎやハードウェア乱数源などを材料にし、暗号論的な処理によって、攻撃者が次を読みにくい形で提供される。両者の違いは、どちらが本物でどちらが偽物かではなく、再現性を重視するのか、予測不能性を重視するのかにある。
3. 疑似乱数は偽物ではなく、目的の違う道具である
疑似乱数は、計算で作られた「乱数のように見える数列」である。ここで重要なのは、「疑似」という言葉が付くから役に立たない、という意味ではないことである。疑似乱数は、計算機の内部で決まった手順によって作られるため、同じ seed と同じアルゴリズムを使えば、同じ数列を再現できる。この再現性は、暗号のような用途では弱点になるが、シミュレーション、ゲーム、統計実験、単体テストではむしろ利点になる。乱数に見える値を大量に速く作れ、しかも必要なら同じ条件を再現できるからである。
代表例が Mersenne Twister である。Mersenne Twister は、623 次元均等分布という性質と非常に長い周期を持つ疑似乱数生成器として発表され、多くのプログラミング環境で長く使われてきた[4]。ここでいう周期とは、疑似乱数生成器が同じ内部状態に戻るまでの長さである。周期が短いと、同じパターンが早く繰り返されてしまう。Mersenne Twister はこの周期が非常に長く、統計的にも扱いやすいため、科学計算やシミュレーションでは広く使われてきた。
しかし、周期が長いことや、統計的にきれいに散らばることは、攻撃者に予測されないことを意味しない。疑似乱数は、内部状態とアルゴリズムによって次の値が決まる。これは、巨大で複雑な台本を順番に読んでいる状態に近い。台本を知らない人には、次に何が出るか分からないので偶然に見える。しかし、台本の作り方と現在位置が分かれば、次に出る値は読める。疑似乱数の問題は、見た目が乱数らしいかどうかではなく、内部状態を知られたときに未来の値を予測される点にある。
| 用途 | 疑似乱数が向く理由 | 注意点 |
|---|---|---|
| シミュレーション | 同じ seed で同じ結果を再現でき、条件を変えた比較や計算結果の検証がしやすい。 | 乱数生成器の周期、相関、分布の癖が結果に混入しないかを確認する必要がある。 |
| ゲーム | 高速に大量の乱数を作れ、敵の行動、アイテム出現、イベント発生などに変化を与えられる。 | 対戦、公平性、報酬抽選、課金要素などでは、予測可能性や操作可能性が問題になる場合がある。 |
| 単体テスト | 乱択入力を使いながら、失敗時には同じ seed で同じ入力を再現できる。 | 再現性を重視するため、攻撃者に予測されないことを重視する暗号用途とは目的が異なる。 |
| 暗号鍵生成 | 非暗号用疑似乱数は本来向かない。 | seed や内部状態を推測されると、鍵、トークン、セッション ID、署名用 nonce などが予測され、システム全体の安全性が崩れる。 |
したがって、疑似乱数の問題は「偽物だから悪い」という話ではない。疑似乱数は、再現性、高速性、統計的な分布を必要とする領域では正当な道具である。一方で、攻撃者に予測されると破綻する領域では、その決定論的な性質が根本的な弱点になる。ここで必要なのは、疑似乱数を一律に否定することではなく、再現性が必要な用途と、予測不能性が必要な用途を分けることである。
4. 統計的にランダムなことと、暗号学的に安全なことは違う
疑似乱数が用途によって有用にも危険にもなることは、実際のプログラミング環境を見ると分かりやすい。Python の random モジュールは、Mersenne Twister を中核に使い、長い周期と高速性を持つ一方で、完全に決定論的であり暗号用途には不適切であると明記している[5]。一方で、同じ Python でも、暗号トークン、パスワードリセット URL、認証に使う秘密値の生成には secrets モジュールを使うべきだと公式に説明されている[6]。これは、Python に乱数生成の方法が重複して用意されているという話ではない。統計的な用途に向いた乱数と、攻撃者に予測されてはならない用途に向いた乱数では、求められる性質が違うということである。
Ruby でも、暗号用途には SecureRandom が用意されている[7]。Linux では getrandom システムコールが、カーネルの乱数源から乱数を取得する API として提供されている[8]。これらに共通しているのは、乱数を単に「ばらばらな値」として扱っていない点である。暗号や認証に使う乱数では、値が均等に散らばっているだけでは不十分である。攻撃者が出力の一部を見ても、実装を知っていても、生成時刻や実行環境を推測していても、次の値を現実的に読めないことが必要になる。
この違いが、統計的ランダム性と暗号学的安全性の違いである。統計的ランダム性は、0 と 1 の比率、値の分布、周期、自己相関などを見る。これは、シミュレーションや統計実験では重要である。たとえば、値が特定の範囲に偏れば、シミュレーション結果も偏る。周期が短ければ、長時間の計算で同じパターンが混入する。一方で、暗号学的安全性は、攻撃者が出力の一部、生成時刻、実装、アルゴリズム、環境情報を知っていても次の値を読めないかを問う。暗号では、乱数の見た目ではなく、攻撃者がどこまで知っているか、何を操作できるかという攻撃者モデルが重要になる。
暗号では乱数が失敗すると、アルゴリズムそのものが強くても安全性が崩れる。秘密鍵、セッション ID、認証トークン、電子署名の nonce は、予測されてはならない。たとえば、暗号方式そのものが十分に強くても、鍵を作る乱数が弱ければ、攻撃者は暗号を数学的に破らずに鍵を推測できる。電子署名の nonce が予測可能なら、署名アルゴリズムではなく乱数生成の弱さから秘密鍵が漏れる場合がある。つまり、暗号における乱数は補助的な部品ではなく、安全性を成立させる前提である。
既稿では、暗号の長期安全性と移行判断を扱った。そこでは、計算資源の増大、理論の進展、量子計算の可能性によって、現在安全に見える暗号も将来は破られる可能性があることを整理した[9]。しかし本稿で扱うのは、そのさらに手前の問題である。暗号方式が将来破られるかどうか以前に、現在の鍵、nonce、トークンを作る乱数が弱ければ、実装は今すぐ危険になる。したがって、乱数の問題は暗号の周辺問題ではなく、暗号が暗号として機能するための入口にある。
| 評価軸 | 見るもの | 主な用途 |
|---|---|---|
| 統計的品質 | 分布、偏り、周期、相関を見る。 | シミュレーション、ゲーム、統計実験で重要になる。 |
| 暗号学的安全性 | 攻撃者が一部の出力、実装、生成時刻、環境情報を知っても次を予測できないかを見る。 | 鍵生成、認証、署名、セッション管理で重要になる。 |
| 物理的予測不能性 | 出力が決定論的な計算だけではなく、物理現象の揺らぎに由来するかを見る。 | 高信頼乱数源や乱数標準に関係する。 |
| 認証可能性 | 装置を全面的に信じなくても、乱数性を外部から確認できるかを見る。 | Bell test 型の量子乱数認証で重要になる。 |
乱数の品質を語るときに、この 4 つを混同すると議論が崩れる。Mersenne Twister は統計的には優秀だが、暗号用ではない。OS の暗号論的乱数生成器は暗号用途に向くが、entropy source と実装を信頼する。物理乱数は自然現象を使うが、測定装置の偏り、故障、後処理の問題を残す。Bell test 型の乱数認証は、その装置信頼をさらに減らそうとする。この階層を分けることが、本稿で扱う Nature 論文を理解する前提になる。
5. 乱数生成の難しさは、複数の問題が重なっている
乱数生成の難しさは、「計算機が決定論的だから」という一文だけでは説明しきれない。ここでいう決定論的とは、同じ入力、同じプログラム、同じ内部状態が与えられれば、同じ結果が出るという意味である。計算機はこの性質を持つからこそ、計算結果を検証でき、バグを再現でき、ソフトウェアを安定して運用できる。しかし、乱数では「同じ条件なら同じ結果になる」という性質が問題になる。次に出る値が毎回決まっているなら、それは乱数らしく見えても、内部状態を知る者には予測できる値になるからである。
ただし、決定論的であることだけが難しさではない。実際の乱数生成では、まずどこかから「乱雑さ」を集める必要がある。ここでいう乱雑さとは、単に見た目がごちゃごちゃしていることではなく、攻撃者にも予測しにくい揺らぎのことである。たとえば、キーボード入力のタイミング、ディスク I/O の揺れ、ネットワーク到着時刻、電子回路のノイズ、熱雑音、量子測定などは、計算機の外側または下層にある不規則な現象として利用できる。しかし、それらが本当に予測しにくいかどうかは、状況によって変わる。ネットワーク遅延は外部から操作されるかもしれず、電子ノイズには装置固有の偏りが混ざるかもしれない。
この「どれくらい予測しにくいか」を考えるときに出てくる概念が entropy である。entropy は、この文脈では情報理論や暗号で使われる語であり、ある値にどれくらい予測困難性が含まれているかを表す考え方である。100 ビットのデータがあっても、すべて 0 なら予測は簡単なので entropy はほとんどない。一方で、100 ビットの各値が攻撃者にほとんど予測できないなら、そこには大きな entropy がある。したがって、データの長さと乱数としての強さは同じではない。重要なのは、攻撃者が知らない情報、攻撃者が操作できない揺らぎがどれだけ含まれているかである。
さらに、生の乱雑さはそのまま使えるとは限らない。物理現象から得た値には、0 が少し多い、直前の値と相関する、一定周期のノイズが混ざる、測定装置の癖が出る、といった問題があり得る。そこで、偏った入力から、より均一で扱いやすい乱数を取り出す処理が必要になる。これを randomness extraction、乱数抽出と呼ぶ。乱数抽出は、乱雑さを整えて使いやすくする処理である。ただし、入力にまったく entropy がなければ、抽出しても本物の乱数にはならない。乱数抽出は、無から乱数を作る魔法ではなく、入力に含まれる予測困難性を安全に取り出すための処理である。
もう 1 つ誤解しやすいのが、統計検定である。統計検定とは、出てきた数字列に明らかな偏りや規則性がないかを調べる方法である。たとえば、0 と 1 の比率が極端に偏っていないか、同じ値が不自然に続きすぎていないか、一定の周期が見えないか、前の値から次の値が推測できるような相関がないかを見る。この検定は重要だが、合格したからといって「本当に予測不能である」と証明されるわけではない。よくできた疑似乱数は統計検定に合格できる。しかし、seed や内部状態が分かれば次の値を読める。つまり、統計検定は乱数の見た目の異常を見つける道具であり、攻撃者に対する安全性を直接証明する道具ではない。
安全用途の乱数生成では、このような複数の問題を同時に扱う必要がある。RFC 4086 は、暗号やセキュリティで使う乱数について、攻撃者を想定した予測困難性、十分な seed、環境から集める乱雑さの評価が重要であることを示している[10]。NIST SP 800-22 は、乱数と疑似乱数の統計検定を扱うが、統計検定は明らかな偏りや相関を発見する手段であり、予測不能性そのものの証明ではない[11]。NIST SP 800-90B は、random bit generation に使う entropy source、つまり乱数生成の材料になる予測困難な情報源の設計、評価、健全性検査を扱っており、物理的な乱雑さを得るだけでは足りず、それをどの程度信頼できるかを評価する必要があることを示している[12]。
ここで重要なのは、乱数生成が単一の問題ではないということである。偶然の発生源を見つける問題、物理現象を測る問題、生データの偏りを除く問題、entropy を見積もる問題、攻撃者の知識を考える問題、装置の故障や不正を検出する問題が重なっている。どれか 1 つを解いても、全体の乱数問題が解けるわけではない。物理現象を使っても、測定装置が偏れば出力は偏る。統計検定に合格しても、内部状態が漏れれば未来の値は読まれる。強い抽出処理を使っても、入力に entropy がなければ予測不能性は増えない。
| 階層 | 難しさ | 説明 |
|---|---|---|
| 発生源 | どこから予測不能な揺らぎを得るか。 | キーボード入力、ディスク I/O、電子ノイズ、熱雑音、量子測定などが候補になるが、攻撃者が予測または操作できる揺らぎは乱数の材料として弱い。 |
| 測定 | 物理現象をどう観測するか。 | センサー、検出器、温度、電源、回路の癖によって、元の現象にない偏りが出力に混ざる。 |
| 生データ | 測った値をそのまま使えない。 | 物理ノイズには偏り、相関、周期性、装置固有の癖が混ざることがある。 |
| 抽出 | 偏った入力から使える乱数を取り出す必要がある。 | randomness extraction は、入力に含まれる entropy を整形する処理であり、entropy がない入力から乱数を作る処理ではない。 |
| seed | 最初の材料が弱いと全体が弱くなる。 | 現在時刻やプロセス ID のような予測可能な値だけを seed にすると、攻撃者に候補を絞られ、総当たりされやすい。 |
| entropy | どれだけ予測不能かを見積もりにくい。 | 同じ長さのデータでも、攻撃者が何を知っているか、何を操作できるかによって、実際の予測困難性は変わる。 |
| 検定 | 統計検定は安全性の証明ではない。 | 検定に合格する疑似乱数は作れるため、見た目の分布だけでは攻撃者への強さを示せない。 |
| 信頼 | 装置が本当に正しく動いているか確認しにくい。 | ハードウェア乱数でも量子乱数でも、故障、偏り、バックドア、後処理の問題が残る。 |
この分解から、本研究の位置が見えてくる。乱数生成の難しさは、単に数字を作ることではない。物理的な揺らぎをどう取得し、どう測定し、どう整形し、どう評価し、どう信頼するかが問題である。Bell test 型の量子乱数増幅は、このうち特に「信頼」と「認証」の問題に踏み込む。つまり、装置が本当に乱数を出していると信じるだけではなく、観測された物理的相関から、その出力に予測不能性が含まれていたと示そうとするのである。
6. 物理乱数は問題を解くが、装置信頼の問題を残す
計算だけでは本物の偶然を作れないなら、自然現象を使えばよい。これが物理乱数の発想である。熱雑音、電子ノイズ、放射性崩壊、光子検出、量子測定などは、計算式ではなく物理現象から乱雑さを取り出す。たとえば、電子回路には温度や電気的な揺らぎによって細かなノイズが生じる。放射性崩壊では、個々の崩壊がいつ起きるかを事前に完全には予測できない。量子測定では、測定結果が確率的に現れる。このような現象を利用すれば、計算機内部の決定論的な計算だけに頼らず、物理的な揺らぎを乱数の材料にできる。近年の true random number generation 研究でも、物理的な entropy source を使って高品質な乱数を得る試みが続いている[13]。
しかし、物理乱数はすべてを解決するわけではない。物理現象そのものに予測不能な揺らぎが含まれていても、それを乱数として使うには、必ず測定装置を通す必要がある。ここでいう装置信頼とは、「この装置は、本当に測りたい物理現象を測っている」「測定結果に大きな偏りを入れていない」「故障して固定値や偏った値を出していない」「外部から操作されていない」「測定後の処理が乱雑さを壊していない」という前提を受け入れることである。つまり、信頼とは気分の問題ではなく、出力を乱数として扱うために確認済み、または前提として置くしかない条件の集合である。
この装置信頼が問題になるのは、乱数の利用者が物理現象そのものを直接見ているわけではないからである。利用者が受け取るのは、熱雑音そのものでも、電子ノイズそのものでも、量子測定そのものでもない。実際に受け取るのは、センサー、検出器、回路、ソフトウェアの後処理を通った 0 と 1 の列である。もし温度が変わって出力の比率が変われば、物理現象の揺らぎは装置の癖に汚染される。電源ノイズが混ざれば、外部環境の影響が出力に入る。検出器が劣化して 0 が多くなれば、出力は偏る。外部から信号を注入されれば、攻撃者が乱数源に影響を与えられる。さらに、測定後の後処理が間違っていれば、せっかくの物理的な乱雑さが壊れる。
| 乱数源 | 利点 | 残る問題 |
|---|---|---|
| 熱雑音 | 電子回路内の自然な揺らぎを利用できる。 | 温度、回路設計、電源環境に依存し、偏りを補正する必要がある。 |
| 電子ノイズ | ハードウェアに組み込みやすい。 | 外部干渉、故障、製造差によって品質が変わる。 |
| 放射性崩壊 | 物理的に予測困難な過程として扱いやすい。 | 装置、安全性、測定効率、実用性に制約がある。 |
| 量子測定 | 量子力学の予測不能性を直接利用できる。 | 測定装置、検出器、後処理が正しく動いていることを前提にする必要がある。 |
このため、物理乱数は「計算だけでは偶然を作れない」という問題には対応するが、「その装置が本当に正しく乱雑さを取り出しているのか」という問題を残す。乱数の根拠は、アルゴリズムから物理現象へ移る。しかし同時に、確認すべき対象は、ソフトウェアの計算規則から、測定装置、検出器、回路、後処理へ移る。ここでいう信頼とは、装置を気分として信用することではなく、出力を乱数として扱うために、装置が正しく測り、正しく変換し、外部から操作されていないと前提にすることである。ここに、量子乱数であっても装置信頼が問題になる理由がある。
7. 量子乱数は「量子だから完全」とは言えない
量子力学では、測定結果が確率的に現れると考えられている。たとえば、ある量子状態を測定すると 0 が出るか 1 が出るかは、測定前に完全には決まっていない。この性質を使えば、計算ではなく物理法則に基づく予測不能性を乱数に使える。したがって、量子乱数は疑似乱数よりも根本的な乱数源に近い。疑似乱数は seed とアルゴリズムが分かれば再現できるが、量子測定の結果は、現在の物理学では測定前に完全に決まっていた値としては扱われないからである。
しかし、ここで「量子だから完全」と言ってしまうと議論が飛躍する。問題は、量子現象そのものが乱数源として弱いということではない。問題は、量子現象を乱数として利用するためには、現実の装置を通して測定し、電気信号に変換し、後処理を行い、最終的な 0 と 1 の列として出力しなければならないという点にある。量子測定そのものに予測不能性があっても、利用者が受け取るのは量子現象そのものではなく、検出器、光源、量子ビット、増幅器、温度制御、ファームウェア、後処理を通過した出力である。
たとえば、光子を使った量子乱数生成器を考える。光子がどちらの経路で検出されるかが量子的に不確定だとしても、検出器 A と検出器 B の感度が少し違えば、0 と 1 の比率は偏る。超伝導量子ビットを使う場合でも、量子ビットの状態準備、読み出し装置、増幅器、温度環境、ノイズ、校正のずれが出力に影響する。さらに、測定後の後処理が不適切なら、量子現象に含まれていた予測不能性を正しく取り出せない。つまり、量子乱数であっても、実際の出力には装置由来の偏りや誤差が混ざり得る。
| 観点 | 量子現象そのもの | 乱数として使うときの問題 |
|---|---|---|
| 測定結果 | 量子測定では、結果が確率的に現れると考えられる。 | 測定結果を取り出す検出器や読み出し回路に偏りがあると、出力の 0 と 1 の比率が歪む。 |
| 乱数源 | 量子状態は、疑似乱数より根本的な予測不能性の候補を与える。 | 装置が本当に意図した量子状態を作り、意図した測定を行っているかを確認する必要がある。 |
| 出力 | 量子現象は物理的な揺らぎを提供する。 | 利用者が受け取るのは、光源、検出器、増幅器、ファームウェア、後処理を通ったビット列である。 |
| 偏り | 理想的な量子測定なら、設計に応じた確率分布が得られる。 | 現実の装置では、温度、劣化、校正ずれ、外部干渉によって偏りが生じ得る。 |
| 信頼 | 量子力学の予測不能性を乱数の根拠にできる。 | その予測不能性が最終出力に正しく反映されているかは、装置と後処理の正しさに依存する。 |
このため、「量子なら完全なのか」という問いには、正確には「量子現象そのものは予測不能性の有力な根拠になるが、量子を測る装置をそのまま信じてよいかは別問題である」と答えるべきである。量子乱数は、疑似乱数よりも根本的な予測不能性に近い。しかし、実用上の乱数は、量子現象そのものではなく、量子現象を測定して得られたデータである。そこには、測定装置の偏り、故障、外部干渉、後処理の誤りが入り込む余地がある。
また、量子のランダム性は、人間の自由意志や意味ある選択を説明するものではない。既稿で整理したように、自由意志の問題は量子的な揺らぎがあるかどうかだけでは決まらない[14]。さらに、観測は単なる値の取得ではなく、状態の更新として理解できる側面を持つ[15]。量子力学を扱うときにも、確率、観測、主体、履歴を混同しないことが重要である[16]。
本稿に必要なのは、量子力学を神秘化することではない。量子測定には予測不能性がある。しかし、乱数として使うには、その予測不能性が出力へ正しく反映されていることを確認しなければならない。この確認を装置内部への信頼に依存させるのか、それとも外部から観測可能な物理相関によって認証するのか。この分岐が、次に扱う Bell test の役割である。
8. Bell test は、事前に決まっていた答えでは説明できない相関を調べる実験である
Bell test は、量子力学の非古典的な相関を調べる実験である。ただし、この説明だけでは何をしているのか分かりにくい。直感的には、Bell test は、離れた 2 つの装置に別々の質問をし、それぞれが返す答えの組み合わせを大量に集め、その答えの相関が「最初から答えが決まっていた」という説明で済むかどうかを調べるテストである。ここでいう相関とは、片方の答えともう片方の答えがどの程度関係しているかという意味である。たとえば、片方が 0 を返すとき、もう片方も 0 を返しやすいのか、逆に 1 を返しやすいのか、質問の組み合わせによってその関係がどう変わるのかを見る。
もう少し具体的に考える。A 側と B 側に 2 つの装置があり、それぞれが 0 または 1 を返すとする。実験者は、A 側にどの測定をするかを選び、B 側にもどの測定をするかを選ぶ。そして、A 側の答えと B 側の答えを記録する。この操作を何度も繰り返す。もし 2 つの装置の答えが強く関係していた場合、古典的には 2 つの説明が考えられる。ひとつは、測定前から答えの表が装置の中に仕込まれていたという説明である。もうひとつは、片方の装置が測定中にもう片方へ情報を送って答えを合わせたという説明である。
Bell test が調べるのは、この 2 つの古典的な説明で十分なのかという点である。Bell は、離れた粒子の測定結果が、局所的な隠れた変数だけで説明できるなら満たすべき制約を示した[17]。ここでいう隠れた変数とは、測定前から結果を決めているが、実験者には見えていない内部情報のことである。局所的とは、片方の場所で起きたことが、光より速くもう片方へ影響しないという意味である。つまり Bell test は、「測定前から決まっていた内部情報」と「通常の信号伝達」だけで説明できる世界なら、測定結果の相関には上限がある、という考え方に基づいている。
Clauser、Horne、Shimony、Holt は、この考えを実験で検証しやすい不等式として定式化した[18]。不等式とは、ある条件が成り立つなら、この値はここまでしか大きくならない、という制約である。Bell test では、古典的な事前決定と通常の信号伝達だけで説明できるなら、測定結果の相関は一定の範囲に収まる。しかし、量子もつれを使った実験では、その範囲を超える相関が観測される。これを Bell 不等式違反という。違反という言葉は、実験が間違っているという意味ではない。古典的な説明だけでは実験結果を説明できない、という意味である。
その後、Aspect、Dalibard、Roger は、時間的に変化する測定設定を用いた Bell 不等式の実験検証を行った[19]。測定設定を途中で変えるのは、装置があらかじめ答えを準備しにくくするためである。さらに、離れた場所でほぼ同時に測定することで、片方の結果がもう片方へ通常の信号として伝わったという説明を抑える。つまり Bell test は、単に不思議な量子相関を観察する実験ではなく、「事前に決まっていた」「あとから通信した」という逃げ道をできるだけ塞ぎながら、古典的な説明を超える相関があるかを調べる実験である。
| 観点 | 意味 | Bell test での役割 |
|---|---|---|
| 質問 | A 側と B 側の装置に対して、どの測定を行うかを選ぶ。 | 測定設定を変えることで、装置があらかじめ固定の答えを準備するだけでは説明しにくい状況を作る。 |
| 答え | 各装置が 0 または 1 のような測定結果を返す。 | 大量の試行で、A 側と B 側の答えの関係を集計する。 |
| 相関 | 一方の答えと他方の答えがどの程度関係しているかを表す。 | 古典的な事前決定だけで説明できる範囲に収まるか、量子力学的な範囲まで強くなるかを見る。 |
| Bell 不等式 | 局所的な隠れた変数で説明できるなら超えられない相関の上限を表す。 | この上限を超えると、古典的な事前決定と通常通信だけでは説明できない相関があると判断する。 |
| Bell 不等式違反 | 測定結果の相関が古典的な上限を超えること。 | 量子もつれによる非古典的な相関が観測されたことを示し、乱数性を認証する手がかりになる。 |
Bell test で分かるのは、「2 つの装置の答えが単に偶然一致したかどうか」ではない。分かるのは、その答えの相関が、測定前から全部決まっていたという説明や、測定中に情報を送り合ったという説明だけで足りるかどうかである。もし Bell 不等式違反が十分に観測され、かつ通常の信号伝達で説明できない配置になっていれば、測定結果は古典的な表を読んでいるだけでは説明しにくくなる。ここから、測定結果には事前に完全には決まっていなかった成分、つまり予測不能な成分が含まれると考えられる。
| 説明候補 | 古典的な理解 | Bell test での意味 |
|---|---|---|
| 事前決定 | 測定前から答えがすべて決まっていたと考える。 | Bell 不等式違反が十分に観測されれば、この説明だけでは足りない。 |
| 信号伝達 | 片方の装置がもう片方へ情報を送ったと考える。 | 測定中に光速でも情報が届かない配置を作ることで、この逃げ道を抑える。 |
| 量子相関 | 古典的な事前決定と通常通信では説明できない相関として扱う。 | 測定結果に予測不能な成分が含まれることを認証する物理的根拠になる。 |
Bell test が本稿に出てくる理由は、この点にある。本稿の主題は、単に数字列を作ることではなく、その数字列が本当に予測不能だったとどこまで言えるかである。通常の量子乱数生成器では、量子測定を使っているとしても、装置が正しく動いていることをかなり信頼する必要がある。これに対して Bell test を使うと、装置の内部構造をすべて知っていなくても、観測された相関そのものから「古典的な事前決定だけでは説明できない」と判断できる。つまり、乱数性の根拠を、装置内部の仕様やメーカーの説明ではなく、外部から観測できる物理相関に移すことができる。
Ekert は、Bell theorem を量子暗号へ接続し、Bell 不等式違反を安全性の根拠として使う方向を示した[20]。さらに Pironio らは、Bell theorem によって乱数を認証する方法を示し、装置内部の詳細な信頼に依存しない乱数生成の道を開いた[21]。つまり Bell test は、乱数を直接作る魔法ではない。Bell test は、出てきた結果が単なる事前決定や通常通信では説明できないことを示し、その結果に予測不能性が含まれていたと認証するための仕組みである。
9. それでも Bell test には測定設定を選ぶための乱数が必要になる
Bell test によって乱数性を認証できるなら、それで問題は解決するように見える。しかし、ここには見落としやすい問題がある。Bell test では、A 側と B 側の装置に対して、毎回どの測定を行うかを選ばなければならない。この「どの測定を行うか」という選択を測定設定と呼ぶ。測定設定があらかじめ固定されていたり、装置側に事前に読まれていたりすると、装置はその設定に合わせて答えを準備できる可能性がある。そうなると、観測された相関が本当に量子力学的なものなのか、それとも装置が測定設定を知っていてうまく答えを合わせただけなのか、区別しにくくなる。
たとえば、試験で出題される問題が事前に受験者へ知られていれば、その試験結果だけでは本当の理解力を測りにくい。Bell test でも同じである。装置が、次にどの測定をされるかを事前に知っていれば、その測定に合わせた答えを内部に用意できる。すると、外から見ると強い相関が出ているように見えても、それが本当に「測定前から決まっていた答えでは説明できない相関」なのかが怪しくなる。だから Bell test では、測定設定を装置に読まれない形で選ぶ必要がある。
ここで問題になるのが、測定設定を選ぶためにも乱数が必要になるという点である。Bell test は、観測された相関から乱数性を認証するための仕組みである。しかし、その Bell test を正しく行うには、測定設定を予測不能に選ぶ必要がある。つまり、乱数を認証したいのに、その認証実験を成立させるために、先に乱数が必要になる。このように、あるものを得るために、その同じものを前提として必要としてしまう構造を、ここでは循環と呼んでいる。
| 段階 | 何をするか | なぜ乱数が必要になるか |
|---|---|---|
| 測定設定の選択 | A 側と B 側で、毎回どの測定を行うかを選ぶ。 | 装置に測定設定を事前に読まれると、装置が答えを仕込める可能性がある。 |
| Bell test の実行 | 選ばれた測定設定に従って測定し、A 側と B 側の答えの相関を集める。 | 測定設定が十分に予測不能でなければ、観測された相関の意味が弱くなる。 |
| 乱数性の認証 | Bell 不等式違反から、測定結果に予測不能な成分が含まれることを評価する。 | 測定設定の選択に使った乱数をどこまで信用できるかが、認証の前提になる。 |
この章で言いたいのは、Bell test が無意味だということではない。むしろ逆である。Bell test は、装置内部を全面的に信じなくても、観測された相関から乱数性を認証できる強力な方法である。しかし、そのためには、測定設定を装置に読まれないように選ぶ必要がある。ここで最初から完全な乱数を必要とするなら、「乱数を作るために、完全な乱数を先に持っていなければならない」という話になってしまう。これでは、乱数生成の根本問題を十分に解いたことにならない。
そこで重要になるのが randomness amplification である。randomness amplification は、最初から完全な乱数を持っていると仮定するのではなく、少し偏った不完全な乱数を入力として使い、Bell test の量子相関によって、より強く認証された乱数へ変換する考え方である。つまり、この章で示した問題は、次章で扱う randomness amplification がなぜ必要になるのかを説明するための前提である。本研究の中心は、単に Bell test で乱数を確認したことではなく、不完全な乱数から出発して、より信頼できる乱数へ増幅した点にある。
10. randomness amplification は、不完全な乱数をより信頼できる乱数へ増幅する
randomness amplification は、日本語にすれば乱数増幅である。ただし、ここでいう増幅は、少ない乱数を単純に大量の乱数へ水増しするという意味ではない。増幅されるのは、出力の量だけではなく、入力に残っている予測不能性を、より強く確認できる形へ変換するという意味である。第 9 章で見たように、Bell test で乱数性を認証するには、測定設定を選ぶための乱数が必要になる。もし最初から完全な乱数を要求するなら、「乱数を認証するために完全な乱数が先に必要になる」という構造から抜け出せない。randomness amplification は、この問題に対して、完全ではない乱数から出発しても、量子相関を使えば、より強く認証された乱数へ近づけられるのではないか、という発想である。
ここでいう不完全な乱数とは、完全に予測可能ではないが、完全に理想的でもない乱数である。たとえば、0 と 1 の比率が少し偏っているかもしれない。外部の情報と少し相関しているかもしれない。攻撃者が一部の傾向を知っているかもしれない。それでも、攻撃者がすべてを完全に予測できるわけではなく、入力に一定の自由度が残っているなら、その残った予測不能性を利用できる可能性がある。randomness amplification が扱うのは、このような「完全ではないが、完全に読まれているわけでもない」乱数である。
Colbeck と Renner は、不完全な自由乱数を増幅できることを理論的に示し、Bell 不等式違反と no-signalling principle を背景に、部分的に自由な random bits から、外部変数とほとんど相関しない random bits を作る方向を示した[22]。ここでいう no-signalling principle とは、離れた場所の測定結果を使って光より速く情報を送ることはできない、という物理的な制約である。Bell test で重要なのは、離れた 2 つの測定装置が通常の信号伝達で答え合わせをしているわけではない、という条件である。randomness amplification は、このような物理的制約を利用して、古典的な計算だけではできない乱数性の認証を行う。
その後、Gallego らは、任意に弱いが非ゼロの自由度を持つ事象から full randomness を得る理論的枠組みを示した[23]。ここで重要なのは、出発点が「完全な乱数」ではないことである。測定設定の選択に使う乱数が少し偏っていても、完全に装置側へ読まれていなければ、Bell test の相関を通じて、その出力により強い予測不能性を認証できる可能性がある。つまり、randomness amplification は、乱数認証に必要な最初の乱数を理想化せず、不完全な入力から出発しようとする理論である。
ここで、単なるハッシュ処理や圧縮との違いを明確にする必要がある。入力が完全に予測可能なら、古典的な計算だけで本物の乱数を増やすことはできない。たとえば、ある入力をハッシュ関数に通すと、出力は見た目には複雑で均一に見えるかもしれない。しかし、攻撃者が入力とハッシュ関数を知っていれば、同じ出力を計算できる。これは出力の見た目を整えているだけであり、攻撃者にとって未知の予測不能性を新しく作っているわけではない。古典的な後処理は、偏りを減らしたり、分布を整えたりできるが、入力にない予測不能性を無から作ることはできない。
randomness amplification の要点は、不完全な入力に残っている予測不能性を、量子非局所相関を使って、より強く認証された出力へ変換することにある。入力乱数が少し偏っていたり、外部情報と少し相関していたりしても、Bell test の条件を満たすことで、その出力には古典的には説明できない予測不能性が含まれると評価できる。ここで量子非局所相関とは、離れた 2 つの測定結果が、事前に決まっていた答え表や通常の信号伝達だけでは説明できない形で関係していることを指す。この相関を使うことで、装置内部の説明を全面的に信じるのではなく、観測された物理的結果から乱数性を評価できる。
| 処理 | できること | できないこと |
|---|---|---|
| 古典的な後処理 | 偏りを減らし、出力分布を整えることができる。 | 入力に予測不能性がなければ、本物の乱数を増やせない。 |
| 暗号論的疑似乱数生成器 | 安全な seed から長い疑似乱数列を作れる。 | seed が弱い場合、全体の安全性も弱くなる。 |
| randomness amplification | 不完全な乱数に残る自由度を、Bell test の量子相関でより強く認証できる。 | 実験条件、統計解析、物理的仮定が必要になる。 |
このため、randomness amplification は、乱数を単に大量生産する技術ではない。乱数性が不完全な入力から出発し、その入力に残っている予測不能性を、量子実験によってより強く認証できる形へ変換する技術である。前章で示した「乱数を認証するために先に乱数が必要になる」という問題に対して、最初から完全な乱数を仮定せずに済む可能性を与える点に意味がある。本稿で扱う Nature 論文の新規性は、この理論的方向を現実の実験装置で実行した点にある。
11. 本研究の新規性は「量子乱数生成」ではなく「実験的な乱数増幅」にある
本稿で扱う研究を正確に読むには、「量子で乱数を出した」という説明では不十分である。量子乱数生成器は以前から存在する。量子測定の結果が確率的に現れることを利用し、その結果から 0 と 1 の列を作る装置は、すでに研究され、実用化も進んでいる。したがって、新規性は「量子現象を乱数源に使ったこと」そのものにはない。本研究の要点は、不完全な乱数を入力にし、Bell test によって乱数性を認証しながら増幅する実験を成立させた点にある。Nature 論文の arXiv 版も、Device-Independent Randomness Amplification として、装置内部の働きに依存しない形で randomness amplification を実現する問題を扱っている[24]。
ここで「装置内部の働きに依存しない」という表現は、装置が不要になるという意味ではない。実際には、超伝導量子ビット、測定装置、制御回路、冷却装置、統計解析は必要である。重要なのは、装置の設計仕様を全面的に信じるのではなく、観測された Bell test の結果から、出力に予測不能性が含まれていることを評価する点である。通常の量子乱数生成器では、装置が本当に意図した量子測定を行っていることを大きく前提にする。これに対して、本研究は、装置内部の詳細ではなく、外部から観測できる Bell 不等式違反を乱数性の根拠として使う。
Nature 論文の要点は、現実的な quantum information processing devices は不完全であり、そこから出る random bits もそのままでは flawed であり得る、という認識から始まる。これを cryptographic keys のような usable applications に使うには、randomness quality を強化する必要がある。その強化が randomness amplification である。さらに同論文は、randomness amplification が device-independent であり、量子装置の内部動作について仮定しないこと、loophole-free Bell test を特定のパラメーター領域で実行する必要があること、高い Bell violation と高い repetition rate が必要であることを明示している[1]。
ここでいう loophole-free Bell test とは、Bell test の結果を古典的な説明で逃げられないように、主要な抜け道をできるだけ塞いだ実験である。たとえば、片方の測定結果がもう片方へ通常の信号として届いたのではないか、検出されなかった試行を都合よく無視しているのではないか、測定設定が装置側に事前に読まれていたのではないか、といった疑いを抑える必要がある。Bell violation は、観測された相関が古典的な上限を超えることである。repetition rate は、実験をどれだけ高い頻度で繰り返せるかを表す。乱数増幅では、これらが単なる実験性能ではなく、認証できる乱数量と信頼性に関わる。
ETH Zurich の実験では、2 つの超伝導量子ビットを用い、それらを約 30 m 離して配置した。これは、測定の最中に光速でも情報が片方からもう片方へ届かない条件を作り、通常の信号伝達によって相関が説明される逃げ道を抑えるためである。ScienceAlert は、この実験が 9 時間ほどで 10 億回を超える Bell-test trials を行ったと紹介している[2]。重要なのは試行回数の多さそのものではなく、高速で大量の測定を行い、Bell test による乱数増幅が成立する実験領域へ到達したことである。
| 従来の理解 | 足りなかった点 | 本研究の前進 |
|---|---|---|
| 疑似乱数 | 計算で決まるため、seed や内部状態が分かると予測される。 | 量子測定と Bell test によって、計算だけではない予測不能性へ接続した。 |
| 通常の量子乱数生成器 | 装置が正しく量子現象を測っていることを信頼する必要がある。 | 観測された Bell 不等式違反を乱数性の根拠として使う。 |
| 理論上の乱数増幅 | 実験条件が厳しく、現実装置で実行するのが難しかった。 | 超伝導量子ビットと高反復率の Bell test により、実験的な randomness amplification を実現した。 |
| 科学報道の表現 | perfect randomness という言葉だけでは、何が初めてなのかが見えにくい。 | 正確には、不完全乱数から認証可能な乱数への実験的な増幅が新しい。 |
したがって、本研究の成果は、乱数生成器の単純な性能向上ではない。乱数性の根拠を、アルゴリズムや装置内部への信頼から、Bell test で観測される非古典的相関へ移す成果である。これは、乱数を出す問題ではなく、乱数が本当に予測不能だったとどのように説明できるかという問題への前進である。ScienceAlert の “perfect randomness” という見出しは、この意味で読む必要がある。完全にばらばらな数字列が作れたという意味ではなく、不完全な乱数から出発して、その予測不能性を物理実験によって認証できる段階に進んだという意味である。
12. “perfect randomness” は、無限に完全な乱数列という意味ではない
ScienceAlert や Live Science のような科学メディアは、本研究の成果を “perfect randomness” と表現している[25]。この表現は、研究の意義を伝える見出しとしては分かりやすい。しかし、技術的には注意が必要である。これは、無限に長い完全な乱数列が、どんな場所でも、どんな装置でも、手軽に得られるようになったという意味ではない。まして、一般の PC やスマートフォンの乱数生成器がすぐに置き換わるという意味でもない。ここでの “perfect” は、日常語としての「何の条件もない完全」ではなく、特定の物理実験と解析のもとで、出力に予測不能性があると認証できる、という限定された意味で読む必要がある。
この違いを見落とすと、「完全な乱数」という言葉だけが独り歩きする。乱数列だけを見ても、それが本当に予測不能だったかは分からない。たとえば、0 と 1 がきれいに半分ずつ出ていても、計算で作られた疑似乱数かもしれない。逆に、同じ値が何度か続いても、本物の乱数でたまたまそうなった可能性はある。したがって、ここで問題になるのは、出力された数字列の見た目ではない。どのような実験条件で生成され、どのような統計解析を通り、どのような物理的前提のもとで予測不能性が認証されたのかである。
ここでの「完全」は、特定の実験条件、物理的仮定、統計解析、乱数抽出処理のもとで、出力の予測不能性を認証できるという意味で読むべきである。Nature 論文は、データと randomness extraction および data analysis に用いたコードが ETH Zurich Research Collection で公開されていることも示しており、結果は実験データと解析手順に支えられている[1]。つまり、乱数列だけが突然「完全」になったのではない。実験、測定配置、Bell test、乱数抽出、統計解析の全体が、「この出力には予測不能な成分が含まれていた」と言える構造を作っている。
| 読み方 | 誤解 | 正確な理解 |
|---|---|---|
| 完全な乱数 | どんな条件でも無限に完全な乱数列が得られると考える。 | 特定の実験条件と解析のもとで、出力の予測不能性を認証できると理解する。 |
| 量子乱数 | 量子であれば自動的に安全だと考える。 | 量子測定には予測不能性があるが、それを乱数として使うには装置、測定、後処理、解析を確認する必要がある。 |
| 装置非依存 | 何の仮定も不要だと考える。 | 装置内部の詳細な信頼を減らすが、物理法則、実験配置、測定条件、統計解析の前提は残る。 |
| 実用化 | すぐに一般端末へ搭載されると考える。 | 当面は高信頼乱数源や乱数標準に近い位置づけで理解する。 |
科学ニュースを読むときには、見出しの強さと論文の技術的主張を分ける必要がある。本研究の「初めて」は、乱数という言葉を使うあらゆる技術が初めて完成したという意味ではない。疑似乱数、暗号論的乱数、物理乱数、量子乱数はすでに存在する。初めて実現されたのは、不完全な乱数を入力にし、Bell test の条件下で、device-independent に近い形で randomness amplification を実験的に成立させたことである。
したがって、“perfect randomness” は、「完全にばらばらな数字列が無条件に作れるようになった」という意味ではない。より正確には、「不完全な乱数を出発点にし、Bell test によって、その出力に予測不能性が含まれていたことを物理実験と解析から認証できた」という意味である。この読み替えを行うと、本研究の意義は過大評価でも過小評価でもなくなる。乱数生成器がすぐに日常機器へ置き換わる話ではないが、乱数性の根拠を装置内部の説明から、外部から観測可能な物理相関へ移す重要な前進である。
13. 実用上の意味は、すぐに PC の乱数が置き換わることではない
本研究は、すぐに一般の PC、スマートフォン、Web アプリケーションの乱数生成器を置き換えるものではない。実験には、超伝導量子ビット、極低温環境、精密な測定系、距離を取った配置、高速な反復測定、厳密な統計解析が必要である。これは、普段の開発で Python の secrets や Ruby の SecureRandom を置き換えるような話ではない。日常的なアプリケーション開発では、引き続き OS や言語標準が提供する暗号論的乱数 API を使うのが現実的である。
ここで重要なのは、「すぐに製品化されないなら意味がない」という話ではないことである。乱数は、暗号鍵、認証トークン、電子署名、セッション ID、シミュレーション、抽選、公平性の基盤にある。普段は、OS、ハードウェア乱数源、暗号論的疑似乱数生成器、言語標準ライブラリを信頼して使っている。しかし、その信頼の根拠をさらに深く問うと、乱数源が本当に予測不能なのか、装置が正しく動いているのか、出力の偏りが取り除かれているのか、外部から操作されていないのかという問題に行き着く。本研究の意義は、この信頼の根拠を、実装や装置仕様だけでなく、物理実験によって認証する方向を示した点にある。
実用上の意味は、むしろ乱数の標準器に近い。ETH Zurich の発表では、こうした物理的に認証された乱数源が、長期的には原子時計が時刻の標準として果たす役割に似た機能を持つ可能性が示されている[3]。原子時計は各家庭に置かれているわけではないが、社会全体の時刻同期を支える基準になっている。同じように、Bell test 型の認証乱数は、各端末に直接組み込まれるものではなく、高信頼な乱数源、乱数生成器の検証基盤、または乱数品質を評価する基準として利用される可能性がある。
| 用途層 | 現実的な位置づけ | 本研究との関係 |
|---|---|---|
| 日常的なアプリケーション開発 | OS や言語標準の暗号論的乱数 API を使う。 | 本研究の装置を直接使う段階ではなく、開発者の実務手順が直ちに変わるわけではない。 |
| セキュリティ基盤 | 鍵生成、認証、署名、セッション管理などで高品質な乱数が必要になる。 | 乱数の信頼性が暗号基盤の根本にあることを示す。 |
| 高信頼乱数源 | 乱数源そのものを校正、検証、標準化する必要がある。 | Bell test 型の認証乱数が、乱数品質を支える標準器に近い役割を持ち得る。 |
| 基礎物理と量子情報 | 量子非局所性を情報処理資源として使う。 | 古典的には不可能な randomness amplification を実験的に示す。 |
したがって、本研究の価値は、製品化の近さだけでは測れない。乱数生成器がすぐに一般端末へ搭載されるかどうかとは別に、乱数というデジタル社会の基盤について、「信頼できる」とは何を意味するのかを物理実験の水準で押し上げた点に意味がある。暗号、認証、シミュレーション、抽選、公平性のすべては、乱数の信頼性に依存する。その根拠をどこまで外部から検証可能にできるかが、本研究の実用的な射程である。
14. 乱数の問題は、数字ではなく信頼の問題である
ここまでを整理すると、本稿で分かるのは、乱数生成の歴史が「よりばらばらな数字を出す歴史」ではなく、「予測不能性の根拠をどこに置くかを変えてきた歴史」だということである。疑似乱数では、アルゴリズムと seed を使って高速で再現可能な数列を作る。暗号論的乱数では、entropy source と暗号学的な状態更新によって、攻撃者に予測されにくい出力を作る。物理乱数では、自然現象から予測不能な揺らぎを取り出す。量子乱数では、量子測定の予測不能性を使う。そして Bell test 型の randomness amplification では、装置内部の説明を全面的に信じるのではなく、観測された量子相関から乱数性を認証しようとする。
一方で、本稿で分かるのは、どの段階でも「これで乱数問題が完全に終わる」わけではないということでもある。疑似乱数は高速で便利だが、内部状態が分かれば未来の値を読まれる。暗号論的乱数は実用上重要だが、初期 entropy、実装、状態漏洩、実行環境に依存する。物理乱数は自然現象を使うが、測定装置、検出器、回路、後処理の問題を残す。量子乱数は量子測定の予測不能性を使うが、現実の装置がその量子性を正しく出力へ反映しているかは別に確認しなければならない。Bell test 型の randomness amplification は、その装置信頼をさらに減らすが、実験条件、統計解析、物理的前提を厳密に満たす必要がある。
| 階層 | 何が分かるか | 何がまだ残るか |
|---|---|---|
| 疑似乱数 | 計算機上で高速かつ再現可能な乱数列を作れる。 | seed や内部状態が読まれると、未来の値を予測される。 |
| 暗号論的乱数 | 攻撃者に予測されにくい乱数を実用的に提供できる。 | 初期 entropy、実装、状態漏洩、OS や実行環境への依存が残る。 |
| 物理乱数 | 計算だけではなく、自然現象の揺らぎを乱数源にできる。 | 測定装置の偏り、故障、外部操作、後処理の誤りが残る。 |
| 量子乱数 | 量子測定の予測不能性を乱数源として使える。 | 現実の装置が正しく量子性を取り出し、最終出力へ反映しているかを確認する必要がある。 |
| Bell test 型乱数増幅 | 観測された Bell 不等式違反を使い、装置内部への信頼を減らして乱数性を認証できる。 | loophole-free Bell test、統計解析、物理的仮定、測定設定の選択という条件が残る。 |
この整理から見ると、本研究の成果は「乱数が初めて作れた」という話ではない。乱数らしい数字列は以前から作れた。疑似乱数も、暗号論的乱数も、物理乱数も、量子乱数生成器も以前から存在した。Nature 論文が Experimental randomness amplification と題されている理由は、本研究の新規性が、乱数を初めて出したことではなく、不完全な乱数から出発し、Bell test によって古典的な事前決定や通常の信号伝達では説明しにくい相関を確認し、その相関を使って乱数性を増幅し、認証した点にあるからである[1]。
本稿で主張したいことは、乱数の本質は出力された数字列の見た目ではなく、その数字列がどのような根拠で予測不能だと言えるのかにある、ということである。0 と 1 がきれいに散らばっていることは重要だが、それだけでは足りない。攻撃者が生成過程をどこまで知っているか、seed や内部状態を推測できるか、物理現象を正しく測れているか、装置や後処理に偏りがないか、外部から検証できる根拠があるかを考えなければならない。乱数を作る難しさは、数字をばらばらに並べることではなく、予測不能性を説明できる形で作ることにある。
したがって、本稿の結論は単純である。乱数の問題は、出力の問題ではなく、根拠の問題である。より正確には、何を信頼すれば、その数字列を乱数として扱ってよいのかという信頼境界の問題である。疑似乱数ではアルゴリズムを信頼し、暗号論的乱数では OS と entropy source を信頼し、物理乱数では自然現象と測定装置を信頼し、量子乱数では量子測定と装置を信頼する。本研究は、その信頼境界をさらに一段押し下げ、装置内部ではなく Bell test で観測された物理相関を乱数性の根拠にしようとした。
ただし、本研究によって分からないことも明確にしておく必要がある。本研究は、一般の PC やスマートフォンの乱数生成器が直ちに置き換わることを示したわけではない。あらゆる条件で無限に完全な乱数列が得られることを示したわけでもない。量子乱数なら常に安全であることを示したわけでもない。示されたのは、特定の実験条件、Bell test、乱数抽出、統計解析のもとで、不完全な乱数をより強く認証された乱数へ増幅できるということである。ScienceAlert が “perfect randomness” という見出しで報じた成果も、この限定を外して読むべきではない[2]。
それでも、本研究の意味は大きい。なぜなら、乱数は暗号、認証、署名、セッション管理、シミュレーション、抽選、公平性の基盤にあるからである。乱数が弱ければ、強い暗号方式も、厳密な認証設計も、正しい統計処理も土台から崩れる。Nature 論文が示した Experimental randomness amplification の意義は、完全な数字列が手軽に作れるようになったことではなく、不完全な乱数を出発点にして、その予測不能性を Bell test によって外部から認証できる形へ近づけた点にある[1]。乱数は単なるソフトウェア機能ではなく、物理法則、情報理論、暗号、安全性の交点にある基盤技術であり、本研究はその信頼根拠を実験的に押し下げた到達点として位置づけられる。
参考文献
- Anatoly Kulikov et al., Experimental randomness amplification, Nature 653, 1033–1038 (2026). https://www.nature.com/articles/s41586-026-10521-8
- ScienceAlert, Physicists Just Achieved ‘Perfect Randomness’ For The First Time Ever. https://www.sciencealert.com/physicists-just-achieved-perfect-randomness-for-the-first-time-ever
- ETH Zurich, Perfect randomness realised for the first time(2026-05-27). https://ethz.ch/en/news-and-events/eth-news/news/2026/05/perfect-randomness-realised-for-the-first-time.html
- Makoto Matsumoto and Takuji Nishimura, Mersenne Twister: A 623-dimensionally equidistributed uniform pseudo-random number generator, ACM Transactions on Modeling and Computer Simulation 8(1), 3–30 (1998). https://dl.acm.org/doi/10.1145/272991.272995
- Python Software Foundation, random — Generate pseudo-random numbers. https://docs.python.org/3/library/random.html
- Python Software Foundation, secrets — Generate secure random numbers for managing secrets. https://docs.python.org/3/library/secrets.html
- Ruby Documentation, SecureRandom. https://docs.ruby-lang.org/en/master/SecureRandom.html
- Linux man-pages project, getrandom(2) — Linux manual page. https://man7.org/linux/man-pages/man2/getrandom.2.html
- id774, 暗号はいずれ破られる(2026-06-01). https://blog.id774.net/entry/2026/06/01/4831/
- D. Eastlake 3rd, J. Schiller and S. Crocker, RFC 4086: Randomness Requirements for Security(2005). https://datatracker.ietf.org/doc/html/rfc4086
- NIST, A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications, SP 800-22 Rev. 1a(2010). https://www.nist.gov/publications/statistical-test-suite-random-and-pseudorandom-number-generators-cryptographic
- NIST, Recommendation for the Entropy Sources Used for Random Bit Generation, SP 800-90B(2018). https://nvlpubs.nist.gov/nistpubs/SpecialPublications/nist.sp.800-90b.pdf
- Nithin Abraham et al., A High-Quality Entropy Source Using van der Waals Heterojunction for True Random Number Generation. https://arxiv.org/abs/2204.06534
- id774, 自由意志とは何か(2025-12-30). https://blog.id774.net/entry/2025/12/30/3168/
- id774, 観測を情報更新として定式化する宇宙論(2026-03-30). https://blog.id774.net/entry/2026/03/30/4239/
- id774, なぜ思考は量子力学に行き着くのか(2026-05-01). https://blog.id774.net/entry/2026/05/01/4651/
- J. S. Bell, On the Einstein Podolsky Rosen paradox, Physics Physique Fizika 1, 195–200 (1964). https://link.aps.org/doi/10.1103/PhysicsPhysiqueFizika.1.195
- J. F. Clauser, M. A. Horne, A. Shimony and R. A. Holt, Proposed Experiment to Test Local Hidden-Variable Theories, Physical Review Letters 23, 880–884 (1969). https://link.aps.org/doi/10.1103/PhysRevLett.23.880
- Alain Aspect, Jean Dalibard and Gérard Roger, Experimental Test of Bell’s Inequalities Using Time-Varying Analyzers, Physical Review Letters 49, 1804–1807 (1982). https://doi.org/10.1103/PhysRevLett.49.1804
- Artur K. Ekert, Quantum cryptography based on Bell’s theorem, Physical Review Letters 67, 661–663 (1991). https://doi.org/10.1103/PhysRevLett.67.661
- S. Pironio et al., Random Numbers Certified by Bell’s Theorem, Nature 464, 1021–1024 (2010). https://arxiv.org/abs/0911.3427
- Roger Colbeck and Renato Renner, Free randomness can be amplified. https://arxiv.org/abs/1105.3195
- Rodrigo Gallego et al., Full randomness from arbitrarily deterministic events, Nature Communications 4, 2654 (2013). https://www.nature.com/articles/ncomms3654
- Anatoly Kulikov et al., Device-Independent Randomness Amplification. https://arxiv.org/abs/2412.17931
- Live Science, Physicists achieve ‘perfect randomness’ in breakthrough quantum experiment. https://www.livescience.com/physics-mathematics/quantum-physics/physicists-achieve-perfect-randomness-for-the-first-time-ever