hash code im Klartext anzeigen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

¡hola!

da ich mich mit Programmieren so gut wie nicht auskenne, möchte ich hier versuchen ein Frage zu stellen.
Hoffentlich drücke ich mich nicht zu laienhaft aus.

In nachstehender Zahlenkolonne sollen Informationen stehen.
Die Informationen, die ich suche sollen den gleichen hash Wert haben.
Kann man den hash code dahingehend bearbeiten, dass man sämtliche Informationen im Klartext lesen kann?

6450A1A4451646CF26DEE1AE5E2AFA0216C69BC0

Das soll die Länge von SHA1 hash sein.
Saludos
Peter
BlackJack

@peter55: Ich glaube Du hast Hash-Codes falsch verstanden. Das ist eine kryptografische Prüfsumme zu gegebenen Daten. Das sind keine verschlüsselten Daten die man entschlüsseln kann. Man kann aus einen Hash-Code nicht die Daten rekonstruieren zu denen der Hash-Code gehört. Die muss man *wissen*. Oder raten. Es gibt aber unendlich viele Datensätze die zu jedem Hash-Code gehören und die kann man nicht gezielt aufzählen. Wenn man das könnte, dann würde der Algorithmus zum berechnen des Hash-Codes nix taugen.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Eine Hash-Funktion ist eine Einwegfunktion, die geht nur in eine Richtung. Durch die Kompression gehen Informationen verloren, die die Umkehrung nicht mehr eindeutig machen. Wenn man zuviel Zeit hat, kann man eine Funktion durchlaufen lassen die alle erlaubten Kombinationen bildet und die Hashes vergleicht. Darunter muss auch der Ausgangstext sein.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

¡hola! zusammen,

dann habe ich mich vermutlich missverständlich ausgedrückt, oder den Tip falsch wieder gegeben.

Hier der Tip im englischen Original:

You need to write all numbers into one line - then you get 40 characters line - which is the same length as SHA1 hash. However in this case it's not only SHA1 but HMAC-SHA1, you need to find out which coordinates would have the same hash value as in the description - this is why there is format in the source code. Only way to do is by writing small program.

Kann damit jemand etwas anfangen? Wäre toll.
Saludos
Peter
BlackJack

@peter55: Es bleibt grundsätzlich beim gesagten: Du musst alle möglichen Nachrichten aufzählen und den Hashwert berechnen und mit dem Wert vergleichen den Du schon hast. Offenbar sind die Nachrichten nicht ganz beliebig sondern müssen Koordinaten beschreiben, vielleicht in einem bestimmten Format‽ Und falls es hier um Geocaching geht, kann man sicher noch mehr Annahmen über die Koordinaten machen, zum Beispiel das sie nicht am Nordpol oder mitten im Ozean liegen werden. Das kann den Suchraum weiter eingrenzen.
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

¡hola!

jetzt scheinen wir der Sache ja doch noch näher zu kommen. Kann es sein, dass der Tip dahingehend zu verstehen ist, dass man die Ausgangskoordinaten N28° 32.211 W16° 21.533 mit einem Programm mit fiktiven Koordinaten vergleicht, bis die Prüfsumme der Ausgangskoordinaten mit denen der richtigen übereinstimmt? Wie könnte man vorgehen?

N28° 32.211 W16° 21.533 sind die Ausgangs- oder Originalkoordinaten.

Im ersten Schritt N28° 31.000 bis 33.999 mit W16° 20.000 bis 22.999 vergleichen?

Wenn das nicht reicht, dann müsste man die "Bandbreite" erhöhen?
Soweit die Theorie, weil ich mich etwas mit Geochaching auskenne.

Es gibt natürlich verschiedene Schreibweisen:
N28° 32.211 W16° 21.533
N28° 32.211 W016° 21.533

N 28° 32.211 W 16° 21.533
N 28° 32.211 W 016° 21.533

N28 32.211 W16 21.533
N28 32.211 W016 21.533

N 28 32.211 W 16 21.533
N 28 32.211 W 016 21.533

Kann man feststellen, welches Format vorliegt, sprich kann man den hash code für die verschiedenen Schreibweisen der Ausgangskoordinaten erstellen und mit der String Vorgabe vergleichen? Tja, ich wäre froh, wenn ich meine Gedankengänge in Programmcode umsetzen könnte.

Welchen Beitrag kann ich als Unwissender noch leisten?
Saludos
Peter
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

