真の乱数ジェネレーターWebサービスが必要[終了]


10

Random.orgは、アナログの世界(cf.)からIPごとに1日あたり200kのランダムビット(32ビット整数は6250のみ!)を提供します。

誰かが1日あたりのオンデマンドのランダムビット数を増やす代替のWebサービスを知っていますか?

(価格が1000×1024ビット/米ドルセントの「予想内」である限り、支払いは問題ありません)(random.orgの有料サービス料金100×この価格)


9
より大きな問題は「なぜ」「真に」乱数ジェネレータが必要なのかということです。
Darknight

5
純粋なソフトウェアの真のランダムジェネレーターは存在しません。近づくことができますが、結局のところ、それは本当にランダムではありません。
ラムハウンド

10
何のために必要ですか?ゲームか何かなら、通常は疑似ランダムで十分です。暗号化の場合は、Webサービスを使用しないでください。実行可能な解決策を紹介する前に、その目的を説明する必要があります。
マイケルコーン、

4
やった![webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }。クレジット:xkcd.com/221
Homde

3
すみません、整数を購入しませんか?最高級のフリーレンジの人工整数のみを在庫しています。
Rein Henrichs、

回答:


25

多分これ。

http://qrng.physik.hu-berlin.de/

サイトから:

光子到達時間の量子ランダム性に基づいた新しい量子乱数ジェネレータ(QRNG)を提供します。それは、証明可能で長期的な統計的品質、スピード、そして手頃な価格を約束します。私たちのデザインは、一般に利用可能な以前のソリューションよりも実質的に高いビットレートを提供するという意味で、新しい品質を生み出しています。これは、最新のフォトンタイミングインスツルメンテーションと最先端のデータ処理をハードウェアで活用することで可能になりました。

高速(USBで最大150 Mbits / s)を提供することに加えて、生データに適用される後処理アルゴリズムは、ランダム性の保存を保証する情報理論からの確かな予測に基づいています。これにより、無条件に安全な暗号化スキームで配信された乱数を使用できます。
[...]
アクセスポリシー
提供されるデータは、1人のユーザーにも、独立した複数のユーザーにも、2回以上配信されません。サービスの利用は無料ですが、登録が必要です。


1
(0.o)?!エガド!冗談だと思ったが、実際には存在しない:)(+1)素晴らしい発見
Darknight

4
質の悪い回答の場合は-1。これは非常に優れた解決策になる可能性がありますが、リンク/サービスの詳細を提供していないため、要約のためにリンク全体を読みたくありません。P.SEの回答にリンクが必要な場合は、リンク先のソリューションの概要を提供してください。回答を修正した場合は、反対票を削除することを検討します。
Craige、

4
@NimChimpsky-なぜですか?それはあなたがP.SEで質の高い答えを書く方法だからです。ba__friendは、この質問を読んでいる人のために、サービスの簡単な説明を投稿しているはずです。おそらく、サービスが乱数を生成する方法に関する簡単な説明/引用です。
Craige、

2
@Craige私はサイトからの抜粋で投稿を更新しました。
アダムリア

5
@NimChimpsky:linkrotが発生するため。
Jon Purdy、

31

あなたが求めているのは聖水であり、あなたは通常の水を使うという提案を拒否しています。水よりも聖水を好む唯一の理由は、宗教的なものです。既知のプロセスでは真の物理的ランダム性と区別できない、ランダムにシードされた単純なPRNGがあります。そして、これらのシステム非決定的です。

現実のコンピューターには、物理​​的なランダム性の原因がいくつかあります。たとえば、最近のx86 CPUには、命令サイクルカウント(したがって間接的には10億分の1秒程度の分解能までの時間)を測定する「TSC」があります。

ネットワークパケットが到着したときにTSCをキャプチャできます。TSCの下位ビットは、ネットワークインターフェイスの時間を計測する水晶発振器とCPUを実行する水晶発振器の間の正確なオフセットに依存します。これは、真にランダムであると考えられている2つの水晶の微視的なゾーンの温度変化に依存しています。

同様に、ハードドライブからデータが到着したときにTSCをキャプチャできます。低ビットは、ハードドライブ表面とケースの間の乱気流せん断に依存しています。これも本当にランダムであると考えられています。

Linuxカーネルが使用するアルゴリズム(松本M.と栗田Y.の研究に基づいてセオドアTs'oが開発したもの)などのよく知られたアルゴリズムは、雪崩効果を使用して、予測できないいくつかのビットをはるかに大きな数に変換します。これらのアルゴリズムの出力(TSCデータによって適切にシードされていると想定)と真の物理的ランダム性の出力の間の唯一の違いは宗教的です-これらの出力を区別できる既知の方法はありません。1つは合格し、もう1つは失敗するというテストはありません。

私は、独立した認証を達成したオンラインカジノ用の乱数ジェネレータを開発しました。これらの方法は、現実の世界で使用されている方法です。


6
常識、興味深い例、そして素晴らしい聖なる水の比喩のために+1!
mikera 2012年


@Davidさん、こんにちは。「オンラインカジノで使用するための乱数ジェネレータを開発しました」という話を詳しく考えてください。
Pacerier 2017年

それはそれほど興味深いことではありません。オンラインカジノでRNGの開発を依頼し、オーストラリアの認証機関であるTSTによって認証されました。
David Schwartz

13

暗号PRNGが問題に対して十分でない理由はまだわかりません。crypto-PRNGの明確な特性は、その出力を真のRNGから区別することが(適切な量のハードウェアで)不可能であることです。

これは、暗号鍵の生成や暗号PRNG自体の初期化を除いて、私が考えることができるあらゆる種類のシミュレーションやアプリケーションに十分対応できることを意味します(開始するには、明らかに数百ビットの真のエントロピーが必要です)。

一方、WebサービスRNGは暗号化にも使用できません。

  1. PRNGからの出力を区別できないため、それらが実際に真のPRNGであることを証明することはできません。
  2. あなたはサービスの運営者を信頼する必要があります
  3. ランダムデータは、セキュリティの低いチャネルを介して送信されます。PRNGを破ることができる攻撃者は、SSLも破ることができます。

そのため、優れたPRNGよりもWebサービスRNGを好む単一の使用法は考えられません。本当に安全な乱数が本当に必要な場合は、ハードウェアを自分で構築する以外に方法はありません。


はい、出力が本当にランダムであることを証明できません。しかし、random.org/statisticsを信頼するのはそれほど難しくありません。セキュリティは私の要件の1つであると思い込んでいるようですが、そうではありません。乱数のフルストップが必要です。ランダムで安全な番号ではありません。(攻撃者が自由に盗聴したい場合でも、害はありません)
Pacerier

1
真のRNGと区別するには非常に難しい数学的問題を解決する必要があることが数学的に証明されているPRNGを信頼することは難しくありません。
CodesInChaos、

@CodeInChaosはオンラインカジノで、非常に難しい数学的問題ですか?そうではありませんが、それはそのような真のランダム性が必要だと思いませんか?
パセリエ

2
優れたPRNGが100ビットの真のエントロピーを時々受信するだけでは、オンラインカジノでさえ十分ではない技術的な理由はわかりません。法的な理由があるかもしれませんが、その場合は真の乱数をローカルで生成する必要があると思います。これにより、真の乱数を使用していることを証明する可能性が高まります。
CodesInChaos、2011年

8
+1私はあなたに完全に同意します。現実的な乱数データを生成する必要があるゲームを作成している場合は、真の乱数ジェネレーターよりもPRNGの方が適しています。まず、確率分布に適合した統計的にランダムなデータを生成するという数学的証明があります。次に、その確率分布を選択できます。3番目に、アプリケーションを確定的にテストできます。4番目に、起動時にシードを選択して、同じように2回動作しないようにすることができます。個人的には、OPはランダム性が何を意味するのか、なぜそれが必要なのかを実際には理解していないと思います。

5

数年前に、現在のブロブの形状とWebカメラで監視されている溶岩ランプの位置を使用して乱数を生成するSGIのラバランドを呼び出すことができました。

それは今ではなくなっていますが、ウェブカメラとLavaRndの優秀な人々からのオープンソースコードを使用して、独自のジェネレーターを簡単に作成できます(編集:しばらくの間ダウンしています。WaybackMachine Sourceforge Project)。溶岩ランプはまったく必要ないことがわかります。Webカメラが遮光コンテナに密封されている間にCCDが拾うノイズは、暗号化されたサウンドの乱数を生成するための優れたソースです。

(これは現在使用できるサービスではないことを知っていますが、以前は使用できたので、とてもクールで、ほぼ無料のサービスを非常に簡単に作成できるので、答えになる価値があると思いました。)


しかし、確かに時間の経過とともに、ウェブカメラによって生成された「ランダム」ノイズは正規分布に適合しますか?それを明確にしてほしいと思いませんか?
Darknight

4
@Darknight:分布はランダム性とどのように関係していますか?あらゆる分布に一致する決定論的シーケンスを生成することが可能であり、乱数があらゆる分布に適合することが可能です。
David Thornley

2
@Darknight Davidが指摘するように、数値が最終的に正規分布に適合するかどうかは、ランダム性に影響を与えません。乱数ジェネレーターを暗号的に健全(または暗号的に強力)にするために何が必要かについて興味がある場合は、LavaRndの連中がサイトに大量の "stat nerd"情報とリンク、およびそれらがLavaRndとどのように関連しているかを示します。
マシューフレデリック

真剣にマシューを簡単に作成する方法はありません。どのように正確に簡単に定義しますか?
パセリエ

2
@Pacerier「簡単」は見方の問題だというのはあなたの言う通りです。サーバーにアクセスでき、適切なウェブカメラを見つけるのに時間がかからない場合、この方法は簡単です。たとえば、ebayで10ドルの「今すぐ購入」します。それはカメラを取り付けたままにします。無料ソフトウェアのダウンロード、コンパイル、実行。コードにサービスへの呼び出しを追加します。簡単ではありませんが、かなり簡単で、非常に安価で、無制限の数のリクエストを提供します。
マシューフレデリック

1

任意のホスト/ポートへのTCP接続を開き、かかるナノ秒数をカウントします。あなたの乱数があります。


これが実際に乱数を生成する方法ではないことを願っています。
Craige、

9
私の(少し皮肉な)回答の要点は、パケットが移動するのにかかる時間のエントロピーは、サードパーティのサーバーに信頼できる「ランダム」な数値よりもはるかに価値があるということです。
R .. GitHub STOP HELPING ICE

5
@Pacerier:専門家でない限り、インテリジェントは誰も自分の暗号を作成しません。これは、プレーンテキストをWebサービスに送信して暗号文を返すのとは異なります。同様に、独自の量子ランダムシステムを設計しようとは思わないかもしれませんが、HTTPを介して乱数を出荷することは信頼できません。
David Thornley、

1
@Pacerierしかし、ローカルPRNGを(ローカルエントロピーソースから)時折エントロピーインジェクションで使用する代替が不可能な理由をまだ示していません。
CodesInChaos、2011年

1
@Pacerier:これで私を信頼してください:経済シミュレーションには真の乱数は必要ありません。良い擬似(または、偶数分布を気にする場合は準)ランダムジェネレーターで十分です。問題は別の場所にあります(たとえば、数値を多くの次元で無相関にしたい-煩わしいWebサービスでも、数値が20次元空間をどのように埋めているかを確認するのにどうやって知るのか?)。
quant_dev

1

これは、もう1つの量子ベースのジェネレーターであり、残りのAPIも同様です。

http://photonics.anu.edu.au/qoptics/Research/qrng.php

ANUの研究者は、物理的な量子源から真の乱数を生成しています。これを行うには、光のビームを2つのビームに分割し、各ビームのパワーを測定します。光は量子化されているため、各ビームの光の強度は平均値に応じて変動します。これらの変動は、最終的には量子真空によるものであり、乱数のソースに変換できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.