Le chiffrement des fichiers ou de l'ensemble des données sur un smartphone Android ne pose pas de problème particulier si celui-ci dispose d'un SoC adéquat, sans quoi l'opération peut être fastidieuse et consommer beaucoup de ressources.

Avec Android qui prend actuellement en charge AES-128-CBC-ESSIV (disque entier) et AES-256-XTS (fichiers), la plupart des appareils peuvent s'appuyer sur les ARMv8 Cryptography Extensions qui ajoutent des instructions pour accélérer le chiffrement et déchiffrement AES.

En introduisant Adiantum, Google pense aux smartphones et autres appareils ne disposant pas d'une partie hardware spécialisée afin d'utiliser efficacement les méthodes actuelles de chiffrement des données stockées en local.

D'après les chiffres communiqués par Google, pour un appareil équipé d'un processeur ARM Cortex-A7, le chiffrement et le déchiffrement avec Adiantum est près de cinq fois plus rapide qu'avec AES-256-XTS, sans donc d'accélération matérielle (sur des secteurs de 4096 octets ; 10,6 cycles par octet) :

Adiantum-AES

Adiantum s'appuie sur le chiffrement de flux sécurisé ChaCha12 en mode dit de conservation de la longueur. Avec Adiantum, il ne s'agit pas de nouveaux algorithmes de bas niveau, mais d'une association de méthodes et outils déjà connus dans une implémentation plus efficace.

Un billet de blog technique a été publié. " Nous avons commencé à travailler sur ce sujet fin 2017 et nous avons publié un premier article en août ", déclare Paul Crowley, ingénieur logiciel chez Google, à Wired.

" Nous en savons beaucoup sur la sécurité de ces algorithmes comme ChaCha et AES. Ils existent depuis des décennies. Ils ont fait l'objet d'un examen extrêmement minutieux. Nous avons donc une garantie mathématique que si ChaCha et AES sont sécurisés, alors Adiantum est sécurisé. "

Google a déjà publié des versions d'Adiantum dans le noyau Android (v4.9+) et Linux (v5.0+), ainsi qu'une version spécialement adaptée aux processeurs ARM. Le projet est sur GitHub. Adiantum s'adresse aux appareils pour lesquels la vitesse de traitement avec AES est inférieure à 50 MiB/s (~50 Mo/s) et fera partie d'Android Q.