メインコンテンツまでスキップ

2. General Requirements (一般的な要件)

2. General Requirements (一般的な要件)

今日, よく遭遇するランダム性要件は, ユーザーパスワード (通常は単純な文字列) を選択することです。明らかに, 推測可能なパスワードはセキュリティを提供しません。再利用可能なパスワードの場合, ユーザーがパスワードを記憶できることが望ましいです。これにより, 発音可能な文字列または通常の単語で構成されるフレーズを使用することが推奨される場合があります。しかし, これはパスワード情報の形式にのみ影響し, パスワードが非常に推測困難でなければならないという要件には影響しません。

他の多くの要件は暗号の分野から来ています。暗号技術は, 機密性と認証を含むさまざまなサービスを提供するために使用できます。そのようなサービスは, 伝統的に "鍵" と呼ばれる量に基づいており, 敵には未知で推測不可能です。

ランダム性の TCP/IP プロトコルの使用もあり, 初期シーケンス番号の選択などです [RFC1948]。

一般的に言えば, 上記の例は, 必要とされる可能性のある 2 つの異なるタイプのランダム量も示しています。人間が使用可能なパスワードの場合, 重要な特性は推測不可能であることだけです。たとえば, ASCII 文字で構成されているため各バイトの最上位ビットがゼロであることは重要ではありません。一方, 固定長鍵などの場合, 通常は真にランダムに見える量, つまり統計的ランダム性テストに合格するビットを持つ量が必要です。

一部のケースでは, ワンタイムパッドを使用した対称暗号化や米国高度暗号化標準 [AES] などのアルゴリズムの使用など, 秘密裏にかつ/または認証を伴って通信したい当事者全員が同じ秘密鍵を知っている必要があります。他のケースでは, 非対称または "公開鍵" 暗号技術が使用される場合, 鍵はペアになります。ペアの一方の鍵はプライベートで, 一方の当事者が秘密に保持する必要があります。もう一方は公開で, 世界に公開できます。公開鍵からプライベート鍵を決定することは計算上不可能であり, 公開鍵の知識は敵にとって役に立ちません [ASYMMETRIC]。一般的な参考文献 [SCHNEIER, FERGUSON, KAUFMAN] を参照してください。

ランダム量の要件の頻度と量は, 異なる暗号システムで大きく異なります。純粋な RSA では, ランダム量は新しい鍵ペアが生成されるときにのみ必要です。その後, ランダム性のさらなる必要なしに任意の数のメッセージに署名できます。米国国立標準技術研究所 (NIST) によって考案された公開鍵デジタル署名アルゴリズムは, 各署名に対して良好な乱数を必要とします [DSS]。そして, ワンタイムパッド (原理的には可能な限り強力な暗号化技術) で暗号化すると, 処理されるすべてのメッセージと同量のランダム性が必要です。一般的な参考文献 [SCHNEIER, FERGUSON, KAUFMAN] を参照してください。

これらのケースのほとんどで, 敵は試行錯誤によって "秘密" 鍵を決定しようとすることができます。これは, 鍵が正しい鍵を一意に識別できるほどメッセージよりも十分に小さい限り可能です。これが成功する敵の確率は, 特定のアプリケーションに応じて許容可能な低さにする必要があります。敵が検索しなければならない空間のサイズは, 情報理論的な意味で存在する鍵 "情報" の量に関連しています [SHANNON]。これは, 次のように, 異なる秘密値の数と各値の確率に依存します:

                          -----
\
Bits of information = \ - p * log ( p )
/ i 2 i
/
-----

ここで, i は 1 から可能な秘密値の数までカウントし, p sub i は番号 i の値の確率です。(p sub i は 1 未満であるため, log は負になるため, 合計の各項は非負になります。)

2^n 個の等しい確率の異なる値がある場合, n ビットの情報が存在し, 敵は秘密量を推測する前に, 平均して値の半分, つまり 2^(n-1) を試す必要があります。異なる値の確率が不均等である場合, 存在する情報は少なく, 敵は平均してより少ない推測を必要とします。特に, 敵が不可能または低確率であることを知ることができる値は, 最初は敵によって無視され, より可能性の高い値を最初に検索します。

たとえば, 128 ビット鍵を使用する暗号システムを考えてみましょう。これらの鍵が 8 ビットシードでシードされた固定擬似乱数生成器を使用して導出される場合, 敵は (擬似乱数生成器をすべての可能なシードで実行することによって) 256 個の鍵のみを検索する必要があり, 最初に見えるように 2^128 個の鍵ではありません。これらの 128 ビット鍵には 8 ビットの "情報" のみがあります。

上記の分析は平均的には正しいですが, 暗号解析では本当に重要なのは敵の作業要素であるため, 一部のケースでは誤解を招く可能性があります。たとえば, 前の段落のように 128 ビット鍵を生成する擬似乱数生成器があると仮定しますが, 半分の時間はゼロを生成し, 残りの時間は残りの 2^128 - 1 値からランダムに選択します。上記のシャノンの式は, これらの鍵値の 1 つに 64 ビットの情報があると言いますが, 敵は単に値ゼロを試すことによって, ランダムな半分ではありますが, 使用の半分のセキュリティを破ることができます。したがって, 暗号目的では, 最小エントロピーなどの他の尺度を見ることも有用であり, 次のように定義されます:

    Min-entropy =  - log  ( maximum ( p  ) )
2 i

ここで, i は上記と同じです。この式を使用すると, 古典的なシャノンエントロピーの 64 ビットとは対照的に, 新しい仮説的分布の最小エントロピーは 1 ビットになります。

時々レーニーエントロピーと呼ばれる連続スペクトルのエントロピーが定義されており, パラメータ r で指定されます。ここで r = 1 はシャノンエントロピーであり, r = 無限大は最小エントロピーです。r = ゼロの場合, それは単に log (n) であり, n はゼロでない確率の数です。レーニーエントロピーは r の非増加関数であるため, 最小エントロピーは常に最も保守的なエントロピーの尺度であり, 通常は暗号評価に使用するのが最善です [LUBY]。

統計的にテストされたランダム性は, 従来の意味では, セキュリティ使用に必要な予測不可能性と同じではありません。

たとえば, CRC 標準数学表のランダムテーブルなどの広く利用可能な定数シーケンスの使用は, 敵に対して非常に弱いです。それを学習または推測する敵は, シーケンスに基づくすべてのセキュリティ (将来と過去) を簡単に破ることができます [CRC]。別の例として, 一定の鍵で AES を使用して 1, 2, 3, ... などの連続した整数を暗号化すると, 優れた統計的ランダム性特性を持つ出力が生成されますが, 予測可能です。一方, 6 面サイコロの連続した振りを取り, 結果の値を ASCII でエンコードすると, 実質的な予測不可能なコンポーネントを持つ統計的に貧弱な出力が生成されます。したがって, 統計テストに合格または失敗することは, 何かが予測不可能か予測可能かを明らかにしないことに注意してください。