dev/urandom
、sayhead
またはdd
、から読み取る場合、出力は常にランダムで異なることが予想されます。
これはUNIXによって低レベルでどのように処理されますか?ファイルは読み取り時に自然に切り捨てられますか、それともファイルは実際には対称暗号または同等のもののインターフェイスであり、そのため「読み取り」は実際には暗号を実行する行為です。
/dev/urandom
は文字デバイスであり、通常のファイルではありません。それを開くと、通常はカーネル内で読み取りを処理するドライバーへのインターフェイスが提供されます。プログラムがから読み取るたび/dev/urandom
に、ドライバーが呼び出され、ドライバーは適切なコンテンツを提供する方法を決定します(他の文字デバイスと同じ— /dev/null
、/dev/zero
...)。
Linuxでは、これはに実装されていdrivers/char/random.c
ます。ランダムデータのさまざまなソースからシードされた「エントロピープール」を維持し、読み取られると、ChaChaストリーム暗号を使用してプールデータを処理し、返すデータを構築します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加