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

时间:2018-09-24 14:24:07

标签: algorithm encryption filevault

  

FileVault 2使用高级加密标准(AES)加密算法,可为存储的数据提供强大的保护。直到2013年中,它仅支持使用128位密钥,不支持256位密钥。尽管在许多环境中128位密钥在技术上都是可以接受的,但是组织正在迅速向256位密钥迈进,以阻止出现的威胁。

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

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

现在考虑数据库文件的情况。 (例如,一个使用SQLite的数据库。)通常要知道您的记录在哪里,打开文件,寻找到该位置,读取该记录,可能重写它,然后关闭您的文件。使用基于块的算法,只需要将正确的块加载,解密,返回,然后在返回的途中对其进行加密即可。使用基于流的算法,您需要读取整个数据库文件以了解文件的那部分,并且需要再次重写整个数据库文件以对中间部分进行修改。

因此,基于流的算法在这种用例下效率极低,而基于块的算法则很好。

顺便说一句,只要加密密钥在块外部,基于块的算法将只有很少的空间开销。或者,更确切地说,将迫使您将文件大小四舍五入到最后一块。