| Moderator
Registriert seit: 20.07.05 Likes: 198 | Zitat: |
Da hier irgendwie keiner lösen will:
| 3 Tage sind eigentlich gar nicht soo viel mögliche Lösung
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
| ?-
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt. |