it-swarm.com.de

Kann ein neuronales Netzwerk Hashing-Algorithmen knacken?

Ich habe ein wenig über neuronale Netze und ihre Fähigkeit gelesen, viele komplexe Funktionen zu approximieren.

Wäre ein neuronales Netzwerk nicht in der Lage, einen Hashing-Algorithmus wie SHA256 zu knacken?

Angenommen, wir möchten unser Netzwerk so trainieren, dass Zeichenfolgen mit 8 Zeichen geknackt werden, die gehasht wurden. Wir könnten alle Permutationen durchgehen und das Netzwerk trainieren, da wir die Eingaben und erwarteten Ausgaben kennen. Wäre das Netzwerk technisch in der Lage, eine relativ gute Anzahl von SHA256-Hashes zu knacken, die auf Zeichenfolgen mit 8 Zeichen zurückgeführt werden? Wurde dies schon einmal gemacht?

24
Omega

Nein.

Neuronale Netze sind Mustervergleicher. Sie sind sehr gute Mustervergleicher, aber Mustervergleicher trotzdem. Nicht weiter fortgeschritten als das biologische Gehirn, das sie nachahmen sollen. Gründlicher, unermüdlicher, aber nicht raffinierter.

Die Muster müssen da sein, um gefunden zu werden. Es muss eine Verzerrung in den Daten geben, um herauszufinden. Kryptografische Hashes werden jedoch explizit und äußerst sorgfältig entwickelt, um Verzerrungen in der Ausgabe zu vermeiden. Kein Bit ist wahrscheinlicher als jedes andere, kein Ausgang korreliert eher mit einem bestimmten Eingang. Wenn eine solche Korrelation möglich wäre, würde der Hash als "gebrochen" betrachtet und ein neuer Algorithmus würde seinen Platz einnehmen.

Fehler in Hash-Funktionen wurden bereits zuvor gefunden , jedoch niemals mit Hilfe eines neuronalen Netzwerks. Stattdessen wurden bestimmte mathematische Prinzipien sorgfältig angewendet.

35
tylerl

Aus einem anderen Blickwinkel:
Sie könnten es auf das offene Problem reduzieren "Gibt es einen effizienten Algorithmus für ganzzahlige Faktorisierung ". Wenn ein solcher Algorithmus existiert, könnte ein NN ihn über Guided Proof Search entdecken, und dies könnte verwendet werden, um die gesamte Sicherheit zu untergraben.

10
micimize

UPDATE mit Ihrem Kommentar:

Ich weiß, dass es rechnerisch nicht durchführbar wäre. Ich wollte nur wissen, ob es theoretisch möglich wäre (es scheint nicht nach tylerl)

Ja, bei unendlicher Zeit und unendlicher Energie könnte ein neuronales Netz SHA256 knacken. ABER (und ich denke, das ist der Punkt, den @tylerl macht), weil Hash-Funktionen keine erkennbaren Muster haben, wäre ein neuronales Netz nicht besser als die naive Brute-Force, eine Nachschlagetabelle zu erstellen, indem der Hash von jedem berechnet wird mögliche Zeichenfolge. Eine solche Nachschlagetabelle hätte mehr Einträge (~ 2)256) als es Atome auf dem Planeten Erde gibt (~ 2166) - Zumindest mit unserem derzeitigen Stand der Technik ist es "unmöglich", eine solche Tabelle im Speicher zu halten oder auf einer beliebigen Festplatte zu speichern. In ähnlicher Weise würde die Anzahl der Neuronen, die Sie benötigen würden, wahrscheinlich auch die Anzahl der Atome auf dem Planeten überschreiten, damit Ihr neuronales Netz merklich besser abschneidet als ein Würfelwurf.

Also ja, es ist rechnerisch nicht realisierbar, aber theoretisch immer noch möglich. Tatsächlich gilt für die Kryptographie im Allgemeinen, dass es immer möglich ist, etwas in der Theorie brutal zu erzwingen, aber wir sagen "gut genug", wenn wir beweisen können, dass dies mehr Zeit als die Lebensdauer des Universum und mehr Energie als in der Sonne enthalten.


Ich denke, das Gegenargument ist eine Antwort auf:

Wir könnten alle Permutationen durchlaufen und das Netzwerk trainieren, da wir die Eingaben und erwarteten Ausgaben kennen.

1) Unterscheidet sich dies grundlegend von einer Nachschlagetabelle?

2) SHA256 hat einen Ausgangsraum von 2256und ein Eingaberaum, der im Wesentlichen unendlich ist. Als Referenz wird die Zeit seit dem Urknall auf 5 Milliarden Jahre geschätzt, was ungefähr 1,577 x 10 entspricht27 Nanosekunden, was ungefähr 2 ist90 ns. Angenommen, jede Trainingsiteration dauert 1 ns, würden Sie 2 benötigen166 Zeitalter des Universums, um Ihr neuronales Netz zu trainieren.

