铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务

阅读数:2965 2019 年 2 月 14 日 08:00

铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务

铁线蕨算法(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

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论