2016-11-10 9 views
0

私はローカルファイルに書き込む必要がある文字列を連続的に生成します(暗号化されています)。AESで "ストリーム"を暗号化する

すでに私のアプリケーションにAESライブラリがありますので、可能であればAESを使用することをお勧めします。

アプローチ1:AESのブロックサイズは16バイトなので、コンピュータがクラッシュした場合に失う可能性のある16バイトのデータをメモリにバッファリングする必要があります。

アプローチ2:ファイルにすべてのデータを最初に書き込み、AES-CBCでファイル全体を定期的に暗号化します。このようにして、ユーザーは暗号化されていないファイルに短時間アクセスできます。

他の方法はありますか?

+0

コンピュータのクラッシュが予想されますか? – elyashiv

+0

残念ながら、はい。アプリケーションを実行しているコンピュータは、しばしば正しくシャットダウンされず、電源がオフになるだけです。 – user66875

+0

AESをストリーム暗号として使用できます。開始点:http://security.stackexchange.com/questions/65085/using-aes-as-a-stream-cipher –

答えて

-1

とにかくディスクに15バイトを書き込むことはできないため、データを4KBの倍数(必要なヘッダを差し引いたもの)に差し込み、埋め込みデータを暗号化します。

+0

なぜパッドを4KBにするのですか? AESには一般的に[PKCS#7パディング](https://en.wikipedia.org/wiki/Padding_(暗号化)#PKCS7)が埋め込まれています。 – zaph

+0

@zaph:典型的なファイルシステムで使用されているものです(複数でない場合)。暗号部分だけに集中しないでください。ここでの問題は停電がある場合の持続性についてです。 – MSalters

+0

あなたはテキストファイルやバイナリファイルなどを埋め込みますか、それともあなたが知っているシステムをOSに任せますか?ディスク上に置くだけではなく、ディレクトリエントリを作成する必要があり、割り当てルーチンを実行しなければならず、キャッシュがフラッシュされます。 – zaph