Der direkte Vergleich der beiden ist ein bisschen wie der Vergleich eines Traktors mit einem Zug - beide sind Fahrzeuge, haben jedoch eine völlig unterschiedliche Funktion und Konstruktion.
RSA ist eine asymmetrische Chiffre. Es ist ideal für den sicheren Austausch von Nachrichten über ein nicht vertrauenswürdiges Netzwerk, da der öffentliche Schlüssel jedem bekannt sein kann - eine mit dem öffentlichen Schlüssel verschlüsselte Nachricht kann nur mit dem privaten Schlüssel entschlüsselt werden. Wenn zwei Parteien die öffentlichen Schlüssel des anderen kennen, können sie Nachrichten sicher austauschen. Dies bedeutet, dass keine geheimen Informationen übertragen werden müssen - solange Authentizität und Integrität erhalten bleiben, sind Sie sicher. Zum Glück bietet RSA eine Methode zum Generieren von Signaturen für Daten, mit deren Hilfe nachgewiesen werden kann, dass diese authentisch sind. Bei einer von einem privaten Schlüssel signierten Nachricht kann diese Signatur mit dem entsprechenden öffentlichen Schlüssel überprüft werden.
Als Faustregel gilt, dass Sie nur Daten verschlüsseln können, die so groß sind wie die RSA-Schlüssellänge. Wenn Sie also einen 4096-Bit-RSA-Schlüssel haben, können Sie nur Nachrichten mit einer Länge von bis zu 4096 Bit verschlüsseln. Nicht nur das, es ist auch unglaublich langsam. RSA ist nicht als Datentransport-Verschlüsselung mit voller Geschwindigkeit konzipiert.
AES ist eine symmetrische Blockverschlüsselung und unglaublich schnell . Der Klartext wird in Blöcke aufgeteilt, die als Blöcke bezeichnet werden, und jeder Block wird in einer Kette verschlüsselt. Es gibt verschiedene Möglichkeiten, dies zu tun, aber eine übliche Methode wird als Cipher Block Chaining oder kurz CBC bezeichnet. Dies ermöglicht theoretisch unendliche Nachrichtengrößen. Bei symmetrischen Chiffren wie AES muss jedoch zuerst ein geheimer Schlüssel ausgetauscht werden. Im Gegensatz zu RSA muss der gemeinsam genutzte Schlüssel Angreifern unbekannt bleiben, daher müssen Sie Authentizität, Integrität und Geheimhaltung gewährleisten. Dies ist schwierig direkt durchzuführen.
Sie werden feststellen, dass beide Schemata zusammen implementiert sind, sodass RSA verwendet wird, um den Schlüssel gegen eine Blockverschlüsselung wie AES auszutauschen :
- Alice und Bob kennen die öffentlichen RSA-Schlüssel des anderen. Im Allgemeinen werden diese außerhalb des Bandes ausgetauscht, z. über ein Zertifikat, das als Teil Ihres Betriebssystems bereitgestellt wird.
- Alice wählt einen zufälligen 256-Bit-Schlüssel für AES aus und verschlüsselt diesen Schlüssel mit Bobs öffentlichem Schlüssel. Sie signiert diese Nachricht mit ihrem privaten Schlüssel und sendet sie an Bob.
- Bob verwendet den öffentlichen Schlüssel von Alice, um die Signatur zu überprüfen. Anschließend entschlüsselt er die Nachricht mit seinem privaten Schlüssel.
- Eve (ein Lauscher) hat die verschlüsselte Nachricht gesehen, kann sie jedoch nicht entschlüsseln, ohne Bobs privaten Schlüssel zu kennen. Sie kann die Nachricht auch nicht ändern, da dadurch die Signatur falsch wird. Sie kann keine gültige Signatur neu generieren, ohne den privaten Schlüssel von Alice zu kennen.
- Alice und Bob teilen sich jetzt einen geheimen 256-Bit-Schlüssel und verwenden diesen, um Nachrichten mit einer symmetrischen Verschlüsselung wie AES zu verschlüsseln.
ol> Dies erfüllt einige Anforderungen:
- Die Konversation kann über ein nicht vertrauenswürdiges Netzwerk stattfinden, ohne dass ein Angreifer die Nachrichten lesen kann.
- Der Austausch des Sitzungsschlüssels kann auf sichere Weise erfolgen, dh Authentizität und Integrität des Schlüssels bleiben erhalten.
- Die Leistung der Ver- und Entschlüsselung für die tatsächlichen Konversationsdaten ist sehr gut.
/ ul>
In Bezug auf die Sicherheitsstufe ist es nicht sehr sinnvoll, RSA und AES zu vergleichen. Sie machen verschiedene Jobs. Wir gehen derzeit davon aus, dass 128-Bit-AES-Schlüssel sicher sind und dass 2048-Bit-RSA-Schlüssel sicher sind. Dies hängt jedoch vollständig von den individuellen Sicherheitsanforderungen ab. Die Verwendung von 256-Bit-AES- und 4096-Bit-RSA-Schlüsseln sollte für das nächste Jahrzehnt mehr als ausreichend sein, vorausgesetzt, die Implementierung ist solide.
Beachten Sie, dass dies alles eine Vereinfachung darstellt, da es viele Einschränkungen und Details gibt Die Beschreibung und der RSA-Austausch als "Verschlüsselung" sind nicht unbedingt korrekt, aber alles in allem sollte dies ein angemessener Überblick über die Funktionsweise der beiden Krypto-Typen auf hoher Ebene sein.