Verschlüsselungsgrundlagen: Der Unterschied zwischen AES und RSA
Lernen Sie die Prinzipien der symmetrischen und asymmetrischen Verschlüsselung und ihre praktischen Anwendungsfälle kennen.

Geheimnisse in der digitalen Welt schützen
Wir überweisen Geld per Online-Banking, chatten mit Freunden über Messenger und bezahlen mit Karte in Online-Shops. In all diesen Momenten werden unsere sensiblen Informationen an Server irgendwo auf der Welt übertragen. Aber wie können Hacker diese Informationen nicht abfangen? Die Antwort liegt in der Verschlüsselung.
Verschlüsselung ist der Prozess, lesbare Daten (Klartext) in eine unlesbare Form (Chiffretext) umzuwandeln. Es ist wie in der Kindheit, als man mit Freunden geheime Briefe nach vereinbarten Regeln austauschte und Buchstaben veränderte. Nur ist die moderne Verschlüsselung mathematisch viel komplexer - so komplex, dass selbst alle Computer der Welt zusammen sie nicht knacken können.
Die zwei am weitesten verbreiteten Verschlüsselungsmethoden heute sind AES (symmetrische Verschlüsselung) und RSA (asymmetrische Verschlüsselung). Die Namen mögen kompliziert klingen, aber wenn man die Konzepte versteht, wird klar, warum beide Methoden benötigt werden und wann welche verwendet werden sollte.
Symmetrisch vs. Asymmetrisch: Der fundamentale Unterschied
In der Welt der Verschlüsselung ist ein "Schlüssel" wie ein Schlüssel, der ein Schloss öffnet. Bei der symmetrischen Verschlüsselung wird mit einem Schlüssel verschlüsselt und mit demselben Schlüssel entschlüsselt. Denken Sie an Ihre Haustür: Ein Schlüssel zum Abschließen und Aufschließen. Einfach und schnell, aber es gibt ein Problem: Wie übergibt man den Schlüssel sicher an die andere Person?
Asymmetrische Verschlüsselung löst dieses Problem elegant. Es werden zwei Schlüssel verwendet: Einer ist der öffentliche Schlüssel (Public Key), der an jeden weitergegeben werden kann, und der andere ist der private Schlüssel (Private Key), der niemals preisgegeben werden darf. Was mit dem öffentlichen Schlüssel verschlüsselt wurde, kann nur mit dem privaten Schlüssel entschlüsselt werden. Wie ein Briefkasten: Jeder kann Briefe einwerfen, aber nur der mit dem Schlüssel kann sie herausholen.
| Eigenschaft | Symmetrisch (AES) | Asymmetrisch (RSA) |
|---|---|---|
| Anzahl der Schlüssel | 1 | 2 (öffentlich/privat) |
| Geschwindigkeit | Schnell | Langsam (100-1000x) |
| Schlüsselaustausch | Sicherer Kanal erforderlich | Öffentlicher Schlüssel kann geteilt werden |
| Hauptverwendung | Große Datenmengen verschlüsseln | Schlüsselaustausch, digitale Signaturen |
AES: Schnelle und starke symmetrische Verschlüsselung
AES (Advanced Encryption Standard) ist der Standard-Verschlüsselungsalgorithmus, der 2001 von der US-Regierung übernommen wurde. Als das zuvor verwendete DES durch zunehmende Computerleistung nicht mehr sicher war, wurde AES nach einem weltweiten Wettbewerb unter Kryptographen ausgewählt. Der Gewinner war der Rijndael-Algorithmus belgischer Kryptographen.
Die Stärke von AES ist seine Geschwindigkeit. Moderne Prozessoren haben dedizierte Befehle für AES-Operationen (AES-NI) eingebaut, sodass Gigabytes an Daten im Handumdrehen verschlüsselt werden können. AES wird verwendet, um Dateien mit Passwörtern zu verschlüsseln, sensible Datenbank-Informationen zu schützen oder ganze Festplatten zu verschlüsseln.
Je nach Schlüssellänge gibt es AES-128, AES-192 und AES-256. Die Zahl bedeutet die Bits des Schlüssels. AES-256 hat 2^256 mögliche Schlüsselkombinationen - mehr als Atome im Universum. Mit aktueller Technologie ist ein Brute-Force-Angriff unmöglich.
Bei der Verwendung von AES gibt es jedoch eine wichtige Entscheidung: Die Wahl des Betriebsmodus. Der ECB-Modus sollte niemals verwendet werden, da gleiche Klartextblöcke immer gleiche Chiffretexte erzeugen und somit Muster sichtbar werden. Aktuell empfohlen wird GCM (Galois/Counter Mode). GCM bietet neben der Verschlüsselung auch Integritätsprüfung, sodass erkannt werden kann, ob der Chiffretext manipuliert wurde.
const crypto = require('crypto');
function encrypt(text, key) {
const iv = crypto.randomBytes(12); // GCM empfiehlt 12-Byte IV
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
const authTag = cipher.getAuthTag();
return {
iv: iv.toString('hex'),
encrypted,
authTag: authTag.toString('hex')
};
}
RSA: Das Synonym für Public-Key-Verschlüsselung
RSA ist ein Algorithmus, der 1977 nach den drei MIT-Professoren Rivest, Shamir und Adleman benannt wurde. Er basiert auf dem mathematischen Prinzip, dass die Faktorisierung großer Zahlen schwierig ist. Zwei große Primzahlen zu multiplizieren ist einfach, aber aus dem Ergebnis die ursprünglichen zwei Primzahlen zu finden, ist astronomisch schwer.
Der größte Vorteil von RSA ist die Lösung des Schlüsselaustauschproblems. Der öffentliche Schlüssel kann, wie der Name sagt, veröffentlicht werden. Wenn jemand Ihnen eine verschlüsselte Nachricht senden möchte, verschlüsselt er sie mit Ihrem öffentlichen Schlüssel. Nur Sie mit dem privaten Schlüssel können sie öffnen.
RSA wird auch für digitale Signaturen verwendet. Dabei ist es umgekehrt: Es wird mit dem privaten Schlüssel signiert und mit dem öffentlichen Schlüssel verifiziert. Da nur der Besitzer den privaten Schlüssel hat, beweist eine gültige Signatur, dass die Nachricht wirklich von dieser Person stammt. Dies wird bei Software-Update-Paketen oder zur Echtheitsprüfung von Rechtsdokumenten verwendet.
Allerdings ist RSA langsam. Es ist hundert- bis tausendfach langsamer als AES und daher für die direkte Verschlüsselung großer Datenmengen nicht geeignet. Deshalb wird in der Praxis ein Hybrid-Verfahren verwendet.
Hybridverschlüsselung: Das Beste aus beiden Welten
Die meisten Verschlüsselungssysteme in der realen Welt verwenden AES und RSA zusammen. Was beim Besuch einer HTTPS-Website passiert, vereinfacht erklärt:
Zuerst verbindet sich der Browser mit dem Server, und der Server sendet ein Zertifikat mit seinem öffentlichen Schlüssel. Der Browser generiert einen zufälligen AES-Schlüssel (Session Key), verschlüsselt ihn mit dem RSA-öffentlichen Schlüssel des Servers und sendet ihn. Der Server entschlüsselt ihn mit seinem privaten Schlüssel und erhält den AES-Schlüssel. Jetzt haben beide Seiten den gleichen AES-Schlüssel, und alle weitere Kommunikation wird mit diesem schnellen AES verschlüsselt.
Die Schönheit dieses Verfahrens liegt darin, dass es die Vorteile des RSA-Schlüsselaustauschs und die Geschwindigkeit von AES kombiniert. RSA verschlüsselt nur kleine Daten (den AES-Schlüssel), sodass die Langsamkeit kein Problem ist, und die eigentliche Kommunikation großer Datenmengen übernimmt das schnelle AES.
Vorsichtsmaßnahmen bei der Verschlüsselungsimplementierung
Der Verschlüsselungsalgorithmus selbst ist stark, aber bei falscher Verwendung wird er nutzlos. Einige häufige Fehler sollten vermieden werden.
Schlüssel dürfen nicht im Quellcode hartcodiert werden. Immer wieder hört man von AWS-Schlüsseln, die in auf GitHub hochgeladenem Code exponiert wurden und zu Hacks führten. Schlüssel sollten in Umgebungsvariablen oder professionellen Key-Management-Diensten wie AWS KMS oder HashiCorp Vault gespeichert werden.
Der IV (Initialisierungsvektor) für AES muss jedes Mal ein neuer Zufallswert sein. Die Wiederverwendung desselben IV mit demselben Schlüssel kann die Verschlüsselung brechen. Der IV ist nicht geheim und kann zusammen mit dem Chiffretext gespeichert werden. Wichtig ist nur, ihn nicht wiederzuverwenden.
Versuchen Sie nicht, Verschlüsselungsalgorithmen selbst zu implementieren. Die Verwendung bewährter Bibliotheken ist viel sicherer. Kryptographie ist ein Bereich, in dem ein kleiner Fehler die gesamte Sicherheit zerstören kann.
Fazit
Verschlüsselung ist das Fundament der modernen digitalen Welt. Wenn Sie die Prinzipien von AES und RSA verstehen, verstehen Sie natürlich auch, wie HTTPS funktioniert, warum Passwörter als Hash gespeichert werden sollten und was digitale Signaturen sind.
Probieren Sie die Verschlüsselungstools von Toolypet aus und verschlüsseln und entschlüsseln Sie selbst Text. In dem Moment, in dem abstrakte Konzepte zu konkreten Erfahrungen werden, wird Ihr Verständnis von Sicherheit eine Stufe tiefer.