Der Punkt hier ist, dass SHA256 2 hat256 mögliche Ausgänge und 2256 ist eine wirklich wirklich wirklich große Zahl.

9
Mike Ounsworth

"Kann ein neuronales Netzwerk zur 'Umkehrfunktion' einer Hash-Funktion werden?" Könnte sein. Es gibt keinen mathematischen Beweis dafür, dass eine bestimmte Hash-Funktion, sei es SHA oder eine andere), keine Muster zwischen Domain und Image aufweist. Wie andere Antwortende hervorgehoben haben, sind Hash-Funktionen explizit so konzipiert, dass es solche gibt Keine bekannten erhaltenen Eigenschaften. Wenn es eine Art Muster gibt, könnte es theoretisch ein neuronales Netzwerk finden, aber ich bin sicher, dass es schon einmal versucht wurde und SHA existiert noch, also können wir das annehmen Sie waren erfolglos. Ich könnte erwähnen, dass Sie diesen „Mangel an Muster“ für jede einzelne Hash-Funktion einzeln beweisen müssten.

Ich setze 'inverse Funktion' in Anführungszeichen, weil Hash-Funktionen surjektiv sein müssen (jedoch ist die Surjektivität normalerweise nicht formal bewiesen) und als solche zwei Zahlen auf dieselbe Zahl abgebildet werden können, daher gibt es keine echte Inverse. Die Umkehrfunktion muss jedoch keine echte Funktion sein, da sie einen Satz von Zahlen oder eine Funktion zurückgeben kann, die einen Satz von Zahlen beschreibt. Die Brute-Force-Inversionsfunktion einer Hash-Funktion würde einfach die Domäne (z. B. die natürlichen Zahlen) zurückgeben, und eine ausgefeiltere Inversionsfunktion würde eine reale Teilmenge der Domäne zurückgeben.

Es wäre tatsächlich interessant, ein neuronales Netz zu trainieren: Der NN gibt eine Funktion als Ausgabe zurück. Die Funktion hat eine gewisse Dichte innerhalb des Bildes, die man annähern könnte. Je niedriger die Dichte, desto höher die Belohnung. Um nun die NN zu trainieren, geben Sie f(x) ein und prüfen, ob x <- {g(c) | c <- | N}, während g ist die Funktion, die der NN als Ausgabe zurückgibt.

5
Mark I.O.

Neuronale Netze oder andere Algorithmen für maschinelles Lernen sind keine Zauberei, auch wenn sie so aussehen könnten. Am Ende sind diese Methoden nur eine Reihe von Gleichungen (d. H. Mathematik), um die Eingabe auf die Ausgabe abzubilden, und das Lernen passt die Parameter für diese Gleichungen so an, dass das Ergebnis die Trainingsdaten so gut wie möglich widerspiegelt. Auf diese Weise wird versucht, die inhärente Struktur der Daten zu lernen, in der Hoffnung, dass diese Struktur auch für die meisten anderen möglichen Eingaben dieselbe ist. Oder zusammenfassend: Es ist nur Mathe.

Wenn eine solche inhärente Struktur existieren würde, die eine vergleichsweise einfache Zuordnung vom Hash-Wert zum ursprünglichen Wert ermöglicht, oder selbst wenn dies nur zu einer starken Reduzierung des Suchraums führen würde, um Brute Force zu ermöglichen, würde dieser Hash nicht als kryptografisch starker Hash angesehen . Und da Sie kein neuronales Netzwerk oder ähnliches verwenden müssen, um solche Probleme zu untersuchen, bin ich mir ziemlich sicher, dass dies getan wird und dass neuronale Netzwerke keine neuen Gefahren mit sich bringen.

3
Steffen Ullrich

Nein, Neuronale Netze verwenden grundsätzlich eine Gradienten-anständige Optimierung. Neuronale Netze sind eine interessante Funktionsfamilie, und in der Praxis gelingt es uns, sie recht gut zu optimieren, obwohl sie kein konvexes Problem darstellen.

Damit eine solche Optimierungstechnik funktioniert, benötigen wir ein Minimum an Glätte. Wir brauchen eine Vorstellung von fast korrekt. Wir haben dies nicht mit kryptografischen Hash-Funktionen. Wir erwarten, dass ein Einzelbit-Flip die Hälfte der Ausgänge umdreht. An den meisten Orten haben wir kleine Änderungen, die zu kleinen Änderungen führen, nicht so bei der Kryptographie. Aus diesem Grund können neuronale Netze lernen, kryptografische Grundelemente zu invertieren.

3
Meir Maor