問題タブ [entropy]

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.

0 投票する
2 に答える
2479 参照

security - 予測可能な乱数ジェネレーターは、出力をSHA-1した後、どのようにしてより安全になりますか?

この記事は次のように述べています

メルセンヌツイスターは非常に優れた疑似乱数ジェネレーターであるという事実にもかかわらず、非常に単純な理由から、それ自体では暗号的に安全ではありません。ジェネレータの将来のすべての状態は、ジェネレータが常に持つ状態から判断でき、その状態を提供するには、624個の32ビット出力または19,937個の1ビット出力で十分です。暗号化に役立つキーストリームを取得する1つの方法として、メルセンヌツイスターの出力でSHA-1などの暗号的に安全なハッシュ関数を使用することが推奨されています。

しかし、出力をダイジェストすると安全性が高まる理由については言及されていません。そして正直なところ、なぜそうなのかわかりません。メルセンヌツイスターの周期は2^19937-1ですが、私の推論は、線形合同法などの定期的なPRNGにも当てはまると思います。安全な一方向性関数hの特性により、hは単射関数と考えることができます(そうでない場合は衝突が発生する可能性があります)。したがって、定義域から範囲に値を1対1でマッピングするだけです。

この考えを念頭に置いて、ハッシュ値は元のメルセンヌツイスターが行ったのとまったく同じ定期的な動作を生成すると主張します。これは、1つの期間のすべての値を観察し、値が繰り返し開始された場合、将来のすべての値を完全に予測できることを意味します。

