-1

ワンタイムパッドを実装したいとしましょう。安全な乱数ジェネレーターがあり、乱数を使用してワンタイム パッドを作成したとします。これを USB スティックまたはファイルシステムのスペースに保存したいとしましょう。

これで、メッセージを取得し、保存されたワンタイム パッドを使用してメッセージを暗号化または復号化できるスクリプトまたはプログラムができました。これが完了したら、プログラムでワンタイムパッドを破棄したいと思います。

あなたならどうしますか?データがまだディスク上にあるため、単にファイルを削除するだけでは不十分であることを認識しています。ワンタイムパッドを0または他の日に上書きするだけで十分ですか。それはそれを本当に取り返しのつかないものにするでしょうか。

また、パッドを RAM に読み込む必要があり、モジュラー演算を実行するためのステージもあります。RAM も回復できないようにするためのベスト プラクティスは何ですか?

ワンタイム パッドは本当にソフトウェアで実装できますか。ワンタイムパッドを実装する方法を考える際に、他に欠けている要因は何ですか?

4

2 に答える 2

3

私は専門家ではありません。ここに私の考えがあります。

2 つのパーティ間のワンタイム パッドでは、両方のパーティが同じパッドを使用する必要があります。当事者間で交換されるメッセージごとに、各当事者はパッドから 1 つの「ページ」を削除します。ソフトウェアの場合、「ページ」は暗号化キーです。エラーが発生する可能性があるため、機能させるにはいくつかのことが必要です。

  1. 当事者がどの「ページ」にいるかを同期する方法が必要です。通常、メッセージ交換中、どちらの側も使用するページ (現在のページ) を知っているだけですが、同期していない場合は、どちらのページを使用するかを決定する必要があります。

  2. パッドがなくなったら、当事者は次のパッドを使用する時期であると判断する必要があります。ページ番号と同じように、「新しいパッドを使用する」ことを知らせる方法が必要なだけです。

  3. 両当事者が同じパッドを使用していることを確認する方法が必要になると思われます。おそらく、パッドでページを焼き付けずにこれを行う方法が必要です。それは正しいようですが、必須ではないかもしれません。

  4. パッド (またはパッド内のページ) を削除するのは注意が必要です。古典的な「NSAが回復できないようにドライブを消去する方法」を読む必要があります。これには、ディスク上の同じセクターに異なるジャンクを繰り返し書き込むことが含まれると思います。

  5. 同じ「ページ」を 2 回使用しないように注意してください。リクエストのページは、リクエストに対するレスポンスのページとは異なります。

于 2013-09-23T16:10:10.387 に答える