В статье раскрывается опыт освоения механизма работы шифровальной машины «Энигма» с помощью программы-эмулятора «Enigma». Составленные автором алгоритмы шифровки и дешифровки сообщений полезны современному программисту в решении важной профессиональной задачи обеспечения конфиденциальности информации.
Ключевые слова: Энигма, эмулятор «Энигмы», шифровальная машина, шифрование сообщений, криптография, секретность информации.
Вторая мировая война, ставшая результатом фашистской агрессии, принесла неисчислимые жертвы народам Советского союза и мира. Сражения со злом происходили не только на поле боя, но также в кабинетах и лабораториях ученых, спасавших своими разработками и открытиями миллионы людей, приближая таким образом конец гитлеризма. Одним из определяющих условий исхода военных операций, снабжения, и, да, пожалуй, всего, что так или иначе приносило успех воюющим сторонам, являлось обеспечение секретности передаваемой информации. А цена секретности в войне – это жизни миллионов людей. Не даром говорят: «Кто владеет информацией, тот владеет миром».
Тема конфиденциальности информации остро стоит и в настоящее время: усилилось число хакерских атак, телефонных мошенников, действия их становятся более изощренными. Поэтому даже самые надёжные среди доступных средств защиты на данный момент не могут на сто процентов гарантировать безопасность как частных переписок, так и информации ведомств и служб самого высокого уровня. В связи с этим особенно высокое значение в деятельности современного программиста получает опыт обеспечения конфиденциальности, секретности информации. Получению такого опыта, кроме прочего, способствует изучение принципов и механизмов работы шифровальных машин прошлого.
Изучив механизм работы знаменитой шифровальной машины «Энигма», автор настоящей статьи (далее – автор) попробовал себя в криптографии – методе шифрования данных, прочитать которые сможет только адресат, у которого есть ключ к шифру [1].
Первым делом была изучена история возникновения и взлома «Энигмы», ее применение и значение, а также механизм работы (сначала – в теории).
Далее, чтобы усилить актуальность своей работы, автор выяснил сферы применения шифровки информации в современное время. Так, в современном мире средства шифровки информации используются во всем виртуальном пространстве, решая такие задачи, как обеспечение сохранности личных данных, конфиденциальности общения.
Сохранность личных данных может подразумевать несколько направлений: в том числе, создание паролей и передачу уже существующих паролей в переписках. Создание паролей с помощью «Энигмы» может значительно обезопасить жизнь в социальных сетях, поскольку можно закодировать любое слово, а шифр использовать как пароль. Само же слово – пароль, можно записать куда угодно, не опасаясь потери важных данных. Также передача паролей может послужить упрощением передачи доступа к аккаунту в социальных сетях между людьми.
Конфиденциальность общения является наиболее понятной и простой сферой применения шифрования: в переписках по договоренности с собеседником можно отправлять друг другу закодированные сообщения без опасения, что кто-то может получить информацию о содержании общения.
Перейдя от теории к практике, автор установил программу, эмулирующую «Энигму» (эмулятор «Enigma») на свой компьютер [2] и освоил ее функционал, позволяющий осуществлять самостоятельную зашифровку и дешифровку слов (текстов).
Интерфейс программы эмулятора включает несколько составляющих.
Главный экран . Здесь располагается клавиатура эмулируемой машины и панель из ламп, которые загораются после нажатия на клавиатуру в соответствии с буквой латинского алфавита, которую зашифровывают. Также здесь по умолчанию располагаются роторы, на которых расположены цифры, показывающие количество зашифрованных символов.
Экран настройки. Открывается через главный экран при помощи кнопки в правом углу. Здесь можно заменить роторы, пронумерованные от 1 до 8, а также выбрать вид эмулируемой машины. Из дополнительных настроек на боковой части ротора можно выбрать цифру, отвечающую за какую-либо букву латинского алфавита на роторе.
Экран штекерного соединения. Открывается из главного экрана при нажатии в нижней области. Здесь можно выбрать, что соединять – цифры или буквы, но и те, и другие будут привязаны к латинице. Функция этого экрана – подменять одну букву другой с помощью соединения их штекерами (то есть, соединив А и Е, где А будет заменять Е и наоборот).
Освоив функционал программы эмулятора «Enigma», автор зашифровал для пробы сообщение «ENIGMA».
Инструментом для настройки машины стал идентификационный дневник Крексмарине (военно-морской флот Третьего рейха) за 1941-1942 годы [3]. Настройки, выставленные с помощью этого дневника следующие:
в соответствии с выбранной датой дневника выбран соответствующий вид эмулируемой машины;
выставлены пронумерованные от 1 до 8 роторы с буквами латинского алфавита;
с боковины вышеупомянутых роторов, в соответствии с дневником, выбраны номера букв латинского алфавита;
подключены штекерные соединения букв на приборной панели машины;
выяснена последовательность букв, являющаяся ключом для последующей кодировки (при помощи самой машины в основной вкладке эмулятора).
Настроив программу, автор приступил к шифровке и дешифровке сообщения. В конце, при помощи формулы в программе «Excel», проверил правильность конечных шифровки и дешифровки. Применение программы «Excel» дало возможность удобной записи, группировки и проверки зашифрованных и дешифрованных сообщений. В результате всех действий первая попытка зашифровки и дешифровки оказалась успешной.
Далее, осуществив еще несколько попыток шифровки и дешифровки сообщений, автор приступил к составлению их алгоритмов. Алгоритмы представляют собой текстовые инструкции для шифровки и дешифровки сообщений в программе-эмуляторе шифровальной машины «Энигма».
Рис. 1. Алгоритм шифровки сообщений (продукт работы)
Стоит отметить, что работа была интересна не только с профессиональной, но и с пользовательской точки зрения.
Автор рекомендует обучающимся по специальности «Информационные системы и программирование» попробовать осуществить шифровку и дешифровку любой информации с помощью алгоритмов для развития профессионального навыка программирования.
Полученный опыт имеет особенную актуальность в современных реалиях хакерских информационных атак, а также послужит хорошей базой для освоения новых технологий шифровки информации, и в целом, освоения систем программирования.
Литература:
- Что такое криптография? – Текст: электронный // kaspersky.ru: [сайт]. – URL: https://www.kaspersky.ru/resource-center/definitions/what-is-cryptography?ysclid=makjv061wh51507937
- Enigma Simulator (перевод: Симулятор Энигмы) – Текст: электронный // ciphermachinesandcryptology.com: [сайт]. – URL: https:// ciphermachinesandcryptology.com/en/enigmasim.htm
- The Math Behind The Imitation Game. Part 4: Decoding the Ciphertext (перевод: Математика, стоящая за игрой в имитацию. Часть 4: Расшифровка зашифрованного текста) – Текст: электронный // mathbehindtheimitationgame.wordpress.com: [сайт]. – URL: https://mathbehindtheimitationgame.wordpress.com/2015/03/11/part-4-decoding-the-ciphertext-machine/