Forum: Mikrocontroller und Digitale Elektronik SHA 256 Hash berechnung rückwerts


von Chris B. (coolsusi)


Lesenswert?

Hallo liebes Forum.

Hab da mal ne Frage um komme nicht weiter.

Habe da einen LUCA Schlüsselanhänger mit diesem Code NMHS - 8P9Q - CA92.
Der soll 4 Byte sein.

Siehe:

jeder beliebige 8-Byte-Wert
Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen 
Daten gekürzt und leicht generiert werden kann.

ephemeral_keys   = a new secp256r1 key pair (for DLIES with the daily 
public key)
dh_key           = ECDH(ephemeral_keys.private, daily_keypair.public)
enc_key          = SHA256(dh_key || 0x01)  # truncated to 16 bytes
iv               = ephemeral_keys.public   # truncated to 16 bytes
enc_data         = AES-128-CTR(userId || data_secret, enc_key, iv)

Ich möchte einfach selber einen Key z.B.: NMHS - 8P9Q - CA92 rückwärts 
generieren.
Ich gebe die Buchstaben und zahlen vor und am Schluss kommt ein 4 Byte 
Key raus.
Ist das möglich?

Gruß

Susi

von Stefan F. (Gast)


Lesenswert?

Mit Key meinst du wohl die Daten, von dem SHA Algorithmus als Eingabe 
gegeben wurden.

Der SHA Algorithmus erzeugt einen Hash von diesen Daten.

Möchtest du das Ganze Rückgängig machen, also den Hash wieder zurück in 
den ursprünglichen key umwandeln? Das geht nicht, genau das zu 
verhindern ist eine der Hauptaufgaben des Algorithmus.

Du kannst auch ein herausgeschnittenes Stück von einem Foto von einem 
Kuchen nicht zurück in die Zutaten des Kuchens umwandeln. In etwa so 
unmöglich ist dein Vorhaben.

von Chris B. (coolsusi)


Lesenswert?

Hallo vielen Dank für deine Antwort.

Ich möchte einen Code Vorgeben A1B2 C3D4 E5F6 zum Beispiel und unter 
berücksichtigung der berechnung damit sie am Schluss richtig ist

( jeder beliebige 8-Byte-Wert
Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen
Daten gekürzt und leicht generiert werden kann )

Quasi jeder belibige Zahlenkomi anerkannt wird.

mmmhhhhh verständlich geschrieben?

Gruß

von Jim M. (turboj)


Lesenswert?

Wenn ich OP richtig verstehe will er eine kryptografische Hash Funktion 
umkehren, das geht nicht. Besser: Das soll bei einer ordentlich 
aufgebauten Funktion absichtlich nicht gehen.

Als Ausweg würde Durchprobieren bleiben: Man generiert eine riesige 
Menge an Keys und hat dann eine 1:4e9 Chance das zufällig einer passt.

Einen Menschen könnte man wegen der nur 4 Bytes damit überlisten, eine 
Maschine die die vollen 32 Byte des SHA256 vergleicht natürlich nicht.

von Wolfgang (Gast)


Lesenswert?

Chris B. schrieb:
> mmmhhhhh verständlich geschrieben?

Nein.
Was ist wovon der Hash-Wert? Sind die 4 Byte ein Teil von dem aus den zu 
sichernden Daten berechneten Hash-Wert?
Was für ein Zusammenhang besteht zwischen den 4 Byte und dem 12 Zeichen 
Code?
Wenn die 4 Byte bereits ein Hash-Wert sind, was spielt das für die 
Umformung 4 Byte Wert in 12 Zeichen Code bzw. deren Umkehr für eine 
Rolle?

von Experte (Gast)


Lesenswert?

Chris B. schrieb:
> Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen
> Daten gekürzt und leicht generiert werden kann.

Genau lesen und nachdenken. Die Situation ist wie folgt:

  Prüfsumme = AufVierBytesGekürzt( SHA256( einigeBytesDaten ) )

D.h. man beginnt mit "einigeBytesDaten", konkret in diesem Falle mit dem 
dh_key, berechnet davon SHA-256, und nimmt von diesem Ergebnis vier 
Bytes.

Du kannst zwar, per Brute-Force sogar recht überschaubar, eine Bytefolge 
für "einigeBytesDaten" finden (den mutmaßlichen dh_key), dessen gekürzte 
SHA-256-Summe so ist wie Du haben willst.

ABER:

Die gefundene Bytefolge "einigeBytesDaten" sind kein gültiger dh_key, 
sondern einfach nur zufällige Bytes, also nutzlos.

von Experte (Gast)


Lesenswert?

Ach, ich hab mich glaub verlesen. Egal.

von noreply@noreply.com (Gast)


Lesenswert?

Chris B. schrieb:
> mmmhhhhh verständlich geschrieben?

nein! Dafür gab es früher mal Mathematik und solche Probleme zu 
beschreiben.

von MD5 (Gast)


Lesenswert?

Ich hab's jetzt 3x gelesen und immer noch nicht verstanden. Ich sehe da 
einen Code bestehend aus 12 ASCII Zeichen. Wo ist der "8 Byte Wert", und 
wo ist der "4 Byte Key"?

Weiss der TO überhaupt, was ein Hash ist und wozu man sowas braucht?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.