Adiantum | |
Designers: | Paul Crowley and Eric Biggers at Google |
Related To: | HPolyC |
Key Size: | 8192 bits |
Block Size: | no practical limit; intended for 4096-byte disk sectors |
Structure: | HBSH (hash, block cipher, stream cipher, hash) |
Adiantum is a cipher composition for disk encryption. It uses a new cipher construction called HBSH (hash, block cipher, stream cipher, hash), specifically choosing NH, 256-bit Advanced Encryption Standard (AES-256), ChaCha12, Poly1305 for the four elements. HPolyC is an earlier variant which does not use NH.[1]
It was designed in 2018 by Paul Crowley and Eric Biggers at Google specifically for low-powered mobile devices running Android Go. It has been included in the Linux kernel since version 5.0.[2] The construct is designed to be "wide-block", where any change in the plaintext causes the entire ciphertext to be unrecognizably changed.[3]
Adiantum is implemented in Android 10 as an alternative cipher for device encryption, particularly on low-end devices lacking hardware-accelerated support for AES. (Adiantum only invokes AES once per plaintext.) The company stated that Adiantum ran five times faster than AES-256-XTS on ARM Cortex-A7 CPUs.[1] Google had previously exempted devices from mandatory device encryption if their specifications affected system performance if enabled. Due to the introduction of Adiantum, device encryption becomes mandatory on all Android devices beginning on Android 10.[4] [5]