cover

Энигма, часть 1 - Что такое "Энигма"?

November 01, 2017 2 min read

Что вообще такое эта знаменитая "Энигма", которую все так стремились взломать, и зачем она была нужна?

Часть 1. Что такое "Энигма"?

Что вообще такое эта знаменитая "Энигма", которую все так стремились взломать, и зачем она была нужна?

Сначала про то, зачем нужна. Допустим, вы - капитан немецкой подводной лодки, и вам необоходимо обмениваться сведениями с вашим командованием. При этом радиопередача, отправленная вам, может быть подслушана противником, например, Англией.

Значит, передавать ваше сообщение командованию по радио открытым текстом нельзя, и вам необходимо как-то зашифровать его, чтобы только свои смогли его прочитать. Как это сделать, с учётом того, что на дворе - 1930-ые?

Для решения этой задачи в 1927 году была создана персональная шифровальная машина "Энигма". Она работала так: вы на берегу договариваетесь с командованем о том, какой ключ шифрования вы будете использовать в каждый следующий день. После этого вы набираете на этой машине (как на обычной печатной машинке) ваше сообщение, которое хотите отправить компандованию.

Машина превращает каждую букву вашего исходного текста (называемого plain text) в другую букву. Получается абракадабра - шифротекст (cyper text) - который вы передаёте по радио командованию.

Командование, зная каким ключом было зашифровано ваше сообщение использует этот же самый ключ для дешифровки, производя обратную операцию - набирает шифротекст. Из каждой буквы шифротекста при дешифровке получается соответствующая буква исходного текста, и на выходе ваше командование получает исходное сообщение.

Например, на этом видео я выставляю на "Энигме" ключ 000, набираю текст "AND" и получаю в результате шифротекст "QYJ". Обратите внимание, что когда я набираю каждую следующую букву, ключ увеличивается на единицу. После этого я (играя роль командования) выставляю исходный ключ 000, набираю шифротекст "QYJ" и получаю исходный текст "AND".

Такая система, где один и тот же ключ используется для шифрования и дешфировки, а операции шифрования и дешифровки - это, фактически, одна и та же операция называется симметричным шифрованием. Сейчас оно часто используется наряду с асимметричным шифрованием, где для стороны используют 2 разных ключа для шифрования и дешифровки.

Например, когда вы заходите на сайт по https://, ваш браузер сначала договаривается с сайтом о том, какой симметричный ключ использовать (и переговоры об этом ключе ведутся с помощью асимметричного шифрования - оно позволяет избежать необходимости заранее договариваться о симметричном ключе), а когда симметричный ключ выбран, основной поток уже шифруется симмметричным ключом.

Идея схемы шифрования, реализованной в "Энигме", была предложена ещё раньше. Её В 1914 году предложил инженер белловских лабораторий AT&T Гилберт Вернам - она назыавалась шифр XOR.

Шифт XOR работал совсем просто: вы брали свой исходный текст, договаривались о ключе шифрования, записывали их обоих в бинарном виде - ноликами/единичками. Затем, вы просто прикладывали первую цифру ключа к первой цифре текста и производили логическую операцию исключающее или (XOR) между ними, а затем проделывали то же самое для каждой следующей цифры.

Клод Шеннон в войну доказал, что для идеально случайного ключа такой шифр невозможно вскрыть. Проблема, однако, в том, что в реальности идеально случайным ключ никогда не бывает. В "Энигме" было реализовано некоторое неидеальное приближение этого идеального ключа.

Часть 2

Boris Burkov

Written by Boris Burkov who lives in Moscow, Russia, loves to take part in development of cutting-edge technologies, reflects on how the world works and admires the giants of the past. You can follow me in Telegram