peter55 hat geschrieben:jetzt scheinen wir der Sache ja doch noch näher zu kommen. Kann es sein, dass der Tip dahingehend zu verstehen ist, dass man die Ausgangskoordinaten N28° 32.211 W16° 21.533 mit einem Programm mit fiktiven Koordinaten vergleicht, bis die Prüfsumme der Ausgangskoordinaten mit denen der richtigen übereinstimmt? Wie könnte man vorgehen?
Du müsstest halt alle möglichen Koordinaten durchgehen, deren Hashwert erzeugen und dann auf Übereinstimmung testen. Je mehr du deinen Suchraum einschränken kannst, desto schneller wird die Suche ein Ergebnis liefern. Bei einer Übereinstimmung ist jedoch nicht garantiert, dass die Koordinaten tatsächlich übereinstimmen. Ein Wert hat immer einen eindeutigen Hashwert, aber zu jedem Hashwert gibt es prinzipiell unendlich viele Werte.
peter55 hat geschrieben:Kann man feststellen, welches Format vorliegt, sprich kann man den hash code für die verschiedenen Schreibweisen der Ausgangskoordinaten erstellen und mit der String Vorgabe vergleichen?
Nein, aus dem Hashwert kannst du keine solche Information gewinnen. Ein guter Hashalgorithmus erzeugt Hashwerte, welche wie Zufallszahlen aussehen. Im Idealfall liefert ein Hashwert für nahezu gleiche Werte zwei vollkommen verschiedene Ergebnisse. Wenn du das Koordinatenformat nicht kennst, dann musst du auch hier raten, was deinen Suchraum natürlich zusätzlich vergrößert.
Das Leben ist wie ein Tennisball.
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

Nein, wieder falsch ausgedrückt.

Ich meine, kann man für eine Koordinate einen hasch Wert bilden und dan dann mit dem vorliegenden string vergleichen?
Saludos
Peter
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@peter55: Natürlich kann man einen Hashwert mit einem anderen Hashwert vergleichen, dazu sind die ja da.
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

ich habe mal versucht mit einem hash Generator den string abzubilden, der vorgegeben ist. Bislang ist mir das (noch) nicht gelungen.

Was ist eigentlich der Unterschied zwischen SHA-1 und HMAC SHA-1?
Ich habe das zwar in Wikipedia gelesen, aber nicht verstanden.
Kann man das mit einfachen Worten einem Laien wie mir verständlich machen?

Ich habe einen HMAC SHA-1 Generator gefunden. Der verlangt einen security key.

http://www.freeformatter.com/hmac-gener ... #ad-output

Wenn ich dort die Koordinaten eingebe, dann kommt ein ähnlicher string raus, aber nicht der, den ich suche.
Als security key habe ich den 40 stelligen string, den Namen Tenerife:D5T5, nur D5T5 als auch Tenerife und den Namen des Owners: Trashtazmani gewählt.

Ich befürchte, dass das jetzt hier nicht (mehr) hingehört? Falls dem so ist, hat jemand eine Idee, wo man sich darüber austauschen kann?

Danke
Saludos
Peter
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Mit H-MAC Konstruktionen schützt man seinen Text vor unbemerkter Veränderung indem man den Hash vom Text mit einen privaten Schlüssel verwurstet. Mittels den öffentlichen Schlüssel kann dann überprüft werden, ob der Text authentisch und verändert ist.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@peter55: SHA-1 ist eine Hashfunktion der man Daten gibt und die einen Hashwert liefert. HMAC ist ein Verfahren um mit einem Schlüssel, einer Nachricht, und einer Hashfunktion eine Prüfsumme über die Nachricht zu bilden. Man braucht halt zum erstellen und prüfen zusätzlich noch den Schlüssel, den beide Seiten kennen müssen. Wenn Du den nicht kennst, dann ist Dein Suchraum gerade grösser geworden. :-)

@darktrym: Es gibt nur einen Schlüssel und der ist sinnvollerweise geheim, also nur Sender und Empfänger dürfen den kennen sonst könnte man auch einfach eine Hashfunktion ohne Schlüssel verwenden. Mit privaten und öffentlichen Schlüsseln hat das nichts zu tun.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ich ging von den Fall aus, dass auch Zurechenbarkeit eine Rolle spielt. Bei HMAC nach RFC spielt das offensichtlich kein Rolle. Ich muss da was durcheinander gebracht haben.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
peter55
User
Beiträge: 8
Registriert: Donnerstag 1. Januar 2015, 14:09

die Zurechenbarkeit, wie Du es nennst, kommt vermutlich im 2. Schritt, nämlich dann, wenn man den Schlüssel herausgefunden hat und die einzelnen Stellen der Koordinaten so lange um +1 erhöhen und vergleichen muss, bis man den identischen hash Wert hat? Der Schlüssel muss ja irgendwo stehen, sonst wäre es ja nicht lösbar. Der Trick wird sein herauszufinden, wo er steht. Da bin ich im Moment bei.
Saludos
Peter
Antworten