Роман Душкин - Математика и криптография : тайны шифров и логическое мышление
- Название:Математика и криптография : тайны шифров и логическое мышление
- Автор:
- Жанр:
- Издательство:АСТ
- Год:2018
- ISBN:978-5-17-096808-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Душкин - Математика и криптография : тайны шифров и логическое мышление краткое содержание
У тебя есть уникальная возможность познакомиться с реальным миром тайных агентов и спецслужб, ведь все методы шифрования, описанные в книге, используются до сих пор! А вдруг ты сможешь создать свой уникальный метод шифровки?
Математика и криптография : тайны шифров и логическое мышление - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Мы не будем делать полную копию немецкой «Энигмы», поскольку это не слишком-то просто. Я опишу тебе принцип действия и дам чертежи простой бумажной версии. Ты сможешь сделать облегчённую модель, которой будет вполне достаточно для твоих нужд. Но, зная принципы, заложенные в эту машину, ты сможешь создать и более серьёзную модель. Так что давай с ней ознакомимся.
Я не буду рассказывать про то, как устроена немецкая шифровальная машина «Энигма», а лучше в списке литературы дам ссылки на книги, в которых это прекрасно описывается. Вместо этого сразу обратимся к принципам, на которых «Энигма» (и та машина, которую мы сделаем) работает. Вот они:
1. Использование машины представляет собой применение шифра простой одноалфавитной замены.
2. Машина состоит из нескольких роторов , то есть вращающихся дисков, каждый из которых представляет собой шифр одноалфавитной замены.
3. Нюанс заключается в том, что этот шифр меняется для каждой следующей буквы текста.
4. Количество таких различных шифров одноалфавитной замены можно сделать астрономически большим, так что в идеальном случае повторов не будет никогда, а потому это будет равносильно использованию одноразового блокнота.
5. У машины можно выбирать так называемое начальное состояние , которое определяет то, как роторы расположены относительно друг друга.
6. Также у машины есть отражатель , который позволяет сделать так, что шифрование и расшифровка производятся одним и тем же способом.
У настоящих роторных шифровальных машин есть ещё некоторые способы усложнения их шифров, но в нашей «маленькой» версии мы обойдёмся только несколькими роторами и отражателем.
Теперь давай немного изменим правила игры. Всё лето мы в своих шифрограммах использовали пробел. Но ты уже знаешь, что пробел — это плохой для шифрования символ, поскольку он очень часто встречается. Слишком часто. Мы удалим этот символ из наших текстов, тем более что в подавляющем большинстве случаев текст без пробелов можно легко восстановить: тыжеможешьсделатьэто?
Итак, пробела у нас больше нет, но 32 символа в нашем алфавите нужно сохранить, поскольку, как ты помнишь, это круглое число в двоичной системе счисления. Теперь мы разделим буквы «Ъ» и «Ь», так что алфавит будет выглядеть так:
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Ничего нового и удивительного.
Но почему нам надо оставить 32 символа? Всё просто. Буквы мы нанесем на бумажные диски (которые будут аналогами роторов), а это означает, что диски надо будет разделить на столько секторов, сколько используется букв. Разделить диск на 32 сектора очень просто: надо разделить диск пополам, потом каждую половину ещё раз пополам, потом ещё, ещё и ещё раз, то есть всего пять раз. Итого окажется 32 сектора. (Вспомни двоичную систему счисления и то, почему число 32 в ней является круглым!).

Общий вид дисковой машины для шифрования, которую я научу тебя делать, таков:
На первый взгляд — это какое-то хаотичное переплетение непонятных линий. Но если ты немного присмотришься, то увидишь четыре бумажных диска, лежащие друг на друге, и все они находятся на подложке. Каждый диск разбит ровно на 32 сектора, и в каждом секторе написано по букве нашего нового алфавита. На изображении диски повернуты так, чтобы буквы в секторах на всех дисках находились ровно напротив друг друга. Жирные чёрные линии на рисунке показывают так называемую проводку. Это провода, идущие от буквы к букве через все диски. Наконец, лист, на котором лежат диски, представляет собой отражатель. Если ты приглядишься к нему, то поймёшь, почему он так называется. Всё просто: на отражателе все провода выходят из одной буквы, а входят в другую, то есть как бы отражаются.
Как шифровать при помощи этой машины? Алгоритм несложный. Например, тебе надо зашифровать букву «А». Ты ведёшь взглядом по линии, выходящей от буквы «А» на самом верхнем диске. На втором диске линия приходит к букве «В», далее на третьем диске к букве «Н» и на четвёртом диске к букве «М». Затем через отражатель провод возвращается к букве «Й» на четвёртом диске, затем идёт к букве «З» на третьем и «Ж» на втором диске, после чего возвращается на первый диск на букву «В». Это и будет шифром для буквы «А». Так можно зашифровать любую букву алфавита.
Как ты понимаешь, это очень простой шифр одноалфавитной замены. Он тем более простой, что является симметричным (за счёт отражателя). То есть если буква «А» шифруется при помощи буквы «В», то буква «В» шифруется при помощи буквы «А». И так с любой парой букв.
Как же сделать так, чтобы шифр был стойким? Ведь понятно, что если шифровать так, как написано в предыдущем абзаце, то ни о какой стойкости говорить не приходится.
Всё просто. Всё настолько просто, что ты даже можешь придумать метод самостоятельно. Так что я рекомендую тебе подумать, прежде чем читать дальше. Обрати внимание на то, что диски могут вращаться относительно друг друга.
Итак, если твой метод основан на вращении дисков после шифрования каждой буквы, то твоя мысль верна. Всё действительно очень просто. Как только мы зашифровали букву, мы должны повернуть самый верхний диск на один сектор по часовой стрелке, и следующая буква будет шифроваться по совершенно иной проводке. Например, если во взаимном расположении дисков машины (для краткости будем называть это расположение «конфигурацией») на рисунке буква «А» шифровалась как «В», то при повороте верхнего диска на один сектор по часовой стрелке буква «А» станет шифроваться как «Щ». Если ещё раз так же повернуть верхний диск, то буква «А» будет шифроваться как «Ю». Таким образом, первоначальный текст «ААА» будет зашифрован как «ВЩЮ».
Но это не всё, конечно же. Ясно, что раз секторов на диске всего 32, то один диск позволяет использовать тридцать два алфавита замены. Если вращать только верхний диск, то фактически это будет использование шифра многоалфавитной замены с длиной ключа в 32 символа. Это достаточно много, но легко подлежит взлому, как ты уже знаешь из занятий второй недели. Поэтому нужны новые вращающиеся диски. Но они вращаются тогда, когда предыдущий диск делает полный оборот. То есть когда верхний диск делает полный оборот, второй диск поворачивается по часовой стрелке на один сектор.
Так тоже получается шифр многоалфавитной замены, но каждый новый диск умножает длину ключа на количество секторов на нём, то есть на 32. На представленной схеме четыре диска, а потому общая длина ключа, которым можно зашифровать послание, равняется 1048576. Представь себе: более миллиона символов, причём эти замены в основном случайны. Другими словами, для посланий, длина которых меньше миллиона букв, используется одноразовый блокнот (это не совсем так, но для простоты можно считать именно так, особенно если не нарушать правил шифрования).
Читать дальшеИнтервал:
Закладка: