2016-08-01 4 views
1

Gegeben Chiffretext 7b5a4215415d544115415d5015455447414c155c46155f4058455c5b523f XOR-verknüpft mit 151515151515151515151515151515151515151515151515151515151515 bekommen bekomme ich 6e4f57005448415400544845005041525459004953004a554d50494e472a (keine Raketenwissenschaft hier).kann nicht die richtige Codierung nach der Entschlüsselung mit XOR-Chiffre

Jetzt versuche ich, diese hexadezimale Zeichenfolge zu einer normalen Zeichenfolge zu dekodieren - das Ergebnis sollte Now that the party is jumping\n sein. Leider ist es

irb(main):012:0> ["6e4f57005448415400544845005041525459004953004a554d50494e472a"].pack('H*') 
=> "nOW\x00THAT\x00THE\x00PARTY\x00IS\x00JUMPING*" 

Es nah genug für mich, es zu entziffern, aber auch schlimm genug schlecht ein englischer Brief Frequenz Auswerter gegeben zu punkten.

Für alle meine vorherigen Saiten habe ich [str].pack('H*') verwendet und es ging gut. Zum Beispiel

irb(main):004:0> ["54686520717569636b2062726f776e20666f78206a756d7073206f76657220746865206c617a7920646f672e"].pack('H*') 
=> "The quick brown fox jumps over the lazy dog." 

Ich vermute, der neue Datensatz hat einige seltsame Codierung, die ich nicht entziffern und handhaben kann.

Irgendwelche Rubin Ideen?

+0

Das ist ziemlich seltsam. Wie wurde der verschlüsselte Text produziert? Können Sie den Code teilen, den Sie für das XORing verwendet haben? –

+1

Cryptopals Herausforderung 4? Es ist nicht die Codierung, es gibt einen besseren Schlüssel - Sie müssen Ihre Englisch-Scoring-Verfahren verbessern. – matt

+0

Es ist kein Codierungsproblem, Ihre Zeichenfolge enthält NULL Bytes. '\ x00' ist ASCII für NULL. – DiegoSalazar

Antwort

3

Sie müssen wahrscheinlich nur Ihren Schlüsselstrom (und daher Chiffretext) mit 0x20 XOR. Das wird Großbuchstaben in Kleinbuchstaben und Nullen in Leerzeichen (0x20).

Also der Schlüssel ist 0x35 statt 0x15.