2

我目前正在尝试为存储在 Android 设备上的文件提供透明的加密/解密层。我需要随机访问这些文件中的每一个(搜索算法所必需的)。该层需要为程序的其余部分提供 RandomAccessFile 或 FileChannel。

我对加密的(非常)基本理解表明,某些密码模式(如 ECB、CTR、XEX 和 XTR)可以促进随机访问,但我宁愿在重新发明轮子之前使用其他人的工具。最好将加密留给专家。

一个理想的解决方案是我可以使用 Java 库访问的加密磁盘映像,但我还没有找到可以用于 Android 的任何东西。

有没有办法让我提供对加密文件的随机访问?这感觉就像很多人在他们的应用程序中想要的东西!

4

1 回答 1

0

随机读取访问很容易:使用 CTR,但请确保您使用正确的密钥和随机数。随机写访问可能同样简单,尽管使用 CTR,如果您更改任何块,您会及时泄漏信息。因此,如果攻击者只是获得一个文件的单一视图,那么您就可以了,否则您会直接泄露有关纯文本的信息。

你有一个特定的使用场景。如果有任何库可以为您执行此操作,我还没有看到它们。此外,密钥管理通常也是特定于应用程序的。恐怕您将不得不处理威胁情景。

ECB 不应用于字符串或文件等相关信息。XEX(或 XTS)通常在 Java 加密库(例如 Oracle JCE 或 Bouncy)中不可用。

于 2012-12-31T01:57:48.070 回答