2

私は現在、Androidデバイスに保存されているファイルに透過的な暗号化/復号化レイヤーを提供しようとしています。これらの各ファイルにランダムアクセスする必要があります(検索アルゴリズムに必要)。レイヤーは、プログラムの残りの部分にRandomAccessFileまたはFileChannelのいずれかを提供する必要があります。

私の(非常に)基本的な暗号の理解は、ECB、CTR、XEX、XTRなどの特定の暗号モードがランダムアクセスを容易にする可能性があることを示唆していますが、車輪の再発明を行う前に、他の誰かのツールを使用したいと思います。暗号を専門家に任せる方がはるかに良いです。

理想的な解決策は、Javaライブラリを使用してアクセスできる暗号化されたディスクイメージですが、Androidに使用できるものは見つかりませんでした。

暗号化されたファイルへのランダムアクセスを提供する方法はありますか?これは、多くの人が自分のアプリに望んでいるようなもののように感じます!

4

1 に答える 1

0

ランダム読み取りアクセスは簡単です。CTR を使用しますが、キーとナンスを正しく使用していることを確認してください。ランダム書き込みアクセス同様に簡単ですが、CTR を使用すると、ブロックを変更すると時間内に情報が漏洩します。したがって、攻撃者が 1 つのファイルの 1 つのビューを取得するだけであれば問題ありません。それ以外の場合は、プレーン テキストに関する情報を直接漏らしてしまいます。

特定の使用シナリオがあります。あなたのためにこれを行うライブラリがある場合、私はそれらをまだ見ていません。さらに、通常、キー管理もアプリケーション固有です。脅威のシナリオに対処する必要があると思います。

ECB は、文字列やファイルなどの関連情報には使用しないでください。XEX (または XTS) は通常、Java 暗号化ライブラリ (Oracle JCE や Bouncy など) では使用できません。

于 2012-12-31T01:57:48.070 に答える