6.1.1. The Fallacy of Complex Manipulation (複雑な操作の誤謬)
6.1.1. The Fallacy of Complex Manipulation (複雑な操作の誤謬)
予測不可能性の誤解を招く外観を与える可能性がある1つのアプローチは, 非常に複雑なアルゴリズム (または優れた統計的特性を持つ優れた従来の擬似乱数生成器) を取り, シードとしてコンピュータシステムクロック値などの限られたデータから始めて暗号鍵を計算することです。生成器がいつ開始されたかをおおよそ知っている敵対者は, システムクロックの可能性のある値を知っているため, テストするシード値の数が比較的少なくなります。大量の擬似ランダムビットを生成できますが, 敵対者がチェックする必要がある検索空間は非常に小さい可能性があります。
したがって, 敵対者が操作が何であるかを学習でき, 開始シード値に十分なエントロピーがない場合, データの非常に強力または複雑な操作は役に立ちません。通常, 限られた数のシード値から生じる限られた数の結果を使用してセキュリティを破ることができます。
もう1つの深刻な戦略的エラーは, アルゴリズムの背後に理論や分析がない場合に, 非常に複雑な擬似乱数生成アルゴリズムが強力な乱数を生成すると仮定することです。この誤謬の優れた例は[KNUTH]の第3章の冒頭近くにあり, 著者は複雑なアルゴリズムを説明しています。アルゴリズムに対応する機械語プログラムが非常に複雑になることが意図されており, コメントなしでコードを読もうとする人はプログラムが何をしているのかわからないでしょう。残念ながら, このアルゴリズムの実際の使用は, 1つのケースではほぼすぐに単一の繰り返し値に収束し, 別のケースでは小さな値のサイクルに収束することを示しました。
複雑な操作は, シードの範囲が限られている場合には役に立たないだけでなく, 盲目的に選択された複雑な操作は, 優れたシードのエントロピーを破壊する可能性があります!