Login
Newsletter
Werbung

Fr, 8. Februar 2019, 15:44

Software::Security

Google erklärt Adiantum-Verschlüsselung

Weil der AES-Algorithmus auf Prozessoren ohne entsprechende Instruktionen zu langsam ist, hat Google das Verschlüsselungsverfahren Adiantum entwickelt. Adiantum bietet eine sehr sichere Dateiverschlüsselung bei akzeptabler Geschwindigkeit.

Google

Google setzt bei Android auf die komplette Verschlüsselung der Dateisysteminhalte. Ausgenommen davon sind allerdings billige und entsprechend leistungsschwache Smartphones, bei denen diese Verschlüsselung zu große Verzögerungen für die Benutzer ergeben würde. Um dieses Manko zu beheben, hatte Google ursprünglich geplant, den Algorithmus Speck einzusetzen. Doch da dieser bei der US-amerikanischen NSA entwickelt wurde und die NSA die Wahl bestimmter Parameter nicht erklären wollte, geriet er in Verdacht, eine nur der NSA bekannte Hintertür zu enthalten. Daher entzog auch Google dem Verfahren sein Vertrauen und begann nach Alternativen Ausschau zu halten.

Diese Alternative entwickelte Google unter dem Namen Adiantum letztlich selbst. Adiantum ist zwar ein neues Verfahren, es benutzt allerdings für die Verschlüsselung und kryptografische Hashes bereits bekannte und bewährte sichere Algorithmen. Adiantum wird im kommenden Linux 5.0 enthalten sein. Wie das Verfahren funktioniert, hat Google jetzt in einem Blog-Beitrag erklärt.

Zur Zeit kommt in Android die AES-Verschlüsselung zum Einsatz. AES ist ein symmetrischer Algorithmus (Verschlüsselung und Entschlüsselung verwenden denselben Schlüssel), der eingehend untersucht wurde und nach jetzigem Kenntnisstand als unknackbar gilt. Dementsprechend ist er überall im Einsatz. Moderne Prozessoren unterstützen dies durch Instruktionen, die die Verschlüsselung und Entschlüsselung beschleunigen. So enthält die ARMv8-Architektur entsprechende Instruktionen. Android oder Android Go werden aber auch auf billigen, leistungsschwachen Smartphones, vorrangig in Entwicklungsländern, eingesetzt. Diese enthalten meist ARMv7-Chips, wo diese Instruktionen fehlen. Betroffen sind aber auch Android-Fernsehgeräte und Uhren. Daher wurde in diesen Geräten, sofern sie weniger als 50 MB/s per AES verschlüsseln können, bisher auf Verschlüsselung verzichtet.

Doch nach eigenen Angaben ist es das Ziel von Google, die Verschlüsselung auf jedes Gerät zu bringen. Es war bereits bekannt, dass ChaCha20 sehr viel schneller als AES arbeitet, daher kombinierte Google bereits 2014 ChaCha20 mit dem MAC-Algorithmus Poly1305, der ebenfalls sehr schnell ist, in TLS zur Nutzung in HTTPS-Verbindungen. Für die Dateisystemverschlüsselung hat dieses Verfahren aber einen Nachteil: Der verschlüsselte Block ist aufgrund einiger Zusatzinformationen ein paar Byte größer als das Original. Dies ist für Dateisysteme nicht leicht zu handhaben. Daher entwickelte Google Adiantum, das einen neuen Modus für ChaCha einführt, bei dem die Länge der Daten gleich bleibt.

Fotostrecke: 3 Bilder

Geschwindigkeitsvergleich zwischen AES-256 XTS und Adiantum
Ablauf des Adiantum-Verfahrens
Adiantum ist laut Google mehr als fünfmal so schnell wie ein in gewöhnlichen Instruktionen codiertes AES-256-XTS. Gegenüber AES hat es sogar bessere Eigenschaften. So bewirkt bereits die Änderung eines einzelnen Bits im Klartext, dass der verschlüsselte Block komplett anders aussieht, und umgekehrt ebenso. Das eigentliche Verfahren ist relativ komplex. Von jedem 4096-Byte-Block werden 4080 Bytes mit ChaCha verschlüsselt, 16 Bytes mit AES, was wegen der geringen Größe aber nicht ins Gewicht fällt. Zusätzlich werden zwei Hashes des ganzen Blocks berechnet, einmal mit Poly1305, einmal mit NH. Diese Hashes werden mit einem 32 Byte langen »Tweak« initialisiert, der für jeden Block unterschiedlich ist. Details können dem Google-Blog entnommen werden.

Wie andere Verschlüsselungen kann auch ChaCha mit unterschiedlicher Anzahl von »Runden« genutzt werden. Jede Runde erhöht die Sicherheit exponentiell, während der Rechenaufwand linear steigt. ChaCha mit 7 Runden wurde bereits erfolgreich geknackt, doch erhöht man die Rundenzahl nur um eine weitere, so gilt ChaCha bisher als unangreifbar. Aus diesem Grund hält Google 12 Runden bei ChaCha für ausreichend sicher und verzichtet auf die sonst üblichen 20 Runden, die entsprechend mehr Rechenzeit kosten würden.

Wie Google weiter schreibt, ist Adiantum in den Android-Kerneln ab Version 4.9 verfügbar, auch in ARM-optimierten Varianten. Trotzdem ist Hardware-beschleunigtes AES schneller als Adiantum und daher für alle ARMv8-basierten Geräte weiterhin vorgeschrieben.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung