![]() |
|
URL dieser Newsmeldung:
12.10.2006
About Security #76: Kryptographie — Das RSA-VerfahrenRSA ist ein asymmetrisches Verschlüsselungsverfahren. Es wurde nach den Initialen der Nachnamen seiner Erfinder Ronald L. Rivest, Adi Shamir und Leonard Adleman benannt, die das Verfahren 1978 in "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems" PDF) vorstellten. Die Sicherheit des RSA-Verfahrens basiert auf der so genannten Faktorisierungsannahme: Es gibt keinen effizienten Algorithmus, um eine gegebene große Zahl in ihre Primfaktoren zu zerlegen. Der RSA-Algorithmus selbst ist sehr einfach. N E U ! Security
aktuell Schlüsselerzeugung
Der öffentliche Schlüssel (public key) besteht aus c und n, der private Schlüssel (private key) aus d und n. Meist werden auch die Faktoren p und q gespeichert, da sie bei der Entschlüsselung verwendet werden können. Ein Zahlenbeispiel:
Der öffentliche Schlüssel besteht also aus c=7 und n=33, der geheime Schlüssel aus d=3 und n=33. Ver- und EntschlüsselungKlartexte werden als Zahlen m, 0 ≤ m ≤ n, dargestellt. Zu lange Klartexte müssen ggf. in passende Blöcke aufgespalten werden.
Die Verschlüsselung erfolgt durch modulare Exponentiation mit c,
für den
Klartextblock m also durch die Berechnung von
Die Entschlüsselung erfolgt durch modulare Exponentiation mit d,
für den
Geheimtextblock Im Zahlenbeispiel:Verschlüsselt werden soll m=25, der öffentliche Schlüssel ist c=7 und n=33:
Geheimtext = Entschlüsselt wird mit dem geheimen Schlüssel d=3 und n=33:
Klartext = Da diese doch sehr kleinen Zahlen schon zu großen Zwischenergebnissen führen, kann man sich vorstellen, wie groß diese bei den für RSA tatsächlich verwendeten Zahlen mit einer Länge von 1.024 Bit und mehr werden. Doch es gibt eine "Abkürzung":
Damit muss in jedem Schritt nur mit Werten gerechnet werden, die kleiner als n sind. Sicherheit des VerfahrensBei der Kryptanalyse des RSA-Verfahrens gibt es zwei Ansätze:
Auf die mathematischen Grundlagen soll hier nicht weiter eingegangen werden. Das Problem dabei ist, dass bisher nicht bewiesen wurde, ob die Faktorisierung tatsächlich schwer ist oder nicht. Es spricht vieles dafür, ein endgültiger Beweis steht aber noch aus. Von den RSA Laboratories wurde die RSA Factoring Challenge gestartet. Dabei sollen vorgegebene Zahlen mit einer Länge zwischen 576 und 2.048 Bits in ihre Primfaktoren zerlegt werden. Erfolgreich faktorisiert wurden bisher die Zahlen bis zu einer Länge von 640 Bit. Erfolgreicher sind Angriffe auf schwache Schlüssel oder unsichere Implementierungen. Wird RSA z.B. wie oben beschrieben als Konzelationssystem verwendet, kann ein Angreifer ausnutzen, dass RSA ein deterministisches System ist: Gleiche Klartexte ergeben gleiche Geheimtexte. Er kann einen wahrscheinlichen Klartext(block) raten und mit dem öffentlichen Schlüssel verschlüsseln. Stimmt das Ergebnis mit einem belauschten Geheimtext(block) überein, kennt er den dazu gehörenden Klartext(block). Das Hinzufügen von Zufallswerten zum Klartext verhindert derartige Angriffe. Dan Boneh hat 1999 einen zusammenfassenden Artikel über die Kryptanalyse von RSA veröffentlicht: "Twenty years of attacks on the RSA cryptosystem". Solange kein effektiver Faktorisierungsalgorithmus bekannt ist, kann RSA mit ausreichend großen Schlüsseln (mindestens 1.024, besser mindestens 2.048 Bit Länge) als sicher betrachtet werden. In der nächsten Folge geht es um die Anwendung von RSA. Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen! About Security – Übersicht zum aktuellen Thema "Kryptographie – RSA"
|
||||
|