Benutzer:Didia/RSA

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

RSA-Kryptosystem

Mathematische Grundlagen[Bearbeiten | Quelltext bearbeiten]

Einwegfunktionen mit Falltür[Bearbeiten | Quelltext bearbeiten]

Funktion und Umkehrfunktion

Eine Einwegfunktion ist eine mathematische Funktion, die komplexitätstheoretisch „leicht“ berechenbar, aber „schwer“ umzukehren ist.[1] Eine mathematische Einwegfunktion muss folgende Eigenschaften aufweisen:

  • Die Berechnung des Funktionswerts ist „einfach“, d. h. es existiert ein Algorithmus, der ihn in Polynomialzeit berechnen kann.
  • Die Berechnung der Umkehrfunktion zu einem gegebenen Funktionswert , d. h. einem , sodass , ist allerdings „schwer“, d. h. es existiert kein „schneller“ Algorithmus für dieses Problem. „Schnell“ meint hier einen probabilistischen Algorithmus, der in Polynomialzeit läuft.

Einen anschaulichen Vergleich bietet ein klassisches Papier-Telefonbuch einer größeren Stadt: Die auszuführende Funktion ist die, einem Namen die entsprechende Telefonnummer zuzuordnen. Da die Namen alphabetisch geordnet sind, lässt sich dies ziemlich schnell durchführen. Aber ihre Invertierung, also die Zuordnung eines Namens zu einer gegebenen Telefonnummer, ist offensichtlich viel schwieriger.[2]

Man kann zeigen, dass Einwegfunktionen genau dann existieren, wenn P ≠ NP, die berühmte Vermutung aus der Komplexitätstheorie, gilt (siehe P-NP-Problem). Obwohl die Einwegfunktionen in der Kryptographie eine wichtige Rolle spielen, ist also bis heute nicht bekannt, ob sie im streng mathematischen Sinne überhaupt existieren.[3]

Eine Variante der Einwegfunktionen sind Trapdoor-Einwegfunktionen, auch Falltürfunktionen genannt. Diese lassen sich nur dann effizient umkehren, wenn man eine gewisse Zusatzinformation besitzt. Eine Metapher für Falltürfunktionen ist die Funktion eines Briefkastens: Jeder kann einen Brief einwerfen. Das Herausholen ist dagegen sehr schwierig – es sei denn, man ist im Besitz des Schlüssels.

Der Diffie-Hellman-Merkle-Schlüsselaustausch verwendet beispielsweise die diskrete Exponentialfunktion als Einwegfunktion (mit dem diskreten Logarithmus als schwer zu berechnende Umkehrfunktion). Zu dieser existiert keine Falltür. Im Gegensatz dazu verwendet das RSA-Kryptosystem mit der Faktorisierung eine Einwegfunktion mit Falltür.

Primzahl-Multiplikation und Faktorisierung[Bearbeiten | Quelltext bearbeiten]

Das RSA-Kryptosystem basiert darauf, dass das Multiplizieren zweier Primzahlen eine Einwegfunktion ist. Sei also eine Funktion mit zwei Primzahlen und als Argumente gegeben, die eine Multiplikation durchführt:

Diese Primzahl-Multiplikation ist mit moderner Computerunterstützung auch bei „grösseren“ Zahlen „einfach“ durchführbar.[4][5]

Die Umkehrfunktion entspricht der Faktorisierung. Für eine gegebene Zahl sollen die Faktoren und berechnet werden:

Es ist bis heute kein effizientes Verfahren bekannt, mit dem aus dem Produkt zweier Primzahlen die beiden Faktoren bestimmt werden können. In diesem Zusammenhang spricht man auch vom Faktorisierungsproblem. Auch wenn sich nicht beweisen lässt, dass die Primzahl-Multiplikation eine Einwegfunktion ist, so spricht doch alles dafür.[5]

Klaus Schmeh macht zur Veranschaulichung das folgende kleine Experiment: „Berechnen Sie im Kopf das Resultat der Multiplikation . Dann bestimmen Sie zum Vergleich die beiden Primzahlen, die miteinander multipliziert 217 ergeben (natürlich auch im Kopf). Damit können Sie sich in etwa vorstellen, warum die Primzahl-Multiplikation als Einwegfunktion gilt.“[6]

Der nächste entscheidende Schritt besteht darin, zur Primzahl-Multiplikation als Einwegfunktion eine Falltürfunktion zu „basteln“.

Phi-Funktion[Bearbeiten | Quelltext bearbeiten]

Die Eulersche φ-Funktion (Eulersche Phi-Funktion) gibt für jede natürliche Zahl an, wie viele zu teilerfremde natürliche Zahlen es gibt, die nicht größer als sind. Zur Zahl sind beispielsweise genau die Zahlen und teilerfremd, also ist . Zur Primzahl ist jede der Zahlen von bis teilerfremd, also ist .

Da eine Primzahl nur durch 1 und sich selbst teilbar ist, ist sie zu den Zahlen 1 bis teilerfremd. Weil sie größer als 1 ist, ist sie außerdem nicht zu sich selbst teilerfremd. Es gilt daher

.

Die Phi-Funktion ist eine multiplikative zahlentheoretische Funktion, sodass für teilerfremde Zahlen und

gilt. Zum Beispiel ist

Man geht davon aus, dass die Berechnung der -Funktion mindestens so aufwändig ist wie die Faktorisierung. Allerdings kann man einfach berechnen, wenn es sich dabei um das Produkt zweier Primzahlen und handelt. Dann gilt nämlich

.

Allerdings muss man für diese Berechnung und tatsächlich kennen, denn es ist wiederum schwierig, zwei Primzahlen und zu bestimmen, von denen man nur das Produkt kennt (siehe Abschnitt „Primzahl-Multiplikation und Faktorisierung“).[7]

Satz von Fermat-Euler[Bearbeiten | Quelltext bearbeiten]

Eine wichtige Anwendung findet die Phi-Funktion im Satz von Fermat-Euler:

Wenn zwei natürliche Zahlen a und m teilerfremd sind, ist m ein Teiler von

Etwas anders formuliert:

Da für prime Moduli gilt , geht für sie der Satz von Fermat-Euler in den kleinen Satz von Fermat über:

Gruppen und Körper[Bearbeiten | Quelltext bearbeiten]

Eine Gruppe ist ein Paar , bestehend aus einer Menge und einer assoziativen Verknüpfung auf , die ein neutrales Element hat und für die jedes Element von ein inverses Element besitzt. Beispielsweise bildet die Menge der ganzen Zahlen mit der Addition als Verknüpfung die (abelsche) Gruppe . Das neutrale Element der Addition ist die (Null) und das additiv Inverse einer Zahl ist ihre Gegenzahl . Die ganzen Zahlen sind bezüglich der Addition wiederum eine Untergruppe der rationalen Zahlen . Demgegenüber bilden die rationalen (und ganzen) Zahlen zusammen mit der Multiplikation keine Gruppe, weil die Zahl kein inverses Element bezüglich der Multiplikation besitzt. Wenn man jedoch aus entfernt, erhält man die (abelsche) Gruppe . So ist beispielsweise das multiplikativ Inverse von die rationale Zahl (in den ganzen Zahlen hat dagegen kein multiplikativ Inverses).

Die Modulo-Addition entspricht der Addition in , wobei man beim Ergabnis anschliessend den Rest der Ganzzahldivision durch nimmt (also modulo n rechnet). Definiert man nun auf der Menge eine Modula-Addition bezüglich des Moduls , so entsteht eine (abelsche) Gruppe.

So gilt beispielsweise in

.

Bezüglich der Multiplikation modulo als Verknüpfung bildet die Menge jedoch keine Gruppe, selbst wenn die ausgenommen wird. Es gibt noch weitere Zahlen, die kein inverses Element haben, nämlich , und . Dies sind genau die Zahlen, die einen echten Teiler mit gemeinsam haben. Die verbleibenden Elemente bilden schließlich die Multiplikative Gruppe .

