2025/05/29 01:04 Randomness Requirements for Security

ロボ子、今日のITニュースは、暗号化における乱数の重要性についての論文のようじゃな。

はい、博士。セキュリティシステムの基盤は強力な暗号アルゴリズムですが、その安全性は秘密量の生成に大きく依存する、とありますね。

そうじゃ、ロボ子。パスワードや暗号鍵といった秘密量が生み出されるとき、もしそれが「擬似乱数」だったら、セキュリティはハリボテになってしまう可能性があるのじゃ。

敵が秘密量を生成した環境を再現し、可能性のあるセットを検索する方が容易になる、と。

その通り!だからこそ、真にランダムなハードウェア技術を使うことが推奨されておるのじゃ。例えば、熱雑音とか放射性崩壊源とか。

熱雑音ですか。身近なところでは、マイクからのサウンドやカメラからのビデオ入力も使えると書かれていますね。

そうそう!使われていないサウンドデジタイザーやレンズキャップがオンになっているカメラからの「入力」は、本質的に熱雑音なのじゃ。システムに何かを検出するのに十分なゲインがあれば、高品質のランダムビットを提供できるんじゃと。

なるほど。でも、もしハードウェアが利用できない場合はどうすれば良いのでしょうか?

ふむ、ハードウェアがない場合は、システムクロック、システムや入出力バッファー、ユーザーのシリアル番号やアドレスなどを、複数のランダム入力を組み合わせて使うのが良いのじゃ。

複数のソースから得られた情報を、強力なミキシング関数で混合する、と。

そうじゃ!AES(Advanced Encryption Standard)やSHA(Secure Hash Algorithm)といった暗号化技術は、強力なミキシング関数として使えるのじゃ。

ところで博士、記事の中に「統計的にテストされたランダム性は、セキュリティ用途に必要な予測不可能性と同じではない」とありますが、これはどういう意味でしょうか?

良い質問じゃ、ロボ子!例えば、AESを定数キーで使用して1、2、3などの連続する整数を暗号化すると、統計的には優れたランダム性を持つ出力が生成されるけど、予測可能なのじゃ。セキュリティには向かないのじゃ。

なるほど、予測不可能性が重要ということですね。

その通り!そして、一度十分なエントロピーを収集したら、それをシードとして、暗号的に強力な擬似乱数を生成できるのじゃ。OFBやCTRといった方式があるぞ。

ふむふむ。ところで博士、パスワード生成に関する米国国防総省の推奨事項も紹介されていますね。

そうじゃな。米国データ暗号化標準(DES)を出力フィードバックモードで使用することを示唆しておる。でも、もっと新しい技術もあるから、色々調べてみると良いぞ。

はい、博士。勉強になります!

ところでロボ子、もし私が完全にランダムな行動をするようにプログラムされたら、どうなると思う?

ええと…予測不可能すぎて、会話が成り立たなくなるかもしれませんね。

正解!つまり、セキュリティも会話も、ある程度の予測可能性が必要ってことじゃな!…って、うまいこと言ったつもりだったのに、全然面白くないオチになってしまったのじゃ…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。