AES: Was es ist, Algorithmus der symmetrischen Verschlüsselung und wo er eingesetzt wird

Autor: IT Sectr Veröffentlicht: 2026-04-02 Lesezeit: 9 Min.

AES (Advanced Encryption Standard) ist ein symmetrischer Blockverschlüsselungsalgorithmus, der 2001 vom National Institute of Standards and Technology (NIST) als offizieller Standard übernommen wurde. AES löste das veraltete DES ab und ist seitdem der am weitesten verbreitete Verschlüsselungsalgorithmus der Welt, der von Bankensystemen bis zu mobilen Anwendungen eingesetzt wird. Laut NIST (2023) bietet AES eine Sicherheit, die 2^256 Operationen für einen 256-Bit-Schlüssel entspricht, was es gegen moderne Brute-Force-Angriffe unverwundbar macht. NIST FIPS 197, 2023

Wichtige Punkte

  • AES ist eine symmetrische Blockchiffre mit fester Blockgröße von 128 Bit und Schlüsseln von 128, 192 oder 256 Bit.
  • GCM-Modus ist der empfohlene AES-Betriebsmodus für mobile Anwendungen, der authentifizierte Verschlüsselung bietet.
  • AES-256 ist die Version mit maximalem Sicherheitsniveau, empfohlen für den Schutz hochsensibler Daten.
  • Hardwarebeschleunigung — AES-NI-Prozessorbefehle ermöglichen Verschlüsselung mit Geschwindigkeiten von bis zu 10 GB/s auf modernen Geräten.
  • Android und iOS bieten integrierte APIs für AES: Android Keystore und iOS CryptoKit mit Hardwarebeschleunigungsunterstützung.

Was ist AES?

AES (Advanced Encryption Standard) ist eine symmetrische Blockchiffre, die von den belgischen Kryptographen Joan Daemen und Vincent Rijmen unter dem Namen Rijndael entwickelt wurde. Im Jahr 2001 wählte NIST Rijndael nach fünf Jahren öffentlicher Tests und Analyse zum Gewinner des Wettbewerbs für einen neuen US-Verschlüsselungsstandard. AES arbeitet mit Datenblöcken fester Größe (128 Bit) und unterstützt drei Schlüssellängen: 128, 192 und 256 Bit. Die Anzahl der Transformationsrunden hängt von der Schlüssellänge ab: 10 Runden für 128 Bit, 12 für 192 Bit und 14 für 256 Bit. Jede Runde umfasst vier Operationen: SubBytes (nichtlineare Byte-Substitution via S-Box), ShiftRows (zyklisches Verschieben von Zeilen), MixColumns (Spaltenmischung) und AddRoundKey (XOR mit dem Rundenschlüssel).

Geschichte des AES-Standards

Die Entwicklung von AES begann 1997, als NIST einen Wettbewerb zur Ablösung von DES ausrief, dessen 56-Bit-Schlüssel 1998 mit dem speziellen Gerät Deep Crack in 22 Stunden geknackt wurde. Fünfzehn Algorithmen aus verschiedenen Ländern nahmen teil, darunter Serpent (Großbritannien), Twofish (USA) und RC6 (USA). Bis zum Finale 1999 blieben 5 Kandidaten übrig. Rijndael gewann aufgrund seiner Kombination aus hoher Geschwindigkeit auf allen Plattformen (von 8-Bit-Mikrocontrollern bis zu 64-Bit-Servern), Resistenz gegen Kryptoanalyse und kompakter Hardware-Implementierung. Seit 2006 wird AES zur Verschlüsselung von als SECRET und TOP SECRET eingestuften Daten in US-Regierungssystemen verwendet. Heute ist AES in alle wichtigen Protokolle eingebettet: TLS 1.2/1.3, IPsec, SSH, Wi-Fi WPA2/WPA3 und Bluetooth BR/EDR.

Wie AES-Verschlüsselung funktioniert

AES verarbeitet Daten in Blöcken von 128 Bit (16 Byte), die als 4x4-Byte-Matrix namens State organisiert sind. Jede Verschlüsselungsrunde führt eine Folge deterministischer Transformationen durch, die gemeinsam einen Lawineneffekt erzeugen: Die Änderung eines Bits der Eingabedaten ändert etwa 50% der Ausgabebits. Dieser Effekt macht AES resistent gegen differentielle und lineare Kryptoanalyse — die primären Methoden zum Brechen von Blockchiffren.

Der Prozess beginnt mit AddRoundKey — XOR-Verknüpfung des Anfangsschlüssels mit dem State. Dann werden Runden ausgeführt: SubBytes ersetzt jedes State-Byte durch einen Wert aus der S-Box (Substitutionstabelle). ShiftRows verschiebt die zweite Zeile zyklisch um 1 Position, die dritte um 2, die vierte um 3 — dies gewährleistet die Durchmischung zwischen den Spalten. MixColumns multipliziert jede State-Spalte mit einer festen Matrix im Galois-Feld GF(2^8) und erzeugt eine Abhängigkeit jedes Ausgabebytes von allen vier Eingabebytes der Spalte. AddRoundKey XOR-verknüpft mit dem nächsten Rundenschlüssel, der durch Key Expansion aus dem ursprünglichen Schlüssel abgeleitet wird. Die letzte Runde enthält keine MixColumns-Operation. Die Entschlüsselung verwendet die inversen Operationen InvSubBytes, InvShiftRows, InvMixColumns und AddRoundKey in umgekehrter Reihenfolge. Für mobile Entwickler ist es nicht erforderlich, die interne Struktur von AES zu verstehen — es reicht zu wissen, wie man die integrierten APIs der Plattform mit korrekten Parametern aufruft.

Lawineneffekt und kryptografische Stärke von AES

Das Hauptmerkmal von AES, das seine kryptografische Stärke sicherstellt, ist der Lawineneffekt. Die Änderung eines Bits im Klartext oder Schlüssel führt zur Änderung von etwa 50% der Chiffretextbits, wodurch AES äußerst resistent gegen differentielle und lineare Kryptoanalyse wird. Die Kombination von SubBytes (Nichtlinearität via S-Box) und MixColumns (Diffusion via Galois-Feld-Multiplikation) erzeugt eine mathematische Komplexität, bei der selbst die Kenntnis eines Teils des Chiffretexts keine schnellere Schlüsselwiederherstellung als Brute-Force erlaubt. Laut NIST-Analyse (2018) reduziert der beste bekannte Angriff auf AES-128 — der Biclique-Angriff — die effektive Schlüssellänge nur um 2 Bit (auf 126,2 Bit), was dem Angreifer keinen praktischen Vorteil bietet. Für AES-256 existieren keine praktisch durchführbaren Angriffe, die über Brute-Force hinausgehen.

AES-Schlüsselgrößen und Sicherheitsstufen

AES unterstützt drei Schlüsselgrößen, die jeweils einer bestimmten kryptografischen Stärke entsprechen. Die Wahl der Schlüsselgröße beeinflusst Sicherheit, Leistung und Geräteressourcenanforderungen.

SchlüsselgrößeAnzahl der RundenSicherheitsstufeAnwendung
AES-12810128 BitKommerzielle Anwendungen, TLS
AES-19212192 BitRegierungssysteme (SECRET)
AES-25614256 BitTOP SECRET, Finanzsektor

Praktische Regel: Für mobile Anwendungen standardmäßig AES-256 verwenden. Der Leistungsunterschied zwischen AES-128 und AES-256 auf modernen Geräten mit AES-NI-Unterstützung beträgt nicht mehr als 10–15%, aber die Sicherheitsstufe verdoppelt sich. Laut Quantenanalyse (Grassl et al., 2016) würde das Knacken von AES-128 2^77 Quantenoperationen über Grovers Algorithmus erfordern, während AES-256 2^149 benötigen würde, was AES-256 für die nächsten 20–30 Jahre resistent gegen Quantenangriffe macht. Selbst AES-128 bietet ausreichenden Schutz für die überwältigende Mehrheit kommerzieller Szenarien: Das Brute-Forcen eines 128-Bit-Schlüssels würde nach Bruce Schneiers Schätzung mehr Energie erfordern, als im Universum existiert. Allerdings verlangen Sicherheitsstandards (GDPR, HIPAA, PCI DSS) oft explizit AES-256, daher sollten Produktionsprojekte die maximale Schlüssellänge verwenden.

AES-Betriebsmodi

AES als Blockchiffre verschlüsselt Blöcke fester Größe (128 Bit). Zur Verschlüsselung von Daten beliebiger Länge werden Betriebsmodi verwendet. Die Modusauswahl beeinflusst die Sicherheit kritisch: Der falsche Modus kann die Stärke von AES zunichtemachen.

  • ECB (Electronic Codebook) — der einfachste und unsicherste Modus. Jeder Block wird unabhängig mit demselben Schlüssel verschlüsselt. Identische Klartextblöcke erzeugen identische Chiffretextblöcke, was die Wiederherstellung der Datenstruktur ermöglicht. In allen modernen Sicherheitsstandards verboten. Verwenden Sie NIEMALS ECB in mobilen Anwendungen.
  • CBC (Cipher Block Chaining) — jeder vorherige Chiffretextblock wird als Initialisierungsvektor (IV) für den nächsten verwendet. Erfordert einen zufälligen IV für jede Nachricht. Angreifbar durch Padding-Oracle-Angriffe bei falscher Implementierung. Geeignet für Dateiverschlüsselung, erfordert aber MAC (HMAC) für Datenintegrität.
  • GCM (Galois/Counter Mode) — der empfohlene Modus für mobile Anwendungen. Bietet authentifizierte Verschlüsselung (AEAD): Verschlüsselung + Integritätsprüfung in einer einzigen Operation. Verwendet einen Zähler zur Schlüsselstromerzeugung und Galois-Feld-Multiplikation zur Authentifizierung. GCM erfordert eine eindeutige Nonce (12 Byte) für jede Nachricht. Von NIST empfohlen, verwendet in TLS 1.2/1.3 und Android Keystore.
  • CCM (Counter with CBC-MAC) — ein alternativer AEAD-Modus basierend auf CTR + CBC-MAC. Langsamer als GCM und unterstützt keine parallele Verarbeitung. Verwendet in ZigBee- und 802.11-Protokollen (Wi-Fi). Für mobile Anwendungen ist GCM vorzuziehen.

Verwenden Sie für mobile Projekte AES-256-GCM mit einer 12-Byte-Nonce. GCM löst zwei Probleme gleichzeitig: Datenverschlüsselung und Authentifizierung, wodurch Padding-Oracle- und Chosen-Ciphertext-Angriffe verhindert werden. Android Keystore und iOS CryptoKit unterstützen AES-GCM nativ ohne zusätzliche kryptografische Primitive. Bei der Arbeit mit GCM ist es kritisch, die Nonce niemals mit demselben Schlüssel wiederzuverwenden — dies zerstört die Verschlüsselungssicherheit vollständig. Generieren Sie für jede Verschlüsselung eine neue zufällige Nonce und speichern Sie sie zusammen mit dem Chiffretext.

Implementierung von AES in mobilen Anwendungen

Sehen wir uns ein Beispiel für eine sichere AES-256-GCM-Implementierung auf Android mit Jetpack Security an. Der folgende Code zeigt den vollständigen Zyklus: Erstellen eines AES-256-Schlüssels über MasterKey, Ver- und Entschlüsseln einer Zeichenfolge mit zusätzlichen authentifizierten Daten (AAD).

kotlin
import androidx.security.crypto.MasterKey
import androidx.security.crypto.EncryptedSharedPreferences

