Was ist AES-Verschlüsselung und wie funktioniert sie?

AES-Verschlüsselung, oder Advanced Encryption Standard, ist ein Verschlüsselungsverfahren zur Absicherung der Online-Datenübertragung.
Derzeit zählt AES zu den besten verfügbaren Verschlüsselungsprotokollen, da es Geschwindigkeit und Sicherheit miteinander kombiniert und uns bei unseren täglichen Online-Aktivitäten bestmöglich schützt.
Angesichts seiner hervorragenden Eigenschaften hat sich AES zum Industriestandard für Verschlüsselung entwickelt.
In diesem Artikel erfährst du alles über die Ursprünge von AES, seine Einsatzgebiete und potenzielle Bedrohungen. Zudem erfährst du Schritt für Schritt, wie AES-Verschlüsselung und ihre einzelnen Bestandteile funktionieren.
Was ist AES (Advanced Encryption Standard) Verschlüsselung?
Kurz gesagt handelt es sich bei AES um eine symmetrische Verschlüsselungsmethode, da derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln von Daten verwendet wird.
AES nutzt den SPN-Algorithmus (Substitution Permutation Network), bei dem mehrere Durchgänge zur Verschlüsselung der Daten angewendet werden. Mehrfache Verschlüsselungsrunden machen AES nahezu unüberwindlich, da es viel zu viele Runden sind, um alle zu knacken.
Es gibt drei verschiedene Schlüssellängen bei der AES-Verschlüsselung, wobei jede Schlüssellänge eine unterschiedliche Anzahl möglicher Schlüsselkombinationen bietet:
- 128-Bit-Schlüssellänge: 3,4 x 10^38 mögliche Kombinationen
- 192-Bit-Schlüssellänge: 6,2 x 10^57 mögliche Kombinationen
- 256-Bit-Schlüssellänge: 1,1 x 10^77 mögliche Kombinationen
Obwohl die Schlüssellänge variieren kann, bleibt die Blockgröße dieser Verschlüsselungsmethode konstant bei 128 Bit (oder 16 Byte).
Die Vielfalt der Schlüssellängen wirft einige Fragen auf. Warum gibt es mehrere Schlüssellängen? Und wenn der 256-Bit-Schlüssel der stärkste aller Optionen ist, warum verwenden wir ihn dann nicht immer?
Letztendlich ist es eine Frage der Ressourcen. Ein Beispiel: Eine App, die AES-256 statt AES-128 nutzt, würde deinen Handy-Akku stärker belasten, das ist nicht immer erwünscht.
Glücklicherweise ist der Ressourcenunterschied durch heutige Technologie so gering, dass es schlichtweg keinen Grund gibt, nicht die 256-Bit-AES-Verschlüsselung zu verwenden.
Vorteile von AES
Neben der hohen Sicherheit ist die AES-Verschlüsselung vor allem deshalb so attraktiv, weil ihr Verschlüsselungsprozess relativ einfach zu verstehen ist. Dies ermöglicht nicht nur eine unkomplizierte Implementierung, sondern sorgt auch für besonders schnelle Verschlüsselungs- und Entschlüsselungszeiten.
Zudem benötigt AES weniger Speicher als viele andere Verschlüsselungsmethoden, etwa im Vergleich zu DES, was es zu einer erstklassigen Wahl für die bevorzugte Verschlüsselungstechnologie macht.
Und falls für eine bestimmte Anwendung eine zusätzliche Sicherheitsebene erforderlich ist, lässt sich AES problemlos mit unterschiedlichen Sicherheitsprotokollen wie WPA2 oder sogar anderen Verschlüsselungstechnologien wie SSL kombinieren.
Warum verwenden wir den AES-Algorithmus?
Obwohl bei weitem nicht veraltet, zählt der Advanced Encryption Standard (AES) zu den älteren Verschlüsselungsmethoden.
Ursprünglich im Jahr 1998 von den belgischen Kryptographen Vincent Rijmen und Joan Daemen entwickelt, gibt es AES seit über 20 Jahren. Anfangs wurde es als Rijndael bezeichnet, ein Name, der sich aus den Namen seiner Entwickler ableitet.
Dank seiner nahezu hohen Sicherheit dient die AES-Verschlüsselung seit 2002 als Standard, als das National Institute of Standards and Technology (NIST) den veralteten Data Encryption Standard (DES) durch AES ersetzte. Seitdem hat sich AES als zuverlässiger und effektiver Verschlüsselungsstandard etabliert.
Wie kam es dazu?
Zunächst einmal betrug die Schlüssellänge von DES lediglich 56 Bit. Das war bei Weitem nicht ausreichend, um Informationen abzusichern. So zeigte beispielsweise ein Test von distributed.net und der Electronic Frontier Foundation, dass DES in rund 22 Stunden geknackt werden kann. Dabei muss man bedenken, dass dieser Test im Jahr 1999 durchgeführt wurde, zu einer Zeit, als die Rechenleistung noch lange nicht dem heutigen Standard entsprach.
Heutzutage kann ein leistungsstarker Computer einen 56-Bit-DES-Schlüssel in nur 362 Sekunden knacken.
Im Gegensatz dazu würde das Knacken eines 128-Bit-AES-Schlüssels bis zu 36 Billiarden Jahre dauern.
Man stelle sich vor, wie viel Zeit benötigt würde, um einen 256-Bit-AES-Schlüssel zu knacken. Dieser bietet eine atemberaubende Anzahl von 984.665.640.564.039.457.584.007.913.129.639.936 möglichen Kombinationen. Bei solch einer gigantischen Zahl kann man mit ziemlicher Sicherheit davon ausgehen, dass ein Brute-Force-Angriff auf AES-Verschlüsselung ohne eine signifikante Steigerung der Rechenleistung praktisch ausgeschlossen ist.
Wo kommt der AES-Algorithmus zum Einsatz?
Mit seinen unscheinbaren Anfängen als bevorzugtes Verschlüsselungsverfahren der US-Regierung eroberte die AES-Verschlüsselung schnell die Welt und avancierte zum gängigen Standard für praktisch alles, was wir online sehen. Es wird daher zunehmend schwierig, Branchen oder Dienste zu finden, die nicht auf den AES-Algorithmus setzen.
Online-Banking-Zugangsdaten, Passwörter und Nachrichten müssen vor Angriffen und Missbrauch geschützt werden. Neben der Nutzung durch Regierungsstellen (wie der National Security Agency) sichert der Advanced Encryption Standard auch die sensiblen Daten unzähliger Produkte und Dienstleistungen ab.
Beispiele für den Einsatz von AES
Hier sind einige bemerkenswerte Beispiele, in denen Entwickler die AES-Verschlüsselung einsetzen können:
- VPNs (Virtuelle Private Netzwerke). Da die Aufgabe eines VPN darin besteht, sichere Verbindungen zu einem VPN-Server herzustellen. Um Datenlecks zu verhindern, kommen fortschrittliche Verschlüsselungsmethoden zum Einsatz. Auch die bekanntesten Anbieter, NordVPN, Surfshark und ExpressVPN werben damit, Advanced Encryption Standard mit 256-Bit-Schlüsseln zu verwenden.
- WLAN. Die meisten drahtlosen Netzwerke verwenden AES-Verschlüsselung (in der Regel in Kombination mit WPA2). Zwar gibt es noch andere Verschlüsselungsmethoden für WLANs, doch die meisten davon gelten als deutlich weniger sicher.
- Mobile Anwendungen. Viele populäre Apps, wie Snapchat und Facebook Messenger, verwenden AES-Verschlüsselung, um Daten wie Fotos und Nachrichten sicher zu übertragen.
- Archiv- und Komprimierungsprogramme. Alle wichtigen Dateikomprimierungstools nutzen AES, um Datenlecks vorzubeugen. Beispiele hierfür sind 7z, WinZip und RAR.
- Betriebssystemkomponenten. Einige Komponenten von Betriebssystemen (wie beispielsweise Dateisysteme) setzen den Advanced Encryption Standard als zusätzliche Sicherheitsebene ein.
- Programmbibliotheken. Bibliotheken in populären Programmiersprachen wie Java, Python und C++ implementieren AES-Verschlüsselung.
- Passwortmanager. Diese Programme speichern eine Menge sensibler Informationen. Deshalb verwenden Passwortmanager wie LastPass und Dashlane AES.
Auch wenn diese Liste der Einsatzmöglichkeiten der AES-Verschlüsselung schon beeindruckend ist, deckt sie noch nicht alles ab.
Neben all den bereits genannten Anwendungen begegnet dir der AES-Algorithmus auch in verschiedenen Dateisystemen und Festplattenverschlüsselungssystemen sowie in Webbrowsern.
Genau – du hast sogar AES verwendet, um diesen Artikel zu öffnen, da dein Browser deine Verbindung zu dieser Seite verschlüsselt.
Wie funktioniert die AES-Verschlüsselung?
Hier ist, was du von Anfang an wissen solltest: Ohne entsprechendes Hintergrundwissen kann der AES-Verschlüsselungsalgorithmus schwer verständlich sein. Um seine Feinheiten voll zu würdigen, müsstest du wahrscheinlich zumindest ein Mathematikstudium absolviert haben.
Glücklicherweise lässt sich die Funktionsweise des AES-Ciphers vereinfachen. Eine Möglichkeit besteht darin, den Binärcode durch verständlichere Symbole zu ersetzen.
In den folgenden Abschnitten werde ich kurz die Grundidee der AES-Kryptografie erläutern.
Unterteilung der Daten in Blöcke
Zunächst müssen wir uns vor Augen halten, dass AES ein Blockchiffre ist. Im Gegensatz zu Stromverschlüsselungen verschlüsselt AES Daten in Bitblöcken und nicht Bit für Bit.
Jeder Block besteht aus 16 Bytes, angeordnet in einem 4x4-Layout. Da ein Byte 8 Bits enthält, ergibt sich eine Blockgröße von 128 Bit (16 x 8 = 128).
Der allererste Schritt der AES-Verschlüsselung besteht also darin, den Klartext (also den unverschlüsselten Text) in diese Blöcke zu unterteilen.
Wählen wir nun den Text, den du verschlüsseln möchtest. Zum Beispiel „better late than never“.
Wendet man den Advanced Encryption Standard an, wird der Anfang dieser Phrase in den folgenden Block umgewandelt:
Beachte, dass dies nur der erste Block des Textes ist – der Rest des Satzes wird in den nächsten Block eingefügt.
2. Schlüsselerweiterung
Dies ist ein wichtiger Schritt bei der AES-Verschlüsselung. Mithilfe des Rijndael Key Schedule werden hier neue 128-Bit-Rundenschlüssel erzeugt.
Angenommen, unser ursprünglicher Schlüssel lautet „extraterrestrial“:
Nach Anwendung des Rijndael-Schlüsselplans erscheint der Schlüssel wie ein Wirrwarr zufälliger Zeichen und könnte etwa so aussehen:
Diese Zeichen erscheinen jedoch gar nicht so zufällig, denn der Rijndael-Schlüsselplan nutzt bestimmte Prozesse, um jedes einzelne Symbol zu verschlüsseln.
Den neu erweiterten Schlüsselsatz benötigt der AES-Algorithmus später noch.
3. Rundenschlüssel anwenden
Dies ist die allererste Runde der AES-Verschlüsselung. Hier fügt der Algorithmus den Urschlüssel zu unserem zuvor in einen 4x4-Block umgewandelten Text hinzu:
Ich weiß, dass das Addieren von zwei Textblöcken unmöglich erscheinen mag. Aber bedenke: AES arbeitet tatsächlich mit Binärcode, und was du jetzt siehst, ist nur eine visuelle Darstellung dessen, was in der Binärsprache tatsächlich passiert.
Nachdem die beiden Blöcke addiert wurden, erhalten wir einen völlig neuen Chiffreblock, den ich so darstellen werde:
4. Byte-Substitution
Jetzt ersetzt der AES-Algorithmus jedes Byte durch einen neuen Code gemäß einer vorab festgelegten Tabelle, der sogenannten Rijndael S-Box. Diese sieht folgendermaßen aus:
Laut der Tabelle wird ein Element wie 19 zu d4, e9 zu 1a und so weiter. Dadurch könnte nach dem Prozess der Byte-Ersetzung mein Chiffreblock in etwa folgendermaßen aussehen (beachte, dass es sich hierbei immer noch um eine hypothetische Darstellung des tatsächlichen Ablaufs handelt):
Wie du siehst, habe ich einige Spalten in unterschiedlichen Farben markiert, das wird im nächsten Schritt nützlich sein.
5. Zeilenverschiebung
In diesem Schritt verschiebt der AES-Algorithmus die Reihen des Blocks, den er während des Byte-Ersetzungsprozesses erhalten hat.
Die erste Reihe bleibt unverändert. Die zweite Reihe wird jedoch um ein Byte nach links verschoben, die dritte Reihe um zwei Bytes nach links, während die vierte Reihe um drei Bytes verschoben wird.
6. Spaltenmischung
Mathematisch ausgedrückt, multipliziert dieser Schritt jede Spalte mit einer vordefinierten Matrix, wodurch ein völlig neuer Codeblock entsteht.
Dies ist ein wirklich komplexer Vorgang, der fortgeschrittene mathematische Kenntnisse erfordert.
Der Einfachheit halber nehmen wir an, dass ich die Berechnungen durchgeführt habe und mein neuer Block nun folgendermaßen aussieht:
7. Rundenschlüssel hinzufügen
Jetzt ist es an der Zeit, den Rundenschlüssel anzuwenden, den wir in der Schlüsselerweiterungsphase erzeugt haben. Wir fügen diesen Schlüssel dem Block hinzu, den wir nach der Spaltenmischung erhalten haben:
Durch diese Aktion entsteht ein weiterer Block an Binärcode, der später noch zahlreichen weiteren Modifikationen unterzogen wird.
8. Wiederholen und fortfahren
Nun durchläuft der AES-Verschlüsselungsalgorithmus viele weitere Runden von Byte-Ersetzung, Zeilenverschiebung, Spaltenmischung und dem Hinzufügen eines Rundenschlüssels.
Die Anzahl der identischen Runden, die die Daten durchlaufen, hängt von der Schlüssellänge des AES ab.
- 128-Bit-Schlüssel: 9 Runden
- 192-Bit-Schlüssel: 11 Runden
- 256-Bit-Schlüssel: 13 Runden
Im Falle einer Verschlüsselung mit einem 256-Bit-Schlüssel durchlaufen die Daten beispielsweise die zuvor genannten Schritte 13 Mal hintereinander.
Doch das ist noch nicht alles.
Nach diesen 9, 11 oder 13 Runden der Verschlüsselung erfolgt noch eine zusätzliche Runde. In dieser zusätzlichen Runde führt der Algorithmus lediglich die Schritte der Byte-Ersetzung, Zeilenverschiebung und das Hinzufügen eines Rundenschlüssels aus – der Schritt der Spaltenmischung entfällt.
Warum? An diesem Punkt wäre die Spaltenmischung redundant. Anders ausgedrückt: Dieser zusätzliche Schritt würde unnötig viel Rechenleistung verbrauchen, ohne die Daten wesentlich zu verändern.
Am Ende des gesamten Verschlüsselungsprozesses haben die Daten also folgende Anzahl von Runden durchlaufen:
- 128-Bit-Schlüssel: 10 Runden
- 192-Bit-Schlüssel: 12 Runden
- 256-Bit-Schlüssel: 14 Runden
Nachdem alle Runden abgeschlossen sind, erscheint der ursprüngliche Text „better late than never“ als eine Ansammlung zufälliger Zeichen.
AES-Entschlüsselung
Mithilfe der inversen Verschlüsselung kann der AES-Chiffretext wieder in seinen ursprünglichen Zustand zurückversetzt werden.
Wie bereits erwähnt, verwendet der Advanced Encryption Standard (AES) die symmetrische Kryptographie. Das bedeutet, dass derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln der Daten genutzt wird.
Dadurch unterscheidet sich AES von Algorithmen, die auf asymmetrischer Verschlüsselung basieren, bei denen sowohl ein öffentlicher als auch ein privater Schlüssel erforderlich sind.
Im Fall der AES-Entschlüsselung beginnt der Prozess daher mit der Anwendung des inversen Rundenschlüssels. Anschließend kehrt der Algorithmus jede einzelne Aktion um und die Zeilen werden wieder in ihre ursprüngliche Position zurückverschoben. Die Byte-Ersetzung (Substitution) wird rückgängig gemacht und später auch die Spaltenmischung, bis die ursprüngliche Nachricht vollständig entschlüsselt ist.
Welche Sicherheitslücken gibt es bei der AES-Verschlüsselung?
Obwohl AES eine außerordentlich sichere Verschlüsselungsmethode ist, könnte sie in ein paar Jahren unter Umständen doch nicht zu 100 % undurchdringlich sein.
Bislang sind keine erfolgreichen Angriffe in der realen Welt dokumentiert worden. Jedoch könnten potenzielle Bedrohungen in der Zukunft mit der rasanten technologischen Entwicklung auftreten.
Zudem passieren auch Fehler: Wird AES nicht korrekt implementiert, können diese Fehler als Einstieg für Hacker dienen.
Glücklicherweise verhindert die richtige Anwendung von AES erfolgreiche Angriffe.
Um sicherzustellen, dass die AES-Verschlüsselung weiterhin undurchdringlich bleibt, arbeiten Kryptographen unablässig an Wegen, sie anzugreifen und entwickeln zu diesem Zweck theoretische Angriffe aller Art. Bis heute ist es niemandem gelungen, einen signifikanten, realen Angriff durchzuführen, lediglich einige Side-Channel-Angriffe waren erfolgreich.
Im Folgenden werde ich einige Beispiele dafür nennen, wie die AES-Verschlüsselung (zumindest theoretisch) kompromittiert werden kann.
Related-Key-Angriffe
Im Gegensatz zu Brute-Force-Angriffen zielen Related-Key-Angriffe direkt auf den Verschlüsselungsschlüssel ab. Sie benötigen weniger Zeit und Aufwand und haben eine höhere Erfolgswahrscheinlichkeit.
Diese Art von Angriff kann funktionieren, wenn der Angreifer die Beziehung zwischen zwei verschiedenen Schlüsseln kennt (oder vermutet).
Einige Male war die AES-Verschlüsselung Ziel von Related-Key-Angriffen, der bekannteste wurde im Jahr 2009 entdeckt. Um solche Angriffe künftig zu verhindern, haben Kryptographen die Komplexität des AES-Schlüsselplans verbessert.
Side-Channel-Angriffe
Bei unsachgemäßer Implementierung eines Computersystems ist die AES-Verschlüsselung nicht völlig immun gegen Side-Channel-Angriffe.
Diese Angriffe basieren darauf, dass durch beispielsweise elektromagnetische Emissionen oder andere Formen von Datenlecks Informationen preisgegeben werden.
Wenn AES jedoch korrekt implementiert wird, kann es helfen, diese Datenlecks zu erkennen, bevor etwas Schlimmes passiert.
Known-Key Distinguishing-Angriffe
Im Jahr 2009 gab es einen Versuch, AES-128 mittels eines Known-Key Distinguishing-Angriffs zu knacken.
Dieser Angriff erwies sich als erfolgreich gegen die 8-Runden-Version der 128-Bit-Schlüssel-AES-Verschlüsselung. Da das tatsächliche AES-128 jedoch 10 Runden durchläuft, stellte dieser Angriff in der Praxis keine wirkliche Bedrohung dar.
Zudem muss der Angreifer für einen Known-Key Distinguishing-Angriff den Schlüssel kennen, was äußerst unwahrscheinlich ist.
Key-Recovery-Angriffe
Im Jahr 2011 wurde ein Key-Recovery-Angriff als Test durchgeführt, um AES anzugreifen.
Diese Art von Angriff erfordert, dass der Angreifer mindestens ein Paar aus verschlüsselter und entschlüsselter Nachricht besitzt.
Allerdings ergab der Test keine signifikanten Resultate, da der Angriff nur viermal schneller war als ein Brute-Force-Angriff, was dennoch Milliarden von Jahren dauern würde.
Zusammenfassung
Nach der Lektüre dieses Artikels versteht man hoffentlich, warum die AES-Verschlüsselung als der „Goldstandard“ der Verschlüsselungstechniken gilt.
Ihre Schnelligkeit, Vielseitigkeit und die nahezu vollständige Immunität gegen verschiedenste Cyberangriffe machen sie zu einem der nützlichsten Werkzeuge der heutigen Zeit.
Und wir können uns wirklich glücklich schätzen, dass sie existiert.
FAQ
Hier findest du Antworten auf einige der am häufigsten gestellten Fragen zum AES-Chiffre.
Ist AES-Verschlüsselung sicher?
Ja. Ein Brute-Force-Angriff ist gegen den AES-Algorithmus praktisch nutzlos, da es potenziell Milliarden von Jahren dauern würde, ihn zu knacken. Allerdings können bei falscher Implementierung Risiken auftreten.
Glücklicherweise wird niemand in der Lage sein, ein korrekt konfiguriertes AES-System zu kompromittieren. Solange also keine Fehler gemacht werden, sind deine sensiblen Informationen vollkommen sicher.
Ist AES die beste Verschlüsselungsmethode?
Es gibt keine „beste Verschlüsselungsmethode“, da unterschiedliche Situationen verschiedene Arten von Chiffren erfordern. Dennoch gehört AES zu den sichersten symmetrischen Verschlüsselungsverfahren der modernen Welt.
Wofür wird die AES-Verschlüsselung verwendet?
Als Industriestandard für Verschlüsselung kommt AES in vielen Bereichen zum Einsatz, um digitale Daten zu schützen.
Virtuelle Private Netzwerke, mobile Anwendungen, Passwortmanager, drahtlose Netzwerke und sogar Videospiele nutzen AES-Verschlüsselung.
Welches ist besser: RSA oder AES?
RSA und AES sind unterschiedliche Verschlüsselungsalgorithmen, die oft auch zusammen verwendet werden. RSA ist ein asymmetrisches Verfahren (mit öffentlichem und privatem Schlüssel), während AES ein symmetrisches Verfahren ist. Beide haben ihre spezifischen Anwendungsbereiche.