Articles

RSA-Algorithmus (Rivest-Shamir-Adleman)

Der RSA-Algorithmus ist die Grundlage eines Kryptosystems-einer Suite kryptografischer Algorithmen, die für bestimmte Sicherheitsdienste oder-zwecke verwendet werden -, das die Verschlüsselung mit öffentlichen Schlüsseln ermöglicht und häufig zur Sicherung sensibler Daten verwendet wird, insbesondere wenn sie über ein unsicheres Netzwerk wie das Internet gesendet werden.,

RSA wurde erstmals 1977 von Ron Rivest, Adi Shamir und Leonard Adleman vom Massachusetts Institute of Technology öffentlich beschrieben, obwohl die 1973-Erstellung eines Public-Key-Algorithmus durch den britischen Mathematiker Clifford Cocks bis 1997 vom britischen GCHQ klassifiziert wurde.

Die Kryptographie mit öffentlichem Schlüssel, auch als asymmetrische Kryptographie bekannt, verwendet zwei verschiedene, aber mathematisch verknüpfte Schlüssel-einen öffentlichen und einen privaten. Der öffentliche Schlüssel kann für alle freigegeben werden, während der private Schlüssel geheim gehalten werden muss.,

In der RSA-Kryptographie können sowohl der öffentliche als auch der private Schlüssel eine Nachricht verschlüsseln; Der entgegengesetzte Schlüssel zum Verschlüsseln einer Nachricht wird zum Entschlüsseln verwendet. Dieses Attribut ist ein Grund, warum RSA der am weitesten verbreitete asymmetrische Algorithmus geworden ist: Es bietet eine Methode, um die Vertraulichkeit, Integrität, Authentizität und Nicht-Ablehnung der elektronischen Kommunikation und Datenspeicherung zu gewährleisten.

Viele Protokolle wie Secure Shell, OpenPGP, S/MIME und SSL/TLS setzen bei Verschlüsselungs-und digitalen Signaturfunktionen auf RSA., Es wird auch in Softwareprogrammen verwendet-Browser sind ein offensichtliches Beispiel, da sie eine sichere Verbindung über ein unsicheres Netzwerk wie das Internet herstellen oder eine digitale Signatur validieren müssen. Die RSA-Signaturüberprüfung ist einer der am häufigsten durchgeführten Vorgänge in netzwerk verbundenen Systemen.

Warum der RSA-Algorithmus verwendet wird

RSA leitet seine Sicherheit von der Schwierigkeit ab, große Ganzzahlen zu berücksichtigen, die das Produkt von zwei großen Primzahlen sind., Das Multiplizieren dieser beiden Zahlen ist einfach, aber das Bestimmen der ursprünglichen Primzahlen aus der Summe-oder Factoring-wird aufgrund der Zeit, die selbst heutige Supercomputer benötigen würden, als undurchführbar angesehen.

Der öffentliche und private Schlüsselgenerierungsalgorithmus ist der komplexeste Teil der RSA-Kryptographie. Zwei große Primzahlen, p und q, werden mit dem Rabin-Miller-Primalitätstestalgorithmus generiert. Ein Modul, n, wird berechnet, indem p und q multipliziert wird. Diese Zahl wird sowohl vom öffentlichen als auch vom privaten Schlüssel verwendet und stellt die Verbindung zwischen ihnen her., Seine Länge, normalerweise in Bits ausgedrückt, wird als Schlüssellänge bezeichnet.

Der öffentliche Schlüssel besteht aus dem Modul n und einem öffentlichen Exponenten, e, der normalerweise auf 65537 gesetzt ist, da es sich um eine Primzahl handelt, die nicht zu groß ist. Die e-Zahl muss keine heimlich ausgewählte Primzahl sein, da der öffentliche Schlüssel für alle freigegeben wird.

Der private Schlüssel besteht aus dem Modul n und dem privaten Exponenten d, der unter Verwendung des erweiterten euklidischen Algorithmus berechnet wird, um die multiplikative Inverse in Bezug auf den Totienten von n zu finden.,

Lesen Sie weiter oder sehen Sie sich das Video unten an, um eine detailliertere Erklärung zur Funktionsweise des RSA-Algorithmus zu erhalten.

Wie funktioniert der RSA-Algorithmus?

Alice generiert ihre RSA-Schlüssel, indem sie zwei Primzahlen auswählt: p=11 und q=13. Der Modul ist n=p×q=143. Der totient ist n ϕ(n)=(p−1)x(q−1)=120. Sie wählt 7 für ihren öffentlichen RSA-Schlüssel e und berechnet ihren privaten RSA-Schlüssel mit dem erweiterten euklidischen Algorithmus, der ihr 103 gibt.

Bob möchte Alice eine verschlüsselte Nachricht senden, M, also erhält er ihren öffentlichen RSA-Schlüssel (n, e), der in diesem Beispiel (143, 7) ist., Seine Klartextnachricht ist nur die Nummer 9 und wird wie folgt in Chiffretext C verschlüsselt:

Me mod n = 97 mod 143 = 48 = C

Wenn Alice Bobs Nachricht empfängt, entschlüsselt sie sie mit ihrem privaten RSA-Schlüssel (d, n) wie folgt:

Cd mod n = 48103 mod 143 = 9 = M

p>

Um RSA-Schlüssel zum digitalen Signieren einer Nachricht zu verwenden, müsste Alice einen Hash erstellen-einen Message Digest ihrer Nachricht an Bob-den Hash-Wert mit ihrem privaten RSA-Schlüssel verschlüsseln und den Schlüssel zur Nachricht hinzufügen., Bob kann dann überprüfen, ob die Nachricht von Alice gesendet wurde und nicht geändert wurde, indem er den Hash-Wert mit ihrem öffentlichen Schlüssel entschlüsselt. Wenn dieser Wert mit dem Hash der ursprünglichen Nachricht übereinstimmt, hätte nur Alice sie senden können-Authentifizierung und Nichtabweisung-und die Nachricht ist genau so, wie sie sie geschrieben hat-Integrität.

Alice könnte ihre Nachricht natürlich mit Bobs öffentlichem RSA-Schlüssel-Vertraulichkeit-verschlüsseln, bevor sie sie an Bob sendet. Ein digitales Zertifikat enthält Informationen, die den Eigentümer des Zertifikats identifizieren und auch den öffentlichen Schlüssel des Besitzers enthalten., Zertifikate werden von der Zertifizierungsstelle signiert, die sie ausstellt, und sie können das Abrufen öffentlicher Schlüssel und das Überprüfen des Eigentümers vereinfachen.

RSA-Sicherheit

Die RSA-Sicherheit beruht auf der Rechenschwierigkeit, große Ganzzahlen zu berücksichtigen. Wenn die Rechenleistung zunimmt und effizientere Factoring-Algorithmen entdeckt werden, steigt auch die Fähigkeit, immer größere Zahlen zu berücksichtigen.

Die Verschlüsselungsstärke ist direkt an die Schlüsselgröße gebunden, und die Verdoppelung der Schlüssellänge kann zu einer exponentiellen Erhöhung der Stärke führen, obwohl dies die Leistung beeinträchtigt., RSA-Schlüssel sind normalerweise 1024 oder 2048 Bit lang, aber Experten glauben, dass 1024-Bit-Schlüssel nicht mehr vollständig gegen alle Angriffe geschützt sind. Aus diesem Grund bewegen sich die Regierung und einige Branchen auf eine minimale Schlüssellänge von 2048 Bit.

Abgesehen von einem unvorhergesehenen Durchbruch im Quantencomputing wird es viele Jahre dauern, bis längere Schlüssel erforderlich sind, aber die Elliptic Curve Cryptography (ECC) gewinnt bei vielen Sicherheitsexperten als Alternative zu RSA an Beliebtheit, um die Kryptographie mit öffentlichen Schlüsseln zu implementieren. Es kann schnellere, kleinere und effizientere kryptografische Schlüssel erstellen.,

Moderne Hard-und Software sind ECC-fähig, und ihre Popularität wird wahrscheinlich zunehmen, da sie gleichwertige Sicherheit bei geringerer Rechenleistung und geringerem Batterieverbrauch bieten kann, was sie für mobile Apps besser geeignet macht als RSA. Schließlich hat ein Forscherteam, zu dem auch Adi Shamir, ein Miterfinder von RSA, gehörte, mithilfe der akustischen Kryptoanalyse erfolgreich einen 4096-Bit-RSA-Schlüssel erstellt; Jeder Verschlüsselungsalgorithmus ist jedoch anfällig für Angriffe.