铁线蕨算法(Adiantum)是一种针对低端智能手机、智能手表和其他Android Pie设备的新加密算法,这些设备速度太慢,无法使用先进的加密标准(AES)进行存储加密。
根据谷歌的说法,在不影响用户体验的情况下,在旧的基于 ARMv7 的设备上使用 AES 不能提供加密存储所需的性能。由于这个原因,这些设备被完全排除在实现存储加密之外,而存储加密是所有 Android 设备的要求。Adiantum 的目标是通过提供一个密码来改变这种情况,这个密码是只使用所有 CPU 原生支持的操作(如加法、旋转和异或)。
Adiantum 是一种新的加密形式,我们专门为手机和智能设备开发,这些设备没有办法有效加密本地存储的数据,因为没有专门的硬件。[…]从智能手表到联网医疗设备的一切设备,Adiantum 允许这些设备对敏感数据进行加密,这将有助于保护我们的互联世界。
值得强调的是,为了克服 AES 的限制,谷歌一直在低端设备上使用ChaCha20流密码,这个密码是用在 HTTPS 上的。现在,ChaCha 比 AES 快得多,但不能直接用于磁盘加密。这是由于数据存储的特性,特别是保存数据长度的要求,因为我们希望在磁盘扇区中对每个磁盘扇区进行精确加密。因此,谷歌将 Adiantum 设计为支持长度保持模式的 ChaCha 密码的演化。特别是,Adiantum 依赖于 ChaCha 的 12 轮变体,轮轮加密,而不是更常用的 20 轮变体。有趣的是,ChaCha 的 7 轮变体 ChaCha7 在 2008 年被破解,但是到今天为止还没有对 ChaCha8 的攻击。正如谷歌所言,ChaCha12 和 AES-256 相比,轮数与被破坏的轮数之比更好,再加上形式证明AES-256具有良好的安全性,使得 Adiantum 的开发者对 ChaCha12 的安全性有了很高的信心。
说到性能,在不提供 AES 硬件支持的 CPU 上,Adiantum 比 AES-256-XTS 快 5 倍左右。但是,在支持 AES 的新 CPU 上运行时,AES 比 Adiantum 要快。所以,谷歌的经验法则是在 AES 性能<= 50MiB /sec 的设备上使用 Adiantum。
查看英文原文:Adiantum Brings Disk Encryption to Lew-end Smartphones
评论