val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val securePrefs = EncryptedSharedPreferences.create(
    context,
    "secure_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

fun storeSecureData(key: String, value: String) {
    securePrefs.edit().putString(key, value).apply()
}

fun readSecureData(key: String): String? {
    return securePrefs.getString(key, null)
}

Das Hauptmerkmal dieser Lösung ist, dass AES-256-GCM auf zwei Ebenen verwendet wird: zur Verschlüsselung von Schlüssel-Wert-Paaren (PrefValueEncryptionScheme) und zum Schutz der Schlüsselnamen selbst (PrefKeyEncryptionScheme verwendet AES-256-SIV, resistent gegen Nonce-Wiederverwendung). MasterKey wird mit dem AES-256-GCM-Algorithmus generiert und im Android Keystore gespeichert, der auf Geräten mit Trusted Execution Environment hardwaregeschützt ist. Auf Geräten ohne Hardwareunterstützung (TEE) wird der Schlüssel über Bouncy Castle verschlüsselt, was immer noch sicherer ist als die Speicherung in SharedPreferences.

Zur direkten Verschlüsselung großer Datenmengen (z. B. Bilder oder Dateien) verwenden Sie AES-256-GCM über EncryptedFile aus AndroidX Security. Für den Schlüsselexport (z. B. für Backups) verwenden Sie eine zusätzliche Verschlüsselung mit einem Benutzerpasswort über PBKDF2 mit 100000+ Iterationen.

AES auf iOS via CryptoKit

Auf iOS werden AES-Operationen über das CryptoKit-Framework (Swift 5.0+) organisiert. Ein AES-256-Schlüssel wird über SymmetricKey(size: .bits256) erstellt und in der Secure Enclave gespeichert — einem Hardware-Kryptoprozessor, der von der Haupt-CPU und dem Betriebssystem isoliert ist. CryptoKit bietet zwei AES-Implementierungen: AES.GCM (empfohlen) und AES.CBC (für Abwärtskompatibilität mit Legacy-Formaten). Die Verschlüsselung erfolgt über die seal()-Methode, die Daten, Schlüssel und Nonce (12 Byte) entgegennimmt und AES.GCM.SealedBox zurückgibt — eine Struktur, die Chiffretext und Authentifizierungstag enthält. Die Entschlüsselung erfolgt über open(). Apple empfiehlt dringend, CommonCrypto nicht direkt zu verwenden: CryptoKit wählt automatisch optimale Parameter, schützt vor Seitenkanalangriffen und nutzt AES-NI-Hardwarebeschleunigung auf Apple-Silicon-Prozessoren. Auf Geräten mit Secure Enclave verlassen Schlüssel niemals das Hardwaremodul, was Diebstahl selbst bei vollständiger Kompromittierung der Anwendung verhindert. Zur Schlüsselserialisierung verwenden Sie die withUnsafeBytes-Methode, gefolgt von der Speicherung in der Keychain über SecItemAdd mit dem Attribut kSecAttrAccessible = kSecAttrAccessibleWhenUnlockedThisDeviceOnly.

Häufig gestellte Fragen

Was ist AES in einfachen Worten?

AES ist ein Algorithmus, der lesbare Daten mithilfe eines geheimen Schlüssels in einen unlesbaren Satz von Bytes umwandelt. Derselbe Schlüssel wird benötigt, um die Daten in ihre ursprüngliche Form zurückzuversetzen. AES ist so zuverlässig, dass es zur Verschlüsselung geheimer Dokumente der US-Regierung verwendet wird.

Wie unterscheidet sich AES-128 von AES-256?

AES-128 verwendet einen 128-Bit-Schlüssel und führt 10 Verschlüsselungsrunden durch. AES-256 verwendet einen 256-Bit-Schlüssel und 14 Runden, was es 2^128-mal schwieriger zu knacken macht. Für mobile Anwendungen wird AES-256 aufgrund des minimalen Leistungsunterschieds empfohlen.

Welcher AES-Modus ist der sicherste?

AES-256-GCM ist der sicherste und empfohlene Modus. GCM bietet authentifizierte Verschlüsselung (Verschlüsselung + Integritätsprüfung). Der ECB-Modus ist verboten, CBC erfordert ein separates MAC. GCM ist der De-facto-Standard für mobile Anwendungen.

Kann AES geknackt werden?

Theoretisch kann AES durch Brute-Force geknackt werden, aber für AES-256 wären 2^256 Versuche erforderlich — mehr als die Anzahl der Atome im beobachtbaren Universum. Es existieren keine praktischen Angriffe auf AES-256. Seitenkanalangriffe (Spectre, Meltdown) brechen AES nicht, sondern stehlen Schlüssel aus dem Speicher, daher ist die Hardwarespeicherung von Schlüsseln kritisch.

Wie verwendet man AES in einer mobilen App auf Android?

Verwenden Sie die Bibliothek AndroidX Security: MasterKey.Builder mit KeyScheme.AES256_GCM erstellt einen geschützten Schlüssel im Android Keystore, und EncryptedSharedPreferences verschlüsselt automatisch alle Daten über AES-256-GCM. Keine manuelle Kryptografie — die API ist standardmäßig sicher, ohne Risiko von Entwicklerfehlern.

Zusammenfassung

  • AES ist der am weitesten verbreitete und bewährteste symmetrische Verschlüsselungsalgorithmus, der 2001 von NIST standardisiert wurde.
  • AES-256 bietet maximale Sicherheit mit Spielraum gegen Quantenangriffe für die nächsten 20–30 Jahre.
  • GCM-Modus ist der einzige empfohlene Modus für mobile Anwendungen: Verschlüsselung + Authentifizierung in einer einzigen Operation.
  • Android Keystore und iOS Secure Enclave — Hardwarespeicher, die AES-Schlüssel von der Anwendung isolieren.
  • Jetpack Security (Android) und CryptoKit (iOS) bieten sichere AES-256-GCM-Implementierungen ohne manuelle Kryptografie.
  • Nonce (IV) für GCM muss für jede Verschlüsselung eindeutig sein — Wiederverwendung zerstört die Sicherheit vollständig.
  • Empfehlung: Verwenden Sie AES-256-GCM über EncryptedSharedPreferences auf Android und CryptoKit auf iOS für alle sensiblen Daten.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch