Sie erhalten eine verschlüsselte Zeichenfolge, die mit einer sehr einfachen Substitutionsverschlüsselung verschlüsselt wird.
Problem
Sie wissen nicht, was die Chiffre ist, aber Sie wissen, dass der Chiffretext Englisch ist und dass die häufigsten Buchstaben in Englisch etaoinshrdlucmfwypvbgkqjxz in dieser Reihenfolge sind. Die einzigen zulässigen Zeichen sind Großbuchstaben und Leerzeichen. Sie können eine grundlegende Analyse durchführen - ausgehend von einzelnen Buchstaben, aber Sie können auf eine komplexere Analyse mit mehreren Buchstaben migrieren. Beispielsweise folgt U fast immer Q, und nur bestimmte Buchstaben können zweimal hintereinander kommen.
Beispiele
clear : SUBMARINE TO ATTACK THE DOVER WAREHOUSE AND PORT ON TUESDAY SUNRISE
cipher: ZOQ DUPAEYSRYDSSDXVYSHEYNRBEUYLDUEHROZEYDANYKRUSYRAYSOEZNDMYZOAUPZE
clear : THE QUICK BROWN FOX BEING QUITE FAST JUMPED OVER THE LAZY DOG QUITE NICELY
cipher: TNAEPDHIGEMZQJLEVQBEMAHL EPDHTAEVXWTEODYUASEQKAZETNAERXFCESQ EPDHTAELHIARC
clear : BUFFALO BUFFALO BUFFALO BUFFALO BUFFALO BUFFALO BUFFALO
cipher: HV WRPDHV WRPDHV WRPDHV WRPDHV WRPDHV WRPDHV WRP
Herausforderungen
Überprüfen Sie, ob Sie den Text in jeder dieser Chiffren entschlüsseln können:
SVNXIFCXYCFSXKVVZXIHXHERDXEIYRAKXZCOFSWHCZXHERDXBNRHCXZR RONQHXORWECFHCUH
SOFPTGFIFBOKJPHLBFPKHZUGLSOJPLIPKBPKHZUGLSOJPMOLEOPWFSFGJLBFIPMOLEOPXULBSIPLBP
KBPBPWLIJFBILUBKHPGKISFG
TMBWFYAQFAZYCUOYJOBOHATMCYNIAOQW Q JAXOYCOCYCHAACOCYCAHGOVYLAOEGOTMBWFYAOBFF
ACOBHOKBZYKOYCHAUWBHAXOQW XITHJOV WOXWYLYCU
FTRMKRGVRFMHSZVRWHRSFMFLMBNGKMGTHGBRSMKROKLSHSZMHKMMMMMRVVLVMPRKKOZRMFVDSGOFRW
Ich habe die Substitutionsmatrizen und den Klartext für jede, aber ich werde sie nur offenbaren, wenn es zu schwierig wird oder jemand es nicht herausfindet.
Die Lösung, mit der die meisten Nachrichten erfolgreich entschlüsselt werden können, ist der Gewinner. Wenn zwei Lösungen gleich gut sind, werden sie durch Stimmenzahl entschieden.
quelle
Antworten:
Python
Ich habe alle geheimen Sätze herausgefunden, aber ich werde sie hier nicht posten. Führen Sie den Code aus, wenn Sie sich interessieren.
Der Code wählt ein Leerzeichen aus, listet alle möglichen Ersetzungen für jedes Wort auf und sucht dann nach kompatiblen Ersetzungen. Es erlaubt auch einige Wörter außerhalb des Lexikons, um Rechtschreibfehler im Klartext zu behandeln :)
Ich habe ein großes Lexikon (~ 500K Wörter) von http://wordlist.sourceforge.net/ verwendet .
quelle
PHP (unvollständig)
Dies ist eine unvollständige PHP-Lösung, die die Buchstabenhäufigkeitsinformationen in der Frage sowie ein Wörterbuch mit Wörtern verwendet, die mit regulären Ausdrücken auf der Grundlage der zuverlässigsten Buchstaben im angegebenen Wort übereinstimmen.
Derzeit ist das Wörterbuch recht klein, aber mit der entsprechenden Erweiterung gehe ich davon aus, dass sich die Ergebnisse verbessern werden. Ich habe die Möglichkeit von Teilübereinstimmungen in Betracht gezogen, aber mit dem aktuellen Wörterbuch führt dies eher zu einer Verschlechterung als zu einer Verbesserung der Ergebnisse.
Selbst mit dem aktuellen, kleinen Wörterbuch kann ich ziemlich sicher sagen, was die vierte Nachricht codiert.
quelle