Hi,
Daß es zu der Methode, wie crypt() arbeitet, keine *bekannte* Umkehrfunktion gibt, heißt nicht, daß bewiesen ist, daß es keine geben *kann*.
Ich meine, genau dies sei bereits bewiesen worden. Der einzige Weg ist Brute Force, egal wie optimiert der Algorithmus dazu ist.
Seit wann? URL? Das interessiert mich.
Mein Stand der Dinge ist bisher noch, daß man in der Regel nur beten kann:
Sicherheit von asymmetrischen Verfahren
---------------------------------------
Nachdem wir nun schon ein paar Grundprinzipien kennengelernt haben, stellt sich natürlich die Frage, wie werden D und E realisiert und wie sicher sind diese Verfahren damit?
Um ein public-key-Verfahren sicher zu machen, muß die "legale" Benutzung relativ einfach und leicht durchzuführen sein. Der Besitzer beider Schlüsselteile, des öffentlichen und des geheimen, kann seine Absicht, die Nachricht zu entschlüsseln oder zu prüfen, schnell durchführen.
Dem potentiellen Angreifer stehen aber auch nicht wenige Informationen zur Verfügung, der öffentliche Schlüssel und der Geheimtext bzw. das unterschriebene Dokument.
Die "illegale" Berechnung des fehlenden Teils muß deswegen außerordentlich aufwendig sein, das heißt, sie darf zwar theoretisch möglich, aber sie muß wenigstens praktisch unmöglich sein.
Um das zu erreichen, werden sogenannte Falltürfunktionen benutzt. In der Theorie sind das mathematische Funktionen, die sich sehr einfach anwenden lassen; ihre Umkehrung jedoch läßt sich nur mit zu großem Aufwand berechnen.
Das Problem dabei ist, daß es äußerst schwierig zu beweisen ist, ob eine solche Falltürfunktion vorliegt.
Für solche Anwendungen benutzt man in der Regel zwei mathematische Operationen, die diesen Bedingungen aller Kentnis nach gehorchen:
- Die Multiplikation natürlicher Zahlen (in der Regel Primzahlen). Die Umkehrung ist die Faktorisierung (Zerlegung in Primzahlfaktoren); für diese Operation sind nur in Spezialfällen schnelle Verfahren bekannt.
- Potenzierung innerhalb einer bestimmten mathematischen Struktur (multiplikative Gruppe eines endlichen Körpers). Das ist sehr leicht durchzuführen. Die Umkehrung, der diskrete Logarithmus, ist ebenfalls nur äußerst aufwendig zu berechnen.
Solche System liefern also grundsätzlich schon eine Methode mit, wie man sie knacken kann. Es ist also, im Gegensatz zu symmetrischen Verfahren, nicht die Frage, ob man das System knacken kann, sondern ob es eine wirksamere Methode als die schon bekannte gibt, wie man an die Lösung kommt.
Das Problem an der Sache ist, daß man nichts darüber weiß. Man weiß nicht, ob es nicht vielleicht doch schnellere Methoden gibt, die Umkehrung zu berechnen; man weiß nicht, ob es nicht trickreiche andere Zugänge gibt, mit dem man das Problem der Umkehrung umgehen kann.
Man gründet die Sicherheit solcher Verfahren also auf folgende Punkte:
- Man nimmt an, daß die Leistung verfügbarer Computer in absehbarer Zeit nicht wesentlich zunehmen wird, so daß der Aufwand, die Umkehrfunktion zu berechnen, ausreichend lange unbezahlbar oder unannehmbar ist.
- Man nimmt an, daß keine schnellere Art und Weise gibt, um die Umkehrfunktion zu berechnen.
- Man nimmt an, daß es keine andere Methode als die Umkehrfunktion gibt, eine Lösung zu erhalten.
Mit anderen Worten: man kann die Sicherheit des Verfahrens nicht beweisen, ja noch schlimmer, man macht die Sicherheit des Verfahrens von der momentanen Unfähigkeit abhängig, eine flotte Lösung zu finden.
(aus http://www.toppoint.de/~freitag/ca/f-d-ca-theo.html, Franzis-Verlag 1997)
Und die drei letztgenannten Punkte klingen so, daß ich mir nicht vorstellen kann, man könnte *jemals* das Gegenteil beweisen.
mfG - Michael