Caesar Decoder

  • Moin,

    Vom Geheimdienst inspiriert habe ich einen Caesar Decoder geschrieben.
    Er funktioniert zurzeit nur mit Deutscher Sprache und arbeitet relativ zuverlässig. (Man kann beliebige Sprachen per Wörterbuch integrieren)

    Die Funktionsweise ist relativ einfach. Da es nur 25 Möglichkeiten der Verschiebung gibt werden alle 25 Erzeugt und anschließend überprüft in welcher Version die meiste Sprache gefunden werden kann. Diese Version ist dann wahrscheinlich die Lösung. Eine Garantie für Funktionalität gibt es natürlich nicht, und wer Dialekt, oder seltsame Wörter verwendet kann den Decoder damit austricksen. (Ihm fehlt dann das entsprechende Wörterbuch).

    Viel Spaß damit, und Spioniert bitte unbescholtene Bürger aus ;)
    14.07.13: Aufgeräumte Version mit 2 Wörterbüchern. Nur wenn das kleine zu keinem Ergebnis kommt wird das Große verwendet. -> Spart einiges an Zeit.

    Skript
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aTime[4]

    [/autoit] [autoit][/autoit] [autoit]

    Global $aDeutschGr = StringSplit('MINISTERPRÄSIDENT,INTERNATIONALEN,BUNDESREGIERUNG,AMERIKANISCHEN,BEISPIELSWEISE,ÖFFENTLICHKEIT,ZUSAMMENARBEIT,BUNDESREPUBLIK,INFORMATIONEN,UNTERSTÜTZUNG,ARBEITSPLÄTZE,AMERIKANISCHE,UNTER ANDEREM,VERHANDLUNGEN,VERGANGENHEIT,VERSCHIEDENEN,FRANZÖSISCHEN,BÜRGERMEISTER,GESELLSCHAFT,IMMER WIEDER,MITTLERWEILE,ENTSCHEIDUNG,EUROPÄISCHEN,GLEICHZEITIG,ZUSAMMENHANG,ÖFFENTLICHEN,INSBESONDERE,ZUM BEISPIEL,UNIVERSITÄT,SCHLIEßLICH,FRANKFURTER,MITARBEITER,BEVÖLKERUNG,POLITISCHEN,VERGANGENEN,TATSÄCHLICH,STUTTGARTER,MÖGLICHKEIT,ENTWICKLUNG,SOGENANNTEN,PRÄSIDENTEN,ENTSCHIEDEN,VORSITZENDE,DEUTSCHLAND,ENTSCHEIDEN,AUSSTELLUNG,UNTERNEHMEN,MANNSCHAFT,HAUPTSTADT,WOCHENENDE,DISKUSSION,ANGESICHTS,INZWISCHEN,JEDENFALLS,FRANKREICH,MITGLIEDER,MILLIARDEN,ALLERDINGS,POLITISCHE,ÜBERNEHMEN,ENTWICKELT,PRODUKTION,EHEMALIGEN,BERICHTETE,DONNERSTAG,VERHINDERN,EIGENTLICH,GESCHICHTE,BEZEICHNET,VIELLEICHT,SICHERHEIT,MINDESTENS,RUSSISCHEN,WIRTSCHAFT,SEPTEMBER,VERGLEICH,VERTRETER,HAMBURGER,VERFAHREN,KILOMETER,GEPLANTEN,POLITIKER,BEDEUTUNG,GEMEINSAM,EINZELNEN,GEGENÜBER,ZUMINDEST,BERICHTET,ERREICHEN,REGIERUNG,INTERESSE,INSGESAMT,LEDIGLICH,DEUTSCHEN,EBENFALLS,PRÄSIDENT,WEITERHIN,NATÜRLICH,VOR ALLEM,INNERHALB,STUTTGART,EHEMALIGE,KOALITION,FRANKFURT,ZUSCHAUER,KOMMENDEN,VERFÜGUNG,BESONDERS,INDUSTRIE,SITUATION,VERWENDET,NICHT NUR,STUDENTEN,MILLIONEN,PARLAMENT,VERLASSEN,ÜBERHAUPT,PROBLEME,DURCHAUS,RICHTUNG,GENOMMEN,AUßERDEM,GLEICHEN,SOLDATEN,KOLLEGEN,GESPRÄCH,PERSONEN,DEZEMBER,ERSTMALS,GEBRACHT,SPRECHER,WEITEREN,DEUTLICH,GEWORDEN,GESTELLT,MITTWOCH,NOVEMBER,BEKOMMEN,WIRKLICH,GEKOMMEN,ERREICHT,DIENSTAG,MÜNCHNER,ERGEBNIS,BERLINER,NÄCHSTEN,ARBEITEN,PROGRAMM,SCHAFFEN,INTERNET,VERLOREN,DEUTSCHE,OFFENBAR,ERHALTEN,ZUSAMMEN,ZUNÄCHST,GEFUNDEN,VERSUCHT,MEHRHEIT,ERWARTET,ERKLÄRTE,NEW YORK,WELTWEIT,MENSCHEN,VERLETZT,HEUTIGEN,POSITION,DARUNTER,PARTEIEN,BESUCHER,IMMERHIN,PUBLIKUM,SPRECHEN,ERWARTEN,BEISPIEL,FORDERTE,GESCHÄFT,EXPERTEN,AUFGRUND,FUNKTION,GESAMTEN,VERKAUFT,MINISTER,GEWINNEN,JÄHRLICH,BEDEUTET,BEHÖRDEN,ZWISCHEN,HINGEGEN,FRÜHEREN,ZUGLEICH,FREILICH,MEISTEN,SONNTAG,ZWEITEN,STIMMEN,GEHÖREN,PROZENT,TRAINER,GRÖßTEN,EINFACH,POLITIK,FEBRUAR,AUSLAND,GESETZT,KÖNNTEN,RECHNEN,KINDERN,GERICHT,WOLLTEN,DRITTEN,MÖGLICH,DAGEGEN,ZULETZT,SOLLTEN,TOCHTER,FORDERT,FREITAG,VORJAHR,BLEIBEN,DERZEIT,STAATEN,THEATER,BESTEHT,KONNTEN,GENANNT,CHANCEN,OHNEHIN,STÄRKER,SCHNELL,KÜNFTIG,AUFTRAG,ZUKUNFT,SCHEINT,NÄMLICH,BEREICH,HAMBURG,FAMILIE,LÄNDERN,STELLEN,MEHRERE,OKTOBER,GEGEBEN,WICHTIG,STUNDEN,FÜHRUNG,ANDERES,SPIELEN,JEWEILS,EINIGEN,SCHÜLER,DARÜBER,PROBLEM,ERKLÄRT,NACHDEM,DRITTEL,KLEINEN,MONATEN,BRINGEN,BEKANNT,GESAMTE,BISLANG,MINUTEN,BETONTE,KONZEPT,SAMSTAG,WENIGEN,GEWESEN,GESEHEN,WENIGER,SONDERN,EINSATZ,ANGABEN,DADURCH,RICHTIG,STELLTE,RICHTER,GEFÜHRT,ERZÄHLT,MÜNCHEN,SOLCHEN,ENDLICH,POLIZEI,SCHRITT,BRAUCHT,SPIELER,GESTERN,SPRACHE,MEINUNG,WEITERE,EIGENEN,ANSICHT,LETZTEN,ZUFOLGE,EINZIGE,BEGINNT,GEMACHT,MÄDCHEN,RUßLAND,BEREITS,HANDELT,PROJEKT,BERICHT,WÄHREND,ANGEBOT,ANDEREN,AUFGABE,DENNOCH,GEPLANT,SPRICHT,DESHALB,ANDERER,NIEMAND,UNSERER,ITALIEN,ZAHLEN,SAISON,ANDERS,HINAUS,SCHULE,VÖLLIG,GEWALT,SUCHEN,AUGUST,UNSERE,KULTUR,SOWOHL,MEINTE,LÖSUNG,URTEIL,BRINGT,FÜHREN,SICHER,GESAGT,MEDIEN,SOMMER,DANACH,BILDER,HELFEN,FOLGEN,SCHWER,FIRMEN,HANDEL,VORBEI,SPRACH,REGION,PUNKTE,KUNDEN,KLEINE,LEICHT,LÄNDER,STUNDE,TRAGEN,GEFAHR,ZEIGTE,BEGANN,GANZEN,LANGEN,HÄUFIG,STREIT,KRITIK,TEILTE,RAHMEN,BANKEN,LANDES,SETZEN,ANTEIL,FRÜHER,ZWEITE,KIRCHE,GESETZ,AKTIEN,BAYERN,ÄNDERN,LEITER,BEREIT,LONDON,MONATE,MUTTER,STRAßE,MENSCH,BONNER,GROßER,WENIGE,LETZTE,HÄLFTE,WESTEN,HERAUS,WASSER,SPIELT,OBWOHL,ZIEHEN,MITTEL,GRÖßTE,ERNEUT,KEINER,SOFORT,BIETEN,ELTERN,LÄNGST,BREMEN,UMSATZ,ZEITEN,MOSKAU,DÜRFEN,WELCHE,MÜßTEN,MUßTEN,DÜRFTE,ZEIGEN,BESTEN,FRAGEN,SEITEN,MÖCHTE,GELTEN,VEREIN,CHANCE,WÄHLEN,MACHTE,BEGINN,JUNGEN,BÜRGER,STELLE,DIREKT,BIETET,ERSTEN,BISHER,DOLLAR,MÜSSEN,DAMALS,SELBST,WOCHEN,SEINEM,JAHRES,VIELEN,SOLLTE,JEDOCH,SOLLEN,DIESEM,SOLCHE,NEHMEN,BESSER,STEHEN,WÜRDEN,WURDEN,KONNTE,FINDEN,SEINEN,FRAUEN,GLE' & _
    'ICH,HALTEN,GEHÖRT,EINMAL,DIESEN,EINIGE,WEITER,BEIDEN,KOMMEN,HÄTTEN,SEINES,AUTOIT,KÖNNTE,EUROPA,NICHTS,MONTAG,BERLIN,ALLEIN,JANUAR,WOLLEN,HINTER,ANFANG,HATTEN,ANDERE,GROßEN,DIESES,PARTEI,MACHEN,LASSEN,GRUPPE,LIEGEN,BLEIBT,STELLT,KÖNNEN,ERFOLG,KOSTEN,GRÜNEN,FINDET,WERDEN,EBENSO,DARAUF,SPÄTER,GERADE,MÄNNER,SIEBEN,EIGENE,ARBEIT,KINDER,SEINER,DESSEN,ZURÜCK,SYSTEM,WORDEN,WISSEN,WOLLTE,DIESER,WIEDER,KEINEN,JAHREN,HEIßT,SEHEN,DARIN,MEIST,MACHT,KAMEN,ALLEN,KOMMT,DENEN,DAFÜR,DRUCK,MEINE,ZUDEM,BLICK,WÜRDE,KREIS,SOGAR,ERSTE,FRAGE,IHNEN,WEDER,LEBEN,DEREN,NEUER,SOLLE,AUGEN,GUTEN,SIEHT,IHREM,GROßE,LIEGT,KAMPF,DAVON,HÄTTE,GEBEN,STETS,OFFEN,BÜHNE,UNTER,GEGEN,SCHON,SEINE,EINES,LIEBE,KEINE,WARUM,FÄLLT,SICHT,WÄREN,DIESE,LÄUFT,BÖRSE,INDEM,ROMAN,NICHT,EINST,DARUM,REIHE,EINER,WURDE,HATTE,JAPAN,DURCH,EINEM,EINEN,HABEN,HAUSE,STEHT,DABEI,ABEND,BODEN,STADT,SOWIE,WEGEN,ALLES,ANGST,NEUES,VIELE,ETWAS,OSTEN,FOLGE,WERDE,JETZT,WAREN,JAHRE,JEDES,CHINA,IMMER,SAGTE,NEUEN,PETER,BEVOR,SEIEN,IHREN,DAMIT,IHRER,HEUTE,STAND,SONST,NACHT,MÜSSE,GRUND,NEBEN,SPIEL,NAMEN,BLIEB,SEITE,WOCHE,NIMMT,SACHE,MARKT,STÜCK,ALTEN,JUNGE,METER,MUSIK,ZUVOR,TITEL,PLATZ,FIRMA,HOHEN,MITTE,STATT,PARIS,KRIEG,KUNST,JEDER,BEIDE,TROTZ,APRIL,OPFER,THEMA,DATEN,JEDEN,FÜHRT,WENIG,LANGE,IHRES,HILFE,GENAU,MEINT,KNAPP,STAAT,RECHT,KÖNNE,PREIS,DAHER,ALLER,JEDEM,TAGEN,MUßTE,ZWÖLF,GEHEN,SECHS,ZEIGT,GANZE,DARAN,SETZT,SAGEN,ROLLE,WOLLE,STARK,GENUG,LEUTE,VATER,WEISE,OHNE,HAUS,KIND,AUTO,KÖLN,SAGT,RUND,WIRD,DARF,HÖHE,ENDE,ZEIT,HIEß,PAAR,SIND,ETWA,WEIL,EURO,FEST,LIEß,SOHN,HAND,IDEE,WILL,ALTE,JEDE,GIBT,ALLE,GMBH,Z.B.,LANG,FORM,JAHR,ZWEI,MÄRZ,ODER,GUTE,ABER,HERR,JUNI,NEUE,TAGE,DREI,BUCH,SOLL,REDE,NOCH,ÜBER,LAUT,BANK,KURZ,FILM,OBEN,FELD,BEIM,DOCH,SEIT,NAHM,MEHR,WELT,EBEN,ALSO,GILT,SICH,NEUN,LAND,ZEHN,GROß,BONN,FRAU,WERK,ZWAR,MANN,WEIß,GEBE,DAZU,KANN,KAUM,KOPF,DASS,WORT,MICH,GELD,WOHL,NÄHE,LÄßT,SIEG,JULI,RAUM,DIES,WAHL,HOCH,TEIL,FALL,SEIN,FÜNF,KLAR,HÄLT,WEIT,LAGE,DANN,IHRE,EHER,FAND,ZAHL,BALD,GEHT,SEHR,NACH,ZIEL,HIER,GING,KEIN,GANZ,ERST,MARK,HABE,EINE,VIER,LUFT,VIEL,WÄRE,FAST,DORT,WENN,FREI,CHEF,DENN,HOHE,BILD,WERT,ACHT,AUCH,BIS,ZUR,AUF,DES,MIT,FÜR,EIN,DEM,IST,UND,DIE,DER,DEN,DAS,SAH,VON,ALS,MIO,MRD,WIE,ZUM,VOR,NUR,WAR,AUS,NEU,ALT,HAT,BEI,SIE,DAß,MAN,USA,CDU,PER,DDR,BZW,OFT,IHN,MAG,IHM,WEG,UNS,INS,TOD,SPD,PRO,AMT,NIE,ART,LAG,FDP,TAG,DPA,GUT,BAU,UHR,KAM,TUN,DR.,GAR,WAS,BIN,SEI,CSU,ICH,WIR,VOM,MUß,MIR,NUN,GAB,HIN,ORT,MAL,HER,WER,MAI,IHR,JA,ZU,IN,AM,AB,EU,UM,DM,AG,DA,SO,WO,ES,DU,IM,OB,JE,AN,ER', ',', 2)
    Global $aDeutschKl = StringSplit('MILLIONEN,ZWISCHEN,PROZENT,WIEDER,KÖNNEN,DIESER,WERDEN,JAHREN,WORDEN,SEINER,SEINE,EINER,EINES,HABEN,SCHON,UNTER,EINEN,GEGEN,EINEM,KEINE,DIESE,DURCH,WURDE,IMMER,SAGTE,HATTE,NICHT,SIND,NOCH,SEIN,ODER,ABER,KANN,ÜBER,MEHR,EINE,AUCH,SOLL,JAHR,WILL,SICH,ZWEI,NACH,MARK,WIRD,WENN,HABE,DANN,IHRE,UHR,VOM,WAS,ICH,SEI,WIR,VON,ALS,EIN,HAT,AUS,DEN,DEM,DES,MIT,DAS,IST,FÜR,AUF,DAß,NUR,WAR,ZUM,VOR,MAN,BIS,ZUR,UND,BEI,SIE,DIE,DER,WIE,IN,ZU,UM,AM,SO,ER,IM,ES,AN', ',', 2)
    Global $sText = 'Hiermit erkläre ich sie zu Mann und Computer. Sie dürfen die Braut jetzt booten.'
    Global $sCaesar
    Global $sDeCesar

    [/autoit] [autoit][/autoit] [autoit]

    $aTime[0] = TimerInit()
    $sCaesar = _Caesar($sText, Random(1, 25, 1))
    $aTime[0] = TimerDiff($aTime[0])
    $aTime[1] = TimerInit()
    $sDeCesar = _DeCesar($sCaesar)
    $aTime[1] = TimerDiff($aTime[1])

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3 Step 1
    $aTime[$i] = Round($aTime[$i]/StringLen($sText), 3) * 1000
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite('Original : ' & $sText & @CRLF & 'Caesar ['&$aTime[0]&'µs/Char] : ' & $sCaesar & @CRLF & 'DeCesar ['&$aTime[1]&'µs/Char]: ' & $sDeCesar & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetText()
    Local $a = _ArrayUnique(StringSplit(StringUpper(StringReplace(ClipGet(), @CR, ',', 0, 1)),@LF, 2))
    _ArrayDelete($a, 0)
    For $i = UBound($a) - 1 To 0 Step -1
    If Not $a[$i] Then _ArrayDelete($a, $i)
    Next
    Local $b[UBound($a)][2]
    For $i = 0 To UBound($a) - 1 Step 1
    $b[$i][0] = $a[$i]
    $b[$i][1] = StringLen($a[$i])
    Next
    _ArraySort($b, 1, 0, 0, 1)
    Local $s
    For $i = 0 To UBound($b) - 1 Step 1
    $s &= $b[$i][0]
    Next
    ClipPut($s)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DeCesar($s)
    Local $aLen[25][2], $w = StringLeft($s, 25 + Int(StringLen($s) ^ 0.5))
    For $i = 1 To 25 Step 1
    $aLen[$i - 1][0] = _WortbuchKl(_Caesar($w, $i))
    $aLen[$i - 1][1] = $i
    Next
    _ArraySort($aLen)
    If $aLen[0][0]/$aLen[1][0] > 0.8 Then ; Wenn der beste Treffer nur 20%
    For $i = 1 To 25 Step 1 ; besser ist als der 2te -> Größeres Wörterbuch
    $aLen[$i - 1][0] = _WortbuchGr(_Caesar($w, $i))
    $aLen[$i - 1][1] = $i
    Next
    _ArraySort($aLen)
    EndIf
    Return _Caesar($s, $aLen[0][1])
    EndFunc ;==>_DeCesar

    [/autoit] [autoit][/autoit] [autoit]

    Func _Caesar($s, $n)
    Local Static $z = StringSplit('ABCDEFGHIJKLMNOPQRSTUVWXYZ', '', 2)
    Local $sRet, $c
    $n -= Int($n / 26) * 26
    $s = StringUpper($s)
    For $i = 1 To StringLen($s) Step 1
    $c = Asc(StringMid($s, $i, 1))
    Switch $c
    Case 65 To 90
    $c += $n
    If $c > 90 Then $c -= 26
    EndSwitch
    $sRet &= Chr($c)
    Next
    Return $sRet
    EndFunc ;==>_Caesar

    [/autoit] [autoit][/autoit] [autoit]

    Func _WortbuchGr($s)
    Local Static $u = UBound($aDeutschGr) - 1
    For $i = 0 To $u Step 1
    $s = StringReplace($s, $aDeutschGr[$i], '', 0, 1)
    Next
    Return StringLen($s)
    EndFunc ;==>_WortbuchGr

    [/autoit] [autoit][/autoit] [autoit]

    Func _WortbuchKl($s)
    Local Static $u = UBound($aDeutschKl) - 1
    For $i = 0 To $u Step 1
    $s = StringReplace($s, $aDeutschKl[$i], '', 0, 1)
    Next
    Return StringLen($s)
    EndFunc ;==>_WortbuchKl

    [/autoit]

    lg
    Mars

    • Offizieller Beitrag

    Da die Cäsar-Verschlüsselung lediglich eine Verschiebung um "n" Stellen im ASCII-Code beinhaltet, ist die einfachste Methode der Dekodierung die über die Häufigkeitsverteilung der Buchstaben.
    Du nimmst einen beliebigen Text und erstellst ein Häufigkeitsprofil der Buchstaben. Dann machst Du das Gleiche mit dem verschlüsselten Text.
    Der häufigste Buchstabe in deutschen Texten ist das "e". Wenn Du das im verschlüsselten Text findest, hast Du schon die Schrittweite. ;)

  • edO öknamr onetnn eretiewniech hafreVs dnewnaner ne!

  • Hab jetzt ne halbe Stunde gerätselt.
    Stimmen wenigstens die Leerzeichen ?
    Eine Permutationsanalyse warf mir zwar ne Menge schöner Wörter aus, aber ich weiß ja nicht welche stimmen. Die gezielte Suche nach Wortlängen, oder Anfangsbuchstaben (V und O) macht das schon leichter.
    Bisher kam aber noch nichts dabei heraus.
    Was für einen Algorithmus hast du venn verwendet ?
    Ist jedenfalls keine einfache Caesar Verschlüsselung !

  • Das ist so ziemlich die einfachste "Geheimschrift" ever...wenn man weiss, wie man sie lesen muss :rofl:
    So haben wir früher in der Schule (>>30 Jahre her) per Zettelchen kommuniziert...

    Tja, auch für SMS könnte man das brauchen, müsste nur was fürs Schreiben her, LESEN kann man das nämlich "on the fly" :D (da ist rein GARNICHTS verschlüsselt)

  • Ihr wollt mich veräppeln! 8|
    Oder ihr denkt viel zu kompliziert....