ワンタイムパッドを使用して簡単なチャットアプリケーションを作成しようとしています。私はすでにアルゴリズムを作成しました。メッセージを暗号化するには、両側で同じであるある種の重要な資料が必要です。キーマテリアルの配布は、物理的な接触(USBドングルなど)で行われることになっています。そこで、2つのクライアントが通信に使用できる非常に大きなランダムキーファイルをいくつか作成したいと思います。だから私の質問は:
- 非常に安全な乱数/文字列ジェネレーターが必要ですが、C#で使用できる優れたものを知っていますか?
- そして、このような大きなファイルを使用する場合、キーマテリアルのチャンク(たとえば1 MB)を読み取り、後で読み取るときにファイルから削除する予定なので、ファイル全体をメモリにロードしないようにするにはどうすればよいですか?同じキーが2回使用されることはありません。