Encryptme

Ich habe mir mal gedacht bei den ganzen Hack & Crackme's könnte man auch mal was entschlüsseln:
Code:
(:11_;*_;6<7_5:+%+_9->8,+_0=_2:61:_<>/,30<4+>,+:_4>/*++_6,+_*1;_(>-*2_6<7_61_+:3:8->22,+&3:_,<7-:6=:_4022>_4>11_6<7_;6<7_=:-*768:1_,+0/_1:61_2:61:_+>,+:-+*-_6,+_)0334022:1_61_0-;1*18_*1;_2>1_4>11_1*-_;:1_):-,<73*:,,:3+:1_+:'+_)01_8-0,,=*<7,+>=:1_:618:-2>,,:1_3:,:1
Ich bin echt gespannt ob es einer schafft und wie lange der so braucht. Währe nett wenn ihr auch mal kurz den Lösungsweg erklärt.
 
bei dem "fertigen" Text kann man nicht mehr zwischen Groß und Kleinschreibung unterscheiden ;)
 
Kann man wohl nur hätte ich auch Kleinschreibung verwendet währen da Zeichen raus gekommen, die kein Mensch angezeigt bekommt.
Da hier irgendwie keiner lösen will:
Mein Skript wandelt die Zeichen in Ascii code um und macht dann eine Bitweise XOR mit 127. Auf gut Deutsch alle 1 werden durch 0 ersetzt und andersrum.
Wer es mal sehen will:
Code:
#Dieses Programm steht unter einer Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz. Weitere informationen im Steinhagetvollblog                                                                                                                                              
text = "7>330_/:+:-"
asciiz = 0
asciin = 0
crypted = ""
for buchstaben in text:
    #Buchstaben in ascii-code umwandeln:                                                                                                                     
    asciiz = ord(buchstaben)
    #Das ist ein Binaere XOR-Verkuenpfung mit 127, im 2er System 1111111, dadurch werden alle 1 durch 0 ersetzt und andersrum                                
    asciin = asciiz^127
    crypted += chr(asciin)
print crypted
 
Da hier irgendwie keiner lösen will:
3 Tage sind eigentlich gar nicht soo viel ;)
da die Zeichen relativ "gleichhäufig" vorkommen, habe ich erstmal auf etwas "Cäsarartiges" getippt - also XOR/ADD. Und da ich sonst keinen Schimmer in Cryptoanalyse habe, einfach gebruteforced. Damit ich nicht alle 512 mögliche Lösungen sichten muss, noch eine Zusatzroutine geschrieben, die den Sonderzeichengehalt in der Lösung berechnet und nur Lösungen unter einem gewissen Schwellwert ausgibt:
SICStus Prolog
Code:
:-use_module(library(lists)).
crypted("(:11_;*_;6<7_5:+%+_9->8,+_0=_2:61:_<>/,30<4+>,+:_4>/*++_6,+_*1;_(>-*2_6<7_61_+:3:8->22,+&3:_,<7-:6=:_4022>_4>11_6<7_;6<7_=:-*768:1_,+0/_1:61_2:61:_+>,+:-+*-_6,+_)0334022:1_61_0-;1*18_*1;_2>1_4>11_1*-_;:1_):-,<73*:,,:3+:1_+:'+_)01_8-0,,=*<7,+>=:1_:618:-2>,,:1_3:,:1").

operator(Op,X,Y):-Y is X\Op.  %Siscstus XOR
%operator(Op,X,Y):-Y is X+Op.

op_list(Op,Result):-crypted(List),maplist(operator(Op),List,Result).

char(C,0):- C>="0",C=<"9";C>="a",C=<"z";C>="A",C=<"Z",!. 
char(_,1).

stats(List,Badchars):- maplist(char,List,Statlist),
        sumlist(Statlist,Bad),length(List,Len),Badchars is Bad/Len.

encrypt(End,End).
encrypt(Count,End):-Count<End,op_list(Count,Result),
        stats(Result,Bad), (Bad<0.15,format('Key:~d, ~s\n',[Count,Result]);true) ,
        NCount is Count+1,encrypt(NCount,End).
mit etwas rumprobieren findet man heraus, dass der Schwellwert 15% (Bad<0.15) betragen sollte, damit man weder von Lösungsmöglichkeiten erschlagen und noch die eigentliche Lösung angezeigt bekommt.
Ausgabe:
Code:
?- encrypt(1,255).
Key:95 wenn_du_dich_jetzt_fragst_ob_meine_capslocktaste_kaputt_ist_und_warum_ich_in_telegrammstyle_schreibe_komma_kann_ich_dich_beruhigen_stop_nein_meine_tastertur_ist_vollkommen_in_ordnung_und_man_kann_nur_den_verschluesselten_text_von_grossbuchstaben_eingermassen_lesen
Key:104, @RYY7SB7S^T_7]RCMC7QEVPDC7XU7ZR^YR7TVGD[XT\CVDCR7\VGBCC7^DC7BYS7@VEBZ7^T_7^Y7CR[RPEVZZDCN[R7DT_ER^UR7\XZZV7\VYY7^T_7S^T_7UREB_^PRY7DCXG7YR^Y7ZR^YR7CVDCRECBE7^DC7AX[[\XZZRY7^Y7XESYBYP7BYS7ZVY7\VYY7YBE7SRY7AREDT_[BRDDR[CRY7CROC7AXY7PEXDDUBT_DCVURY7R^YPREZVDDRY7[RDRY
Key:127, WENN DU DICH JETZT FRAGST OB MEINE CAPSLOCKTASTE KAPUTT IST UND WARUM ICH IN TELEGRAMMSTYLE SCHREIBE KOMMA KANN ICH DICH BERUHIGEN STOP NEIN MEINE TASTERTUR IST VOLLKOMMEN IN ORDNUNG UND MAN KANN NUR DEN VERSCHLUESSELTEN TEXT VON GROSSBUCHSTABEN EINGERMASSEN LESEN
yes
| ?-
 
Nicht schlecht. Habe leider erst später gesehen, dass das eine bekannte Verschlüsselungsmethode ist.
 
Zurück
Oben