Die prime Restklassengruppe ist somit die Gruppe der primen Restklassen bezüglich eines Moduls . Sie wird als oder notiert. Sie sind genau die multiplikativ invertierbaren Restklassen und sind daher endliche abelsche Gruppen bezüglich der Multiplikation. In der Kryptographie sind vor allem jene Zahlen von Interesse, für die alle Zahlen zwischen und ein inverses Element modulo haben. Dies ist genau dann der Fall, wenn eine Primzahl ist (weshalb man statt schreibt). Die Zahlen zwischen und bilden also zusammen mit der Modulo-Multiplikation die Gruppe .

Ein Körper ist eine Menge versehen mit zwei inneren zweistelligen Verknüpfungen“ und „“, die meist „Addition“ und „Multiplikation“ genannt werden. Ein Körper ist bezüglich der Addition und der Multiplikation ohne Null eine Gruppe und es gelten die Distributivgesetze. Der bekannteste Körper ist die Menge der reellen Zahlen , auf der Addition und Multiplikation in üblicher Weise definiert sind. Für eine Primzahl bildet die Menge der Zahlen zwischen und sowohl mit der Modulo-Addition also auch mit der Modulo-Multiplikation ohne Null eine Gruppe. Die Restklassen ganzer Zahlen modulo , geschrieben oder , bilden somit einen endlichen Körper (auch Galoiskörper, engl. Galois field).

Berechnung des multiplikativ Inversen modulo n[Bearbeiten | Quelltext bearbeiten]

Mit dem erweiterten euklidischen Algorithmus[Bearbeiten | Quelltext bearbeiten]

Die multiplikative Gruppe besteht aus den Elementen von , die teilerfremd zu sind. Für jedes gilt also

.

Das multiplikativ inverse Element zu einer Zahl in erfüllt die Bedingung

.

Das Lemma von Bézout besagt, dass sich der größte gemeinsame Teiler zweier ganzer Zahlen und als Linearkombination von und mit ganzzahligen Koeffizienten darstellen lässt:

Sei : Dann gibt es ganze Zahlen und mit .

Sind und teilerfremd (also ), dann existieren offensichtlich, sodass

gilt. Modulo gerechnet ergibt sich nun

,

da der zweite Summand den Faktor enthält und somit „wegfällt“. Die Multiplikation mit ergibt

.

Somit ist also das inverse Element von in .

Die Koeffizienten und können mit dem erweiterten euklidischen Algorithmus effizient berechnet werden und damit auch das Inverse .

Beispiel:

Gesucht sei das Inverse von in . Da gilt, existiert dieses. Des weiteren existieren und , die die Bedinung

erfüllen. Der erweiterte euklidische Algorithmus liefert nun die Zahlen und . Es lässt sich nun leicht überprüfen, dass gilt

.

Damit ist auch das Inverse gefunden. Auch dies lässt sich überprüfen:

.

Durch modulare Exponentiation[Bearbeiten | Quelltext bearbeiten]

TBD

  1. Ertel: Angewandte Kryptographie. 4. Aufl., 2012, S. 98–99; Buchmann: Einführung in die Kryptographie. 3. Aufl., 2004, S. 192.
  2. Beutelspacher, Schwenk, Wolfenstetter: Moderne Verfahren der Kryptographie. 8. Aufl., 2015, S. 16.
  3. Beutelspacher, Schwenk, Wolfenstetter: Moderne Verfahren der Kryptographie. 8. Aufl., 2015, S. 17 mit Verweis auf Jose L. Balcazar, Josep Diaz, Josep, Joaquim Gabarró: Structural Complexity I. Springer: Heidelberg, Berlin, 1988.
  4. Freiermuth u.a.: Einführung in die Kryptologie. 2. Aufl., 2014, S. 289-290.
  5. a b Schmeh: Kryptografie. 5. Aufl., 2013, S. 184.
  6. Schmeh: Kryptografie. 5. Aufl., 2013, S. 185.
  7. Schmeh: Kryptografie. 5. Aufl., 2013, S. 180-181 und S. 190.