1. Introduction (Einführung)
1. Introduction (Einführung)
Der Advanced Encryption Standard (AES -- [FIPS-197]) ist zum Goldstandard in der Verschlüsselung geworden. Sein effizientes Design, die weit verbreitete Implementierung und die Hardwareunterstützung ermöglichen hohe Leistung in vielen Bereichen. Auf den meisten modernen Plattformen ist AES vier bis zehn Mal so schnell wie die zuvor am häufigsten verwendete Chiffre, der Triple Data Encryption Standard (3DES -- [SP800-67]), was ihn nicht nur zur besten Wahl, sondern zur einzigen praktischen Wahl macht.
Dies birgt mehrere Probleme. Wenn zukünftige Fortschritte in der Kryptanalyse eine Schwäche in AES aufdecken, befinden sich die Benutzer in einer unbeneidenswerten Position. Da die einzige andere weithin unterstützte Chiffre der viel langsamere 3DES ist, ist es nicht machbar, Implementierungen so umzukonfigurieren, dass sie 3DES verwenden. [Standby-Cipher] beschreibt dieses Problem und die Notwendigkeit einer Standby-Chiffre ausführlicher. Ein weiteres Problem ist, dass AES zwar auf dedizierter Hardware sehr schnell ist, seine Leistung auf Plattformen ohne solche Hardware jedoch erheblich geringer ist. Ein weiteres Problem besteht darin, dass viele AES-Implementierungen anfällig für Cache-Kollisions-Timing-Angriffe sind ([Cache-Collisions]).
Dieses Dokument bietet eine Definition und einen Implementierungsleitfaden für drei Algorithmen:
-
Die ChaCha20-Chiffre. Dies ist eine Hochgeschwindigkeits-Chiffre, die erstmals in [ChaCha] beschrieben wurde. Sie ist in reinen Software-Implementierungen erheblich schneller als AES und etwa dreimal so schnell auf Plattformen ohne spezialisierte AES-Hardware. Siehe Anhang B für konkrete Zahlen. ChaCha20 ist auch nicht empfindlich gegenüber Timing-Angriffen (siehe die Sicherheitsüberlegungen in Abschnitt 4). Dieser Algorithmus wird in Abschnitt 2.4 beschrieben.
-
Der Poly1305-Authentifikator. Dies ist ein Hochgeschwindigkeits-Nachrichtenauthentifizierungscode. Die Implementierung ist ebenfalls unkompliziert und leicht korrekt durchzuführen. Der Algorithmus wird in Abschnitt 2.5 beschrieben.
-
Die CHACHA20-POLY1305 Authenticated Encryption with Associated Data (AEAD) Konstruktion, beschrieben in Abschnitt 2.8.
Dieses Dokument und sein Vorgänger führen diese neuen Algorithmen nicht zum ersten Mal ein. Sie wurden in wissenschaftlichen Arbeiten von D. J. Bernstein [ChaCha][Poly1305] definiert. Der Zweck dieses Dokuments besteht darin, als stabile Referenz für IETF-Dokumente zu dienen, die diese Algorithmen verwenden.
Diese Algorithmen wurden einer strengen Analyse unterzogen. Mehrere Arbeiten diskutieren die Sicherheit von Salsa und ChaCha ([LatinDances], [LatinDances2], [Zhenqing2012]).
Dieses Dokument repräsentiert den Konsens der Crypto Forum Research Group (CFRG). Es ersetzt [RFC7539].