Роман Душкин - Математика и криптография : тайны шифров и логическое мышление
- Название:Математика и криптография : тайны шифров и логическое мышление
- Автор:
- Жанр:
- Издательство:АСТ
- Год:2018
- ISBN:978-5-17-096808-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Душкин - Математика и криптография : тайны шифров и логическое мышление краткое содержание
У тебя есть уникальная возможность познакомиться с реальным миром тайных агентов и спецслужб, ведь все методы шифрования, описанные в книге, используются до сих пор! А вдруг ты сможешь создать свой уникальный метод шифровки?
Математика и криптография : тайны шифров и логическое мышление - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Как происходит такое шифрование? У двух людей, которые желают обмениваться секретными данными этим абсолютно надёжным способом, должны быть специальные одинаковые блокноты с ключами. На каждой странице такого блокнота написаны случайные символы. Когда первый человек посылает второму секретное сообщение, он зашифровывает его при помощи ключа на первой странице блокнота. Второй человек, получив сообщение, расшифровывает его при помощи такого же ключа на первой странице его блокнота. После этого и первый и второй вырывают первую страницу блокнота и уничтожают её (лучше всего сжечь и смешать пепел; если просто выкинуть страницу с ключом в мусорное ведро, то она может быть найдена зловредным криптоаналитиком, и тогда всё пропало). Далее всё повторяется. Каждый раз после использования ключа с очередной страницы эта страница уничтожается. Потому-то метод и называется одноразовым блокнотом .
Теперь ты знаешь, как расшифровать ту шифрограмму, которая пришла в письме на этой неделе. Поищи, у тебя должен быть ключ, который передан тебе заранее.
Теперь я расскажу тебе, почему этот способ шифрования не используется так широко. Если ты подумаешь, то поймёшь, что проблема заключается в передаче ключа. Одноразовый ключ должен быть заранее создан и получен теми двумя лицами, которые должны обмениваться секретной информацией. Это сделать не так сложно, если их действительно всего двое. А представь, к примеру, штаб, которому необходимо обмениваться секретной информацией с сотнями разведчиков по всему миру. Одноразовые блокноты не должны повторяться у разных людей. То есть для каждого разведчика надо создать свой блокнот, как-то передать его, а потом время от времени обновлять, когда блокнот заканчивается. Это связано с очень большими расходами и риском раскрыть свою агентурную сеть.
Передавать же секретный ключ по открытым каналам связи, как ты понимаешь, нельзя. Это должна быть надёжная передача, а пока не придумали ничего надёжнее, чем передача из рук в руки. Впрочем, существует метод скрытой передачи по открытому каналу. Но он связан с серьёзной математикой, и его описание выходит за рамки этой книги. К тому же он всё равно остаётся довольно громоздким и проблематичным. Так что мы изучим его в другой раз. Но и этот метод полностью не решает проблемы распределения ключей (запомни, кстати, этот термин).
Но возможно, ты можешь передать секретные ключи одному или нескольким своим коллегам по секретной переписке. Тогда я сейчас научу тебя генерировать такие ключи. И ты поймёшь, что это тоже непросто и связано с большим расходом времени и сил.
Вспомни, как мы научились кодировать все буквы алфавита при помощи пяти двоичных цифр (нулей и единиц). Для каждой буквы нужно пять двоичных цифр, то есть пять бит информации. Как получить случайные пять бит? Да очень просто. Для этого надо воспользоваться пятью монетками. Возьми пять монет разного достоинства (чтобы различать их): 10 копеек, 50 копеек, 1 рубль, 2 рубля и 5 рублей (или какие-то еще). Орёл обозначает 0, решка обозначает 1. Брось пять монет и запиши результат по порядку от 10 копеек до 5 рублей. Таким способом ты получишь один символ. Если все монеты выпадут орлом (это соответствует 00000, то есть пробел), то не используй этот символ.
Таким способом ты сможешь сгенерировать ключ произвольной длины. Его надо записать в двух экземплярах, один оставить у себя, а второй передать тому, с кем ты собираешься вести секретную переписку. Конечно, твой друг должен быть обучен методу использования одноразового блокнота.
На этом наше путешествие в мир криптографии и криптоаналитики заканчивается. Но я затрону ещё две интересные темы, которые останутся тебе в качестве домашнего задания (про них не будет знать тот, с кем ты переписывался всё лето). А в самом конце книги я перечислю, что интересного можно почитать на тему криптографии, если ты заинтересовался этой областью прикладной науки.
Домашнее задание 1. Шифр подстановки для пар символов
Вот тебе первое домашнее задание. Придумай шифр «одноалфавитной» подстановки, но не как обычно, для каждой буквы, а по одному символу для пары букв. Возьми уже знакомый алфавит из тридцати двух символов и составь таблицу размером 32 × 32. Строки и столбцы таблицы обозначь символами нашего алфавита. А в каждой ячейке придумай замену паре символов в виде какого-нибудь экзотического знака.
Использовать такой шифр будет просто. Весь открытый текст разбивается на пары символов. Например, пусть надо зашифровать текст «СЕГОДНЯ Я ДОДЕЛАЮ ЭТО ДЕЛО». Разбиение на пары символов происходит следующим образом: «СЕ-ГО-ДН-Я_-Я_-ДО-ДЕ-ЛА-Ю_-ЭТ-О_-ДЕ-ЛО». Каждой паре символов соответствует один символ замены из твоей таблицы.
Выбирать символ замены надо по строке и столбцу. Первая буква в паре соответствует столбцу, а вторая — строке. Соответственно, в шифрограмме будет в два раза меньше символов, чем в открытом тексте, а разнообразие символов будет больше.
Всего в твоей таблице будет 1024 ячейки, которые надо заполнить. Но подумай, все ли ячейки стоит заполнять. Какие комбинации букв в русском языке отсутствуют? После того как ты сделаешь эту таблицу и потренируешься шифровать свои сообщения с её помощью, рекомендую тебе поразмышлять над тем, как взломать этот шифр. Это не так сложно, как кажется на первый взгляд. Свои идеи можешь присылать мне для проверки и обсуждения на адрес электронной почты: roman.dushkin@gmail.com .
Когда-то давным-давно, после того как я обучил своих одноклассников методу частотного анализа, и для них перестало быть секретом то, как я взламывал их секретные послания, я составил для себя такую таблицу и писал свои секретные сообщения при помощи шифра подстановки для пар символов. Это, конечно же, снова привело к тому, что никто не мог взломать мои шифровки. Более того, никто даже не мог понять, что за шифр я использую. Так-то…
Домашнее задание 2. Дисковая машина для шифрования
Теперь я предлагаю тебе сделать механическое устройство для очень стойкого шифрования. Это будет практически одноразовый блокнот — если этим устройством пользоваться правильно и никогда не нарушать установленные принципы. Такое устройство для шифрования было создано в Германии между мировыми войнами и известно под кодовым названием «Энигма». Это была довольно компактная для тех времён электромеханическая машина, которая позволяла шифровать сообщения при помощи очень стойкого шифра. И только безалаберность немцев, допускавших ошибки и погрешности при её использовании, а также немного везения позволили полякам и затем англичанам взломать её.
Читать дальшеИнтервал:
Закладка: