random.cで使用されるエントロピー推定を説明できますか


12

/dev/randomカーネル割り込みのタイミングを使用して、エントロピープールに追加します。プール内のエントロピーの量は、という名前の変数で追跡されますentropy_count

関連するコードの抜粋を次に示しますrandom.c。これは、変数の最後の2つのinteruptsとdelta deltaの差との間の時間(私が思うにわずか)を表しますdelta2

delta = time - state->last_time;
state->last_time = time;

delta2 = delta - state->last_delta;
state->last_delta = delta;

if (delta < 0) delta = -delta;
if (delta2 < 0) delta2 = -delta2;
delta = MIN(delta, delta2) >> 1;
for (nbits = 0; delta; nbits++)
  delta >>= 1;

r->entropy_count += nbits;

/* Prevent overflow */
if (r->entropy_count > POOLBITS)
  r->entropy_count = POOLBITS;

追加されたエントロピーの推定値は、基本的にデルタの2を底とする対数の下限(ループ前の初期ビットシフトのために上限ではないようです)。これはいくつかの直感的な理にかなっていますが、これを正式に正しくするためにどのような仮定が必要かはわかりません。

したがって、私の最初の質問は「この推定の背後にある理由は何ですか?」です。

2番目の質問はについてdelta = MIN(delta, delta2) ...です。これは何をしますか?なぜこのデルタと最後のデルタの最小値を取るのですか?私はこれが何を達成するのかわからない-おそらくそれは見積もりを改善し、おそらくもっと保守的になります。

編集:私は推定値を指定する論文を見つけましたが、それについて実際には理由のある議論を与えていません(推定者が満たすべきいくつかの非公式の条件を概説しています)。

コメントに記載されている他のリソース:


1
Linuxのエントロピー推定値は/dev/random不安定な基盤にあることに注意してください。/dev/randomエントロピープールのフィードを参照してください。トーマスがあなたの質問に答えてくれることを願ってトーマスにpingを送りました。
ジル 'SO-悪であるのをやめる'

誰かがこのトピックに興味があるなら、ウィキペディアでのそれに関する扱いはかなり良い出発点です:en.wikipedia.org/wiki//dev/random
slm

1
@Lucas-この論文もご覧ください:[Linuxエントロピー推定器の解釈](eprint.iacr.org/2012/487.pdf
slm

@slmおもしろいですが、それが正しいかどうかはわかりませんが、コルモゴロフの複雑さを使用して最小関数を正当化するステップは、推論の大きな飛躍であり、これが概念的に正しいかどうかは明確ではありません。
ルーカス

@ルーカス-私はそれを渡すだろうと思った、私はこのQ / /からリーグから外れている8
slm

回答:


5

delta2は前のものdeltaではなく、の2つの連続する値のですdelta。これは一種の派生物です。delta速度を測定する場合delta2、加速度です。

その推定の背後にある直感的なアイデアは、物理世界からの予測不可能なイベント(キーストロークやネットワークパケットの到着など)によって決定される、ほぼランダムな間隔で割り込みが発生することです。遅延が長ければ長いほど、予測不能なイベントが関係します。ただし、固定レートで割り込みを発生させる物理システムがあります。delta2尺度は、(割り込みが明らかに予測できるため、一定の間隔で発生した場合、全てのこのような発生を検出する保護機構であるdeltaため、同じ値を有することになるdelta2ゼロになります)。

私は「直感的」と言ったが、それ以上言うことはない。実際、「ランダムな物理的イベント」モデルでは、ビットのカウントは間違っています。各時間単位で確率pでハードウェアイベントが発生し、nビットで表される遅延が発生する場合、エントロピーの寄与はnビットではなくn / 2ビットとして考慮される必要があります。しかし、実際には、物理​​的なイベントは厳密にランダムな瞬間には発生しないことがわかっています。そのdelta2メカニズムは認めています。

したがって、実際には、「エントロピー推定値」はまさにそれです:推定値。そのセキュリティの価値は、理にかなった、数学的に正確な正当化によるものではなく、通常のセキュリティのソースによるものです。それを悪用する方法を見つけた人はまだいないようです。


このページ/dev/random、その神話とそのエントロピー推定量にうんざりしている人によって書かれました。RNGを扱うときは、いくつかの基本的なアイデアを正しく理解することが重要です。


おっと、私は話を間違えた、デルタの変化を言ったはずだ。そして、それが動作するかどうか-私はほとんどの見積もりが「よく推論し、数学的に厳密な正当化」、推測からそれらを区別するものだ持っていないことを言っているすべてで、それが持つべきいくつかの正式な正当化を。これらのことを気にせず、セキュリティの語用論だけを気にすることはまったく問題ありませんが、これはすべての人に当てはまるわけではありません。面白いことに同意しないということは、「基本的なアイデアを正しくする」ということではありません。
ルーカス

それが設計された目的の実際的な推定値であるというあなたの間違いは言っていません。
ルーカス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.