これは、パスワードベースの暗号化( PKCS#5 )に適用されるのと同じ原則に関連していると思います-パスワードのドメインは十分なエントロピーを提供しないため、パスワードをハッシュするだけでは追加のエントロピーは追加されません-それが必要な理由ですパスワードをハッシュする前にソルトします。ここでもまったく同じ原理が当てはまると思います。

最終的に私を納得させた1つの簡単な例:常に1の「乱数」を生成する非常に悪いPRNGがあるとします。次に、SHA-1が完全な一方向性関数であっても、SHA-1を出力に適用すると常に同じ値を生成するため、出力は以前と同じように予測可能になります。

それでも、その記事には真実があると信じたいので、確かに何かを見落としていたに違いありません。あなたは私を助けることができます?大部分、私は私の議論からシード値を省略しました-多分これは魔法が起こる場所ですか?

0 投票する
1 に答える
423 参照

entropy - エントロピープールジェネレータ

では、Linux用のエントロピープールジェネレーターのプログラミングを始めたいと思います。私はエントロピー生成のソースを読んでいますが、最も強力なエントロピーソースは読み取りハードウェアから来ているようです。必要なソースにアクセスすることもできますか、それともオペレーティングシステムによってアクセスできなくなりますか?また、可能であれば、これらのデバイスとの通信をどのように開始しますか。私はもっ​​と調べようと思っていますが、誰かが私を正しい方向に向けることさえできれば、それは大いにありがたいです。

0 投票する
3 に答える
8450 参照

graph - グラフのエントロピーを計算するにはどうすればよいですか?

ランダムに生成された形式グラフのセットがあり、それぞれのエントロピーを計算したいと思います。同じ質問を別の言葉で言います。私はいくつかのネットワークを持っており、それぞれの情報量を計算したいと考えています。

グラフ エントロピーの正式な定義を含む 2 つのソースを次に 示し ます

私が探しているコードは、グラフを入力として (エッジ リストまたは隣接行列として) 受け取り、ビット数またはその他の情報コンテンツの尺度を出力します。

これの実装がどこにも見つからないため、正式な定義に基づいてゼロからコードを作成しようとしています。誰かがすでにこの問題を解決していて、喜んでコードを共有してくれるなら、大歓迎です。

0 投票する
4 に答える
3594 参照

linux - Linuxエントロピープールソースを無効にする方法

エントロピーソースを無効にするにはどうすればよいですか?

これが私がやろうとしていることの背景です。USB経由でPCと通信する小さなRNGデバイスを構築しています。使用されるエントロピーの唯一のソースにしたいと思います。rngdエントロピーのソースとしてデバイスを追加するために使用します。

0 投票する
1 に答える
364 参照

compression - データ圧縮のエントロピーの計算

彼らが「シンボルあたりの平均ビット数」をどのように計算するかについて、私は少し混乱しています。これは、各文字の確率を取得し、通常のエントロピーのようにlg(1 / probability)を掛けることによって計算されますか、それとも他の方法ですか?

また、これが真実である場合、彼らはどのようにして手紙の平均的な出現が何であるかを確実に知ることができますか?

0 投票する
1 に答える
438 参照

linux - エントロピープールから/dev/randomポピュレーションを停止する方法。モジュールをアンロードして実行できますか?

CDCデバイスとしてUSB経由でPCと通信するTRNGを作成しています。/ dev / randomがエントロピープールからエントロピーを調達するのを完全に停止し、代わりにデータを使用したいと思います。理論は、プールが現在エントロピーを収集する方法のために、プールが毒される可能性があるというものです。

エントロピーのソースを削除する方法は知っていますが、カーネルをハッキングする必要があります。これはオプションですが、データを/ dev/randomに書き込むモジュールをアンロードすることをお勧めします。rmmodとmodprobeを試しましたが、モジュールの名前がわかりません。拡張機能などを省略している可能性はありますが、カーネルモジュールをいじるというビジネス全体に慣れていないため、実際にはわかりません。

また

hw_randomのもののリストを私に与えるだけです

私には何も与えません。

ですから、私が本当に正しい方向に進んでいるかどうかはわかりません。

任意のポインタをいただければ幸いです。

0 投票する
2 に答える
2229 参照

php - 常に同じ結果を得るためにシードに基づいて配列をシャッフルしますか?

シード番号に基づいて配列をシャッフルする必要があるので、必要に応じて同じシャッフルを取得できます。

例えば:

  1. 3.同じシャッフルされた配列を表示しますが、2とは異なります。

私はこの関数がグーグルしているのを見つけました:

php-cliを使用してPCで正常に動作し、使用するsort_seedごとに常に同じ配列を取得しますが、サーバーにアップロードすると、同じsort_seedを使用している場合でも毎回異なる配列を取得します。

同じsort_seedを使用する場合、どうすれば常に同じシャッフルされた配列を取得できますか?

ところで。キーを保存するか、多次元配列を並べ替えて、そこにキーを保存できるようにする必要があります。

0 投票する
9 に答える
3132 参照

algorithm - random()={0..1} を使用して任意の範囲の数値を生成し、均一性と密度を維持する方法は?

[x..y] の範囲で乱数を生成します。x と y は任意の浮動小数点数です。関数 random() を使用します。この関数は、一様に分散された P 個の数値 (「密度」と呼びます) から [0..1] の範囲のランダムな浮動小数点数を返します。一様分布を維持する必要があり、P も同様にスケーリングする必要があります。

このような問題を簡単に解決する方法はないと思います。少し簡単にするために、間隔 [-0.5 .. 0.5]、次に [0 .. 2]、次に [-2 .. 0] で、均一性と密度を維持しながら数値を生成する方法をお尋ねします。したがって、[0 .. 2] の場合、P*2 の一様分布数から乱数を生成する必要があります。

すべてのケースrandom() * (x - y) + yで密度が低いため、明らかな単純な解決策では、すべての可能な数が生成されるわけではありません。abs(x-y)>1.0多くの可能な値が見逃されます。random() は P 個の可能な数から数のみを返すことに注意してください。次に、そのような数値に Q を掛けると、Q でスケーリングされた P 個の可能な値の 1 つだけが得られますが、密度 P も Q でスケーリングする必要があります。

0 投票する
1 に答える
212 参照

php - 全射を作成して、既知の最大値を持つ順序付けられていないカウンターを取得します

既知の最大値 ( と呼ばれる) を持つカウンターがありmaxます。max大きくなる可能性があります(実際にはまたはのいずれかになります36^40 - 162^40 - 1

次のプロパティを持つbから[0..max]への全単射が必要です:から容易に推測できません。[0..max]b(n+1)b(n)

暗号的に安全な関数を探しているわけではありません。カウンターの出力を少し難読化するために、できるだけ多くのエントロピーが必要です。

関数は PHP で実行可能でなければなりません。これにより、PHP が実行するすべての機能が許可されます。

0 投票する
1 に答える
10582 参照

matlab - エントロピー関数の使用法

私はMATLABで特定の確率分布のエントロピーを見つけようとしていました。pについては、やってみました

Echeck = entropy(p)

EとEcheckは同じであるべきではありませんか?

エントロピーに関するmatlabヘルプでは、エントロピーは-sum(p。* log2(p))として定義されています。ここで、pにはimhistから返されたヒストグラムカウントが含まれますが、エントロピーは、ヒストグラムカウントの計算のために論理以外のクラスをuint8に変換します。実際には、グレースケール画像のエントロピーを計算しようとしているため、ピクセル値を離散化する必要があります。それで、この関数を私の目的に使用するのは間違っていると思いますか?良い選択肢はありますか?