algorithm - 为什么 Apple FileVault 使用 block 加密算法而不是流加密算法?

标签 algorithm encryption filevault

FileVault 2 uses the Advanced Encryption Standard (AES) encryption algorithm, which delivers robust protection for stored data. Until mid-2013, it only supported the use of 128-bit keys, not 256-bit keys. Although 128-bit keys are technically acceptable in many environments, organizations are rapidly moving toward 256-bit keys to thwart emerging threats.

来源:https://searchsecurity.techtarget.com/feature/Apple-FileVault-2-Full-disk-encryption-software-overview

流算法不是更快更容易处理吗?使用分组密码不会占用更多磁盘空间吗? 现代 CPU 中是否有用于流式加密算法的指令集,就像它用于 block 算法一样?

谢谢

最佳答案

文件系统必须有效地支持所有常见用例。

现在考虑数据库文件的情况。 (例如,使用 SQLite 的一个。)通常知道您的记录在哪里,打开您的文件,搜索到那个地方,读取该记录,可能重写它,然后关闭您的文件。使用基于 block 的算法,这只是一个加载正确 block 、解密、返回、然后在返回途中加密的问题。使用基于流的算法,您需要读取整个数据库文件才能理解文件的那部分,并且需要再次重写整个数据库文件以修改中间的一点。

因此,对于这种用例,基于流的算法效率极低,而基于 block 的算法运行良好。

顺便说一句,只要加密 key 在 block 外部,基于 block 的算法的空间开销就会非常小。或者,更准确地说,将强制您将文件大小四舍五入到最后一个 block 。

关于algorithm - 为什么 Apple FileVault 使用 block 加密算法而不是流加密算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481488/

相关文章:

performance - 查找字符串中没有重复的最长子字符串。时间复杂度?

algorithm - 最佳任务顺序

c - 使用 libsodium 加密

python - xlrd - 错误 "Workbook is encrypted",Python 3.2.3

Objective-C - 检查 OS X 中的 FileVault 状态

algorithm - 当最多可以省略 k 个元素时,查找最大和连续子数组?

algorithm - 是否可以编写一个程序来打印从大小为 n 的输入数组中添加到 k 的所有对

java - Android的KeyStore getKey返回null

macos - FileVault2恢复 key 修改后如何获取?