Вам дается зашифрованная строка, зашифрованная с использованием очень простого шифра замещения.
проблема
Вы не знаете, что такое шифр, но знаете, что зашифрованный текст является английским, и что наиболее часто встречающиеся на английском языке буквы - это etaoinshrdlucmfwypvbgkqjxz в этом порядке. Единственными допустимыми символами являются заглавные буквы и пробелы. Вы можете выполнить базовый анализ - начиная с отдельных букв, но вы можете перейти к более сложному многосимвольному анализу - например, U почти всегда следует за Q, и только определенные буквы могут встречаться дважды подряд.
Примеры
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
проблемы
Посмотрите, сможете ли вы расшифровать текст в каждом из этих шифров:
SVNXIFCXYCFSXKVVZXIHXHERDXEIYRAKXZCOFSWHCZXHERDXBNRHCXZR RONQHXORWECFHCUH
SOFPTGFIFBOKJPHLBFPKHZUGLSOJPLIPKBPKHZUGLSOJPMOLEOPWFSFGJLBFIPMOLEOPXULBSIPLBP
KBPBPWLIJFBILUBKHPGKISFG
TMBWFYAQFAZYCUOYJOBOHATMCYNIAOQW Q JAXOYCOCYCHAACOCYCAHGOVYLAOEGOTMBWFYAOBFF
ACOBHOKBZYKOYCHAUWBHAXOQW XITHJOV WOXWYLYCU
FTRMKRGVRFMHSZVRWHRSFMFLMBNGKMGTHGBRSMKROKLSHSZMHKMMMMMRVVLVMPRKKOZRMFVDSGOFRW
У меня есть матрицы замены и открытый текст для каждого, но я покажу их, только если это станет слишком трудным или кто-то не поймет это.
Решение, которое может успешно расшифровать большинство сообщений, - победитель. Если два решения одинаково хороши, они будут решаться путем подсчета голосов.
источник
Ответы:
питон
Я разобрался со всеми секретными фразами, но я не буду размещать их здесь. Запустите код, если вам интересно.
Код работает, выбирая пробел, перечисляя все возможные замены для каждого слова, затем ища совместимые замены. Он также позволяет использовать некоторые слова, не входящие в лексикон, для написания орфографических ошибок в открытом тексте :)
Я использовал большой лексикон (~ 500 тыс. Слов) из http://wordlist.sourceforge.net/ .
источник
PHP (незавершенный)
Это неполное PHP-решение, которое работает с использованием информации о частоте букв в вопросе, а также словаря слов, сопоставленных с регулярными выражениями на основе самых надежных букв в данном слове.
В настоящее время словарь довольно мал, но с соответствующим расширением я ожидаю, что результаты улучшатся. Я рассмотрел возможность частичных совпадений, но с текущим словарем это приводит к ухудшению, а не улучшению результатов.
Даже с нынешним небольшим словарем, я думаю, я могу с уверенностью сказать, что кодирует четвертое сообщение.
источник