Frage:
Kann ein neuronales Netzwerk Hashing-Algorithmen knacken?
Omega
2016-08-29 10:32:14 UTC
view on stackexchange narkive permalink

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

Wäre ein neuronales Netz 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 zuvor getan?

Sie müssten die Art des neuronalen Netzwerks angeben.Es gibt viele Arten.Derzeit ist kein NN-Design bekannt, das einen modernen kryptografischen Hash-Algorithmus schneller als Brute Force knacken kann.Es ist möglich, dass ein NN in Zukunft in der Lage sein wird, einen Hash-Algorithmus zu brechen, aber wir sind sehr weit davon entfernt.Vorbehaltlich größerer Durchbrüche in der Mathematik, die die kryptografische Landschaft grundlegend verändern, würde maschinelles Lernen erforderlich sein, das dem menschlichen Lernen in seinen Fähigkeiten gleichkommt.
Sechs antworten:
tylerl
2016-08-29 11:07:59 UTC
view on stackexchange narkive permalink

Nein.

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

Die Muster müssen vorhanden 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 "kaputt" betrachtet und ein neuer Algorithmus würde seinen Platz einnehmen.

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

"Wenn eine solche Korrelation möglich wäre, würde der Hash als" gebrochen "betrachtet und ein neuer Algorithmus würde seinen Platz einnehmen."Das ist nicht ganz richtig.Wenn eine solche Korrelation * bekannt * wäre, würde der Hash als gebrochen betrachtet.Es ist denkbar, dass eine Korrelation besteht, aber wir haben sie noch nicht gefunden.Nur weil ein neuronales Netzwerk noch kein unbekanntes Muster in einem Hash gefunden hat, heißt das nicht, dass man in Zukunft kein Muster mehr finden kann.Obwohl es aufgrund der Art und Weise, wie neuronale Netze trainiert werden, immer noch unwahrscheinlich erscheint.
@Vaelus Ich verwende "möglich", um "eine Sache zu bedeuten, die jemand tun kann", anstatt die expansivere "eine Sache, die theoretisch passieren könnte".Aber sicher könnte man "bekannt" oder "gefunden" oder was auch immer anstelle von "möglich" sagen, aber ich denke, es ist bereits aus dem Kontext klar.Ich glaube nicht, dass der durchschnittliche Leser durch die Formulierung verwirrt ist.
Wenn wir davon sprechen, dass alles mit genügend Ressourcen und genügend Zeit möglich ist, gibt es Daten, die darauf hindeuten, dass ein Angriff auf das Hashing-Algo selbst zu besseren Ergebnissen führen könnte, als einen bestimmten Hash einer Eingabe mit hoher Entropie brutal zu erzwingen?
micimize
2017-10-03 23:05:05 UTC
view on stackexchange narkive permalink

Aus einem anderen Blickwinkel:
Sie könnten es auf das offene Problem reduzieren "Gibt es einen effizienten Algorithmus für die Ganzzahlfaktorisierung". Wenn ein solcher Algorithmus existiert, könnte ein NN ihn über eine geführte Proof-Suche ermitteln, und dies könnte verwendet werden, um die gesamte Sicherheit zu untergraben.

Dies ist die interessanteste Antwort.
Mike Ounsworth
2016-08-29 20:46:15 UTC
view on stackexchange narkive permalink

UPDATE angesichts Ihres Kommentars:

Ich weiß, dass dies 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 stark>. 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 Atome auf dem Planeten Erde (~ 166 166) - zumindest mit unserem derzeitigen Stand der Technik Es ist "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 nachweisen 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 durchgehen und das trainieren Netzwerk, da wir die Eingaben und erwarteten Ausgaben kennen.

1) Unterscheidet sich dies grundlegend von einer Nachschlagetabelle?

2) SHA256 hat einen Ausgaberaum von 2 256 sup> und einen 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 × 10 27 Nanosekunden entspricht, was ungefähr 2 90 ns entspricht. Angenommen, jede Trainingsiteration dauert 1 ns, würden Sie 2 166 Alter des Universums benötigen, um Ihr neuronales Netz zu trainieren.

Der Punkt hier ist, dass SHA256 2 256 hat sup> mögliche Ausgaben und 2 256 sup> ist eine wirklich wirklich wirklich große Zahl.

Ich weiß, dass es rechnerisch unmöglich wäre.Ich wollte nur wissen, ob es theoretisch möglich wäre (es scheint nicht nach Tyler).
Die Zeit vom Urknall beträgt ungefähr 13,5 Gy, aber ja, Ihre Schlussfolgerung ändert sich nicht!
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. Dies hängt von der Art des neuronalen Netzes ab.Ich bin mir ziemlich sicher, dass ein Typ namens Coppersmith einen mit nur 86 Milliarden Neuronen besitzt und es scheint perfekt in der Lage zu sein, ein paar Kryptosysteme zu zerstören.Natürlich wissen wir (noch) nicht, wie man ein künstliches NN entwirft, um die gleichen Vorteile zu bieten, die uns unser eigenes biologisches bietet, aber die Tatsache, dass 86 Milliarden Neuronen ausreichten, gibt uns zumindest eine Obergrenze für ein künstliches NN.
Mark I.O.
2017-08-11 06:50:03 UTC
view on stackexchange narkive permalink

"Kann ein neuronales Netzwerk zur 'Umkehrfunktion' einer Hash-Funktion werden?" Vielleicht. Es gibt keinen mathematischen Beweis dafür, dass einer bestimmten Hash-Funktion, sei es SHA oder eine andere, Muster zwischen Domäne und Bild fehlen. Wie andere Antwortende hervorgehoben haben, sind Hash-Funktionen explizit so konzipiert, dass keine erhaltenen Eigenschaften bekannt sind. Wenn es ein Muster gibt, könnte es theoretisch ein neuronales Netzwerk finden, aber ich bin sicher, es wurde bereits zuvor versucht und SHA existiert noch, sodass wir davon ausgehen können, dass sie nicht erfolgreich waren. Ich könnte erwähnen, dass Sie dies beweisen müssten 'Mangel an Muster' für jede einzelne Hash-Funktion einzeln.

Ich setze 'inverse Funktion' in Anführungszeichen, weil Hash-Funktionen surjektiv sein müssen (Surjektivität ist jedoch normalerweise nicht formal bewiesen) und als solche können Wenn zwei Zahlen auf dieselbe Zahl abgebildet werden, gibt es keine echte Umkehrung. 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 zurückgeben (z. B. die natürlichen Zahlen), und eine komplexere Inversionsfunktion würde eine reale Teilmenge der Domäne zurückgeben.

Dies wäre tatsächlich interessant für ein neuronales Netz 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 die Funktion ist, die der NN als Ausgabe zurückgibt.

Surjektive Funktionen ordnen nicht unbedingt mehr als ein Element der Domäne demselben Element in der Codomäne zu.Betrachten Sie f (x) = x.Was Sie vielleicht sagen möchten, ist, dass die Codomäne von Hash-Funktionen normalerweise weniger Elemente als die Domäne enthält, sodass einige Elemente der Domäne notwendigerweise auf dasselbe Element der Codomäne abgebildet werden.Dies nennt man das Pigeonhole-Prinzip.
Steffen Ullrich
2016-08-29 11:01:06 UTC
view on stackexchange narkive permalink

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 Mathematik.

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 auf führen würde Ermöglichen Sie Brute Force, dann 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.

Meir Maor
2017-10-04 00:18:41 UTC
view on stackexchange narkive permalink

Nein, Neuronale Netze verwenden grundsätzlich eine Gradienten-anständige Optimierung. Neuronale Netze sind eine interessante Familie von Funktionen, und in der Praxis schaffen wir es, sie ziemlich gut zu optimieren, obwohl sie kein konvexes Problem darstellen.

Damit eine solche Optimierungstechnik funktioniert, benötigen wir ein Minimum an Glätte und 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.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...