Ist es möglich, zu knacken SHA256, wenn Sie wissen, dass die Antwort eine Koordinate?
Muss ich Riss ein sha256-hash, und ich weiß, die Antwort ist in den Koordinaten, aber ich weiß nicht, was sind die Werte in einem Koordinatensystem
Beispiel:
3f1c756daec9ebced7ff403acb10430659c13b328c676c4510773dc315784e4e
58.375782 26.742632
Ist es möglich, erstellen Sie ein python Skript, das macht zwei-Variablen (mit dem Wert 00.000000), dann fügen Sie Sie zusammen (ex: k=i+" "+j
), dann wandelt k in sha256 und vergleicht Sie mit der sha256, ich bin versucht zu knacken. Wenn es nicht gleich die sha256 geknackt, dann fügt er i
einen Wert (i=i+00.000001
) und triess wieder. und so weiter und so weiter
Sicher, man kann die bruteforce hash. Mit der Zeit.. Man muss nur versuchen 10**16 Kombinationen.
Sie definitiv könnte geschrieben haben, Martijn ' s selbst beantworten, das Sie beschrieben, der Algorithmus, die in Ihrer Frage.
Die Koordinate string nicht produzieren, der bestimmte hash-digest. Was ist der genaue - format der input-string für die Koordinaten? In Meiner Antwort nehme ich an, dass die hash-Funktion zugeführt wird, eine
Wenn Sie auf der Suche nach Möglichkeiten, um anzugreifen, SHA256, die besser sind als brute-force - ... gibt es bekannte preimaging Angriffe für die Erstellung von Kollisionen, aber keine veröffentlichten Angriffe (ab 2014) für die Umkehrung einen hash. Wikipedia, beschreibt Sie in einem Laien-Niveau. Wenn Sie wollen, um tatsächlich einen nutzen von Ihnen haben, werden Sie brauchen, um mehr details zu erfahren. Wenn jemand gefunden hat, einen neuen Angriff vor kurzem, die Chancen, dass Sie poste es als Antwort auf deine Frage, anstatt in den verschiedenen öffentlichen crypto-Foren scheint ziemlich schlank.
Sie definitiv könnte geschrieben haben, Martijn ' s selbst beantworten, das Sie beschrieben, der Algorithmus, die in Ihrer Frage.
Die Koordinate string nicht produzieren, der bestimmte hash-digest. Was ist der genaue - format der input-string für die Koordinaten? In Meiner Antwort nehme ich an, dass die hash-Funktion zugeführt wird, eine
xx.xxxxxx yy.yyyyyy
koordinieren; z.B. eine Zahl formatiert auf 2,6 stellen mit 0 Auffüllen, und ein Leerzeichen zwischen die beiden Koordinaten.Wenn Sie auf der Suche nach Möglichkeiten, um anzugreifen, SHA256, die besser sind als brute-force - ... gibt es bekannte preimaging Angriffe für die Erstellung von Kollisionen, aber keine veröffentlichten Angriffe (ab 2014) für die Umkehrung einen hash. Wikipedia, beschreibt Sie in einem Laien-Niveau. Wenn Sie wollen, um tatsächlich einen nutzen von Ihnen haben, werden Sie brauchen, um mehr details zu erfahren. Wenn jemand gefunden hat, einen neuen Angriff vor kurzem, die Chancen, dass Sie poste es als Antwort auf deine Frage, anstatt in den verschiedenen öffentlichen crypto-Foren scheint ziemlich schlank.
InformationsquelleAutor josh | 2014-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Produzieren alle möglichen Koordinaten zwischen
00.000000
und99.999999
ist einfach genug:Diese werden brute-force alle 10**16 (eine große Zahl) Kombinationen. Lehnen Sie sich zurück und entspannen, das wird eine Weile dauern.
Und "eine Weile", wir meinen wirklich nicht in Ihrem Leben, Sie oder jemand anderer. Nur der Iteration über alle möglichen Kombinationen produziert von
product()
braucht eine Menge Zeit, da jede Ziffer Hinzugefügt, um zu versuchen, erhöht sich die benötigte Zeit um einen Faktor von 10:Wenn die Herstellung aller möglichen Kombinationen von 8 Ziffern nimmt .8 Sekunden (4s geteilt durch 5 Wiederholungen), 9-stellig dauert 8 Sekunden, kann man extrapolieren, dass 10 Ziffern dauert fast 1,5 Minuten, etc. Einfach produzieren alle möglichen Kombinationen der 16 Ziffern nimmt 1 million (10 ** 6) mal so viel Zeit als 10 Ziffern, so 963 Tagen oder einfach nur onder 3 Jahren diese in einer Schleife. Man könnte split diese Aufgabe bis über 2000 verschiedene Prozesse auf eine große Anzahl von Computern mit genügend Kerne in der Summe laufen diese Prozesse parallel, um diese zu reduzieren, um unter 12 Stunden.
Dann die Schleife selbst dauert etwa 2,4 Sekunden pro million Iterationen:
Aber Sie haben 10 ** 10 (10 tausend Millionen) mal mehr Arbeit, als, dass, in Höhe von rund 743 Jahren der Berechnung der Arbeit. Selbst laufen zu können 20 tausend parallele Prozesse nicht zu reduzieren, dass auf einen vernünftigen Wert (das ist immer noch etwa 13,5 Jahren Arbeit).
Python ist einfach nicht schnell genug für diese Aufgabe. Mithilfe von GPUs sollte es möglich sein, zu erreichen 500 Millionen hashes pro Sekunde (0.5 Gigahash /s), an welcher Stelle könnte man die oben genannten brute-force-operation und eine Lösung zu finden, die in etwa 230 Tage auf so einem system. Zu einem Preis, natürlich, weil so ein rig kostet etwa $3000-$4000 im Monat zu laufen! Aber mit genug dedizierter hardware kann man sicherlich 'crack' der hash in 'humane' timeline.
Vielleicht könntest du zählen nur die Koordinaten der Landfläche auf der Erde zu beseitigen, die unnötige Berechnung.
Sie scheinen Globale positionsvorrichtung Koordinaten allerdings, so das reicht wahrscheinlich [-180..+180], [-90..+90]
InformationsquelleAutor Martijn Pieters
Einem der gängigen Behauptungen über die hashes, die Sie verwerfen Informationen, Sie können daher nicht rückgängig gemacht werden. Es gibt unendliche Nachrichten mit dem gleichen hash. Sie können nicht wissen, welche von dem unendlichen-Nachrichten, die den gleichen hash ist korrekt.
Natürlich in der Praxis, eine brute-force-Angriff funktioniert oft - entweder, weil Sie Ihre such-Strategie ist wahrscheinlich die echte ursprüngliche Nachricht zuerst (die meisten Nachrichten mit hash-Kollisionen sind offensichtlich falsch, in einer trivialen Weise - z.B. das falsche format - und nicht in der Suche, da der, die) oder weil dein Angriff braucht man eine andere Nachricht mit dem gleichen hash sowieso.
In Ihrem Fall, was wissen Sie über die Nachricht bedeutet, dass es weniger Informationen in der Nachricht als (scheinbar) in den hash. Natürlich hashing erzeugt keine neuen Informationen, so dass Sie viele hashes können nicht auftreten koordinieren strings. Haben Sie (mit sehr hoher Wahrscheinlichkeit für eine gute hash-algorithmen) eine 1:1-Beziehung zwischen möglichen hashes und möglich Nachrichten. Im Prinzip, haben Sie eine verschlüsselte form der Nachricht, die entschlüsselt werden können.
Viele Leute würden rufen Sie mich ein idiot, das zu sagen, natürlich. Nachdem alle, die Sie noch finden müssen, um all die hashes für alle möglichen Nachrichten. Das kann schneller gehen, als manche Leute denken, aber es ist ein langer Weg von trivial.
Es wurde bereits darauf hingewiesen, dass es gibt 10^16 möglichen Kombinationen, basierend auf den co-ordinate-format. Eine Sache zu prüfen ist, ob alle Werte für alle diese Ziffern sind möglich (und gleich wahrscheinlich). Mit floating point Arithmetik intern sollte kein problem sein - double-precision-floats sind nicht 8-stelligen Dezimalzahlen, aber 53 bit Mantisse, sollte ausreichen, um sicherzustellen, dass alle diejenigen, die Dezimalstellen sind voll im Einsatz. Allerdings kann es sich lohnen, zu prüfen, dass es keine andere Beschränkung, die die Anzahl von Fällen zu prüfen, - die selbstverständlich die Präzision, wie diese Koordinaten werden gemessen.
Selbst wenn bestimmte stellige Werte sind weniger wahrscheinlich als andere, bedeutet das, dass die Bestellung der Suche um zu überprüfen, mehr wahrscheinlich Werte zunächst wird eine Menge Zeit sparen, für Cracker.
InformationsquelleAutor Steve314