Представьте, граждане Котоимпериума – на вас идёт войной не кто-нибудь, а сам Гай Юлий Цезарь и его легионы. Хотите ли вы повторить судьбу галльских племён? Вопрос, полагаю, риторический – значит, вам придется упорно и организованно сопротивляться. И лучшее, что вы можете сделать, когда на вашу землю придёт жадный римский диктатор – это перехватывать его гонцов и узнавать его планы… ага, вот, собственно, ваша конница уже у одного отобрала бумажку. Давайте посмотрим, что тут написано…
…бред какой-то! ШЪХ ЫЬФЦЛУ ЯМФНЛЮЗ ТРГЗ ОЯЭРХ ЩР ЕЛПФЮЗ… чего, нахрен, спросите вы? Во-первых, зачем Цезарь на русском пишет? Его автор заметки, что ли, подговорил, чтобы рассказывать удобнее было? Во-вторых, он что, с дуба рухнул, что это за бред вместо слов? Спокойно, товарищи по антиримскому сопротивлению. Хитрый Гай Юлий просто использует шифр, который даже называется его именем.
Работает это крайне просто – каждую букву мы сдвигаем на несколько позиций вперед по алфавиту. Если мы встречаем букву, которая и так уже в конце алфавита – мысленно подставляем в конец ещё несколько букв из начала. Например, если мы сдвигаем на три буквы (не посылаем на три буквы, это разные математические операции) – то Э превратится в А, Ю в Б, а Я в В. Как это работает, можно увидеть на рисунке 2. Правда, тут, похоже, при сдвиге на три всё равно получается бред – значит, можно просто перебрать все возможные значения сдвига, и одно из них даст нам подходящий результат.
(подсказка для любопытных: текст большими буквами выше сдвинут на 12 позиций)
Однако хитрый римский диктатор ведь может зашифровать своё сообщение ещё хитрее! Вместо того, чтобы бездумно двигать буквы по алфавиту, он может назначить каждой из них другую в соответствие в случайном порядке и заменить таким образом. Вот, например, так, как на третьей картинке (нижняя строка). Такой шифр называется одноалфавитной подстановкой – подстановкой потому, что мы представляем одни буквы вместо других, одноалфавитной – потому что весь текст целиком шифруется по одной и той же таблице (алфавиту).
Что с этой мерзостью делать? А вот что: к счастью, в любом достаточно большом осмысленном тексте, написанном на некотором языке, частота появления каждой буквы примерно совпадает с частотой появления этой же буквы в других текстах на том же языке. Почему так получается – разговор отдельный, он касается математики и про него, возможно, будет отдельная заметка когда-нибудь потом. Таблица же частот букв в русском есть для интересующихся на рисунке 4.
Например, в русском самая частая буква, с довольно большим отрывом – О, а значит, та буква, которая чаще всего встречается в зашифрованном тексте – должно быть, соответствует О. Следующая по частоте – Е, далее – А, далее – И, и, наконец, на пятом месте появляется первая согласная – Н. Конечно, над этим придётся поработать – особенно в случае коротких сообщений, где распределение букв может быть сильно смещено, однако в принципе за пару часов задача взлома одноалфавитного шифра решается спокойно.
Итак, сегодня мы посмотрели на одноалфавитные шифры и на то, что вообще-то взломать их и узнать планы подлого Цезаря не так и сложно. Если вы хотите увидеть продолжение с более сложными шифрами или раскрытие какой-то специфической близкой темы – пишите в комментарии.
Не пускайте к себе Цезаря, граждане Котоимпериума. ГЕЗ, ЧЗОЛФ НГХЦФ.
🎓 CatScience 🎓
#Михайлов
#математика
#криптография
Post #1337
2.21K




- 👏 36
- ❤ 19
- 👍 8
- 🔥 2