我使用以下方法加密了一个 1GB 文件夹克里夫斯加密文件夹似乎是6比原始文件夹大 6 倍?我知道加密文件总是比原始文件大,但 6 倍?!?
这是由错误导致的吗?还是这对 CryFs 来说是正常现象,因为它比 encfs 或任何其他加密应用程序功能更多?
答案1
CryFS 的目标不仅是保密文件内容,而且还保密文件大小、元数据和目录结构。
为了隐藏文件大小,CryFS 将文件内容拆分为大小相同的块,并单独加密这些块。使用树结构来记住这些块如何组合在一起形成文件。此树结构的开销很小,并且本身也使用加密的相同大小块进行存储。为了隐藏文件元数据和目录结构,它们也使用加密的相同大小块来表示。
来源:
答案2
以下直接来自开发人员 Sebastian M.:(希望这可以帮助有同样问题的人)
tldr;> 这可能是由于 CryFS 的工作方式而发生的,但在即将发布的 0.10 版本系列中应该会好得多。在使用 0.9.x 版本时,您还可以通过更改文件系统的块大小来改进它。
背景:CryFS 0.9.x 默认以 32kb 的块分配所有数据。即使文件非常小,每个文件也需要至少一个块,并且至少需要这 32kb 的空间。这样做是因为 CryFS 使用它来隐藏文件大小。您可以在这里的第二段中阅读更多关于为什么这很重要的内容: https://www.cryfs.org/comparison#encfsCryFS 论文中有一个安全性证明,攻击者无法通过查看加密文件系统来找出您的目录结构或文件的大小。
但不幸的是,这意味着在存储大量小文件的情况下,膨胀可能会相当大。在 0.10.x 中,默认设置为使用 16kb 块,因此膨胀应该小得多。但是,您不必等待。创建文件系统时,您可以选择块大小。选择较小的块大小将减少二进制膨胀(您可以尝试降低到 4kb),但在访问大文件时可能会使文件系统变慢一些。