問題タブ [trng]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
random - 大気ノイズを利用した真性乱数発生器
One Time Pad システムを構築する必要があり、そのために独自の TRNG を構築する必要があります。大気ノイズを記録し、それを使用して乱数を生成する方法を知りたいです。これまでに .wav ファイルを記録して Java で読み取ろうとしましたが、値はあまりランダムではないようです。助言がありますか?Random.org については知っていますが、彼らのジェネレーターを実際に使用することはできません。自分で構築する必要があるため、Random.org の人々がどのように数値ジェネレーターを構築したかについての洞察が必要です。 「偶然性」の源。
haskell - 真の乱数ジェネレーター (TRNG)、Haskell、および経験的/形式的な方法
特定のハードウェアによって生成された真の乱数ジェネレーター (TRNG) の数値を検証したいのですが、これには慣れていません。
まず、経験的な方法で真の乱数ジェネレーター (TRNG) の一貫性をテストしたいと思います (別名、それらが本当に真の乱数 (TRN) であるかどうかを確認したい); これを正式な方法で確認できるかどうかはわかりません。
このトピックに関する特定の講義はありますか?いくつかのヒントはどうですか?この経験的方法をテストするためのツールはありますか?
perl - TRNG Perl スクリプト クエリ
Windows VPS で実行すると、真の乱数ジェネレーターの構成要素として機能する非常に単純なスクリプトの作成とテストに成功したように思います。したがって、これが簡単である場合、疑似乱数ジェネレーターのポイントは何ですか?
これがスクリプトです。
典型的な出力:
46980
-953586
47168
67242
59319
上記の出力からわかるように、このスクリプトは非常にうまく機能しているようです。
このスクリプトは、非常に高速な CPU を搭載した専用サーバーでも機能しますか? VPS サーバーのタイミングは特に不安定ですか? このスクリプトは、すべての Windows システムで同様に機能しますか?
高品質の TRNG に大きく依存するアプリケーションを作成している場合、その目的のためにこのスクリプトに依存することが間違いである理由を誰かが理解できますか?
random - Jericho Comms TRNG は信頼できますか?
スマートフォンで真の乱数/ビットを生成する方法を探しています。
カスタム TRNG を作成するのは難しいようで、多くの人が、広くテストされ、承認されている既存の TRNG を信頼することを提案しています。
しかし、写真からのカスタム TRNG を入力として使用するJericho Commsを見つけました。
これはどれほど安全で、強力で、信頼できるでしょうか? 本当に乱数/ビットを生成する有効な方法でしょうか?
スマートフォンのカメラは、JPEG 圧縮と低品質のため、この目的には最適ではないことはわかっていますが、これを省略した場合、提案されたアルゴリズムはどの程度正しいのでしょうか?
ドキュメントを貼り付けます:
このプロセスでは、完全なアルゴリズムについて説明します。
ユーザーの写真をメモリに読み込み、RGB 値の連続配列に保存します。 各ピクセルの赤、緑、青 (RGB) の整数値を取得します。これは、各色に対して 0 から 255 までの数値を返します。 連続して繰り返される黒 (0, 0, 0) ピクセル、白 (255, 255, 255) ピクセル、およびまったく同じピクセル色を削除します。これにより、露出不足のピクセル、露出過度のピクセル、およびエントロピーがほとんどない写真のセクションが削除されます。通常、ハードウェアに障害が発生したり、写真の一部が露出不足/露出過剰でない限り、隣接するピクセルがまったく同じ色になることは非常にまれです。通常、高品質の写真では、隣接するピクセルに少なくとも非常にわずかな色の変化があります。この手順により、これらの低エントロピー領域が削除されます。 RGB 値のセットごとに 1 ビットの入力エントロピーを推定します (24 ビット ピクセルごとに 1 ビット)。これは非常に控えめな見積もりです。ユーザーは、TRNG 設定でこれをピクセルあたり 3 ビットに増やすことができます。これにより、各色の最下位ビットのエントロピーが考慮されます。 512 個の RGB 値を収集して、512 ビットの推定エントロピー入力を取得します。 512 個の RGB 値を 16 進数表現に変換し、512 ビット出力で暗号化ハッシュに入力します。ユーザーは使用するハッシュを選択でき、プログラムは Skein または Keccak [c=2d] のいずれかを許可します。どちらも、NIST ハッシュ関数コンペティションの非常に強力なファイナリスト アルゴリズムです。この 512 ビットのハッシュ出力を一時シードとして次のハッシュに格納します。 ループを開始します。
- 新しいハッシュに十分な新しい入力エントロピーがあることを確認するか、ループから抜け出します。
- 以前から一時的なシードを取得します。
- 新しい入力エントロピーとして 512 個の RGB 値 (512 ビット) の新しいセットを取得します。
- シードと入力エントロピーを連結し、ハッシュ (シード || 入力エントロピー) を使用してそれらをハッシュします。
- ハッシュ出力の最初の 256 ビットを出力ランダム データに追加します。
- ハッシュ出力の最後の 256 ビットになるように一時シードを更新します。
- ループの先頭に戻ります。
プログラムは、この収集されたエントロピーを使用して疑似乱数ジェネレーターをシードし、無制限の量の乱数データを提供しないことに注意することが重要です。このプログラムは、真の乱数ジェネレーターになることを目指しているため、高品質のランダム性のみが必要であり、一様にランダムな各ビットは、平文の 1 ビットを暗号化するためだけに使用する必要があります。エントロピーを拡張するほとんどの疑似乱数ジェネレーターまたは CSPRNG でさえ、出力に微妙なバイアスを生じさせ、NSA または他の政府がメッセージの一部またはすべてを解読できるようになると想定されています。このプログラムの目的は、利用可能なエントロピーをより多くのビットに拡張することを避けることです。
java - LavaRand は TRNG または CSRNG ですか? そしてセキュアランダム?
ウィキペディアでこの定義を見つけました:
Lavarand は、Silicon Graphics によって設計されたハードウェア乱数ジェネレーターで、溶岩ランプの浮遊物質によって作られたパターンの写真を撮り、写真からランダム データを抽出し、その結果を使用して疑似乱数ジェネレーターをシードすることで機能しました。乱数生成の 2 番目の部分では疑似乱数生成器を使用しますが、完全なプロセスは、使用される乱数シードにより、基本的に「真の」乱数生成器と見なされます。ただし、その適用性は帯域幅が狭いため制限されます。
PRNGに真のランダムシードをシードすると、TRNGが得られますか?
しかし、これと CSPRNG の違いは何ですか?
たとえば、SecureRandomは CSPRNG であり、OS によって収集された真のランダム エントロピー ビットを使用します。
- それらが利用可能な場合 => 真の乱数を生成します。
- エントロピー プールが低い場合、真のランダム ビットによってシードされた PRNG を使用します。=>ウィキペディアの定義によると、それは「真の」乱数ジェネレーターであるため、「真の」乱数を生成します。
したがって、どちらの場合でも、SecureRandom は真の乱数を生成するため、TRNG と見なすことができます...
何かが欠けていることは明らかです:P おそらく誤解は真と「真」の違いに基づいています...
誰かが私に説明してもらえますか?違い?
unit-testing - Dieharder dab_monobit2 テストに失敗 - 他のすべてのテストに合格 - TRNG
私は現在、ダイハーダー テスト スイートを使用して、TRNG からいくつかの RNG 番号をテストしています。TRNG から約 380MB のバイナリ テスト データを取得しましたが、1 つのテスト (dab_monobit2 テスト (テスト 209)) を除いてすべてのテストに合格しましたが、その理由はわかりません。
私が理解している限り、dab_monobit2 テストは他のモノビット テスト (テスト 100) とまったく同じように動作し、特定の範囲内で 1 と 0 をカウントし、多かれ少なかれ 50:50 かどうかをチェックします。monobit テスト (テスト 100) と dab_monobit2 テストの正確な違いは何ですか? そして、私のTRNGについて何と言っていますか?
これは monobit テストと dab_monobit2 テストの出力です。
sts_monobit| 1| 100000| 100|0.74709531| 渡されたdab_monobit2
| 12| 65000000| 1|1.00000000| 失敗した