Математики, шпионы и хакеры. Кодирование и криптография
Математики, шпионы и хакеры. Кодирование и криптография читать книгу онлайн
Если бы историю человечества можно было представить в виде шпионского романа, то главными героями этого произведения, несомненно, стали бы криптографы и криптоаналитики. Первые — специалисты, виртуозно владеющие искусством кодирования сообщений. Вторые — гении взлома и дешифровки, на компьютерном сленге именуемые хакерами. История соперничества криптографов и криптоаналитиков стара как мир.
Эволюционируя вместе с развитием высоких технологий, ремесло шифрования достигло в XXI веке самой дальней границы современной науки — квантовой механики. И хотя объектом кодирования обычно является текст, инструментом работы кодировщиков была и остается математика.
Эта книга — попытка рассказать читателю историю шифрования через призму развития математической мысли.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Греческий ученый Геродот, считающийся одним из величайших историков мира, в своей знаменитой хронике войны между греками и персами в V в. до н. э. упоминает два любопытных примера стеганографии, потребовавших значительной изобретательности. Первый пример описан в третьей книге «Истории» Геродота: Гистией, тиран города Милета, приказал побрить гонцу голову. Затем на коже головы написали сообщение, которое нужно было отправить, и подождали, когда волосы отрастут. После этого человека послали к месту назначения, в лагерь Аристагора.
Благополучно добравшись туда, посланник объяснил уловку Аристагору и снова сбрил волосы, показав долгожданное сообщение. Второй пример, если это, конечно, правда, имел большее историческое значение, поскольку это позволило спартанскому царю Демарату, сосланному в Персию, предупредить своих соотечественников о грозящем нашествии персидского царя Ксеркса. Геродот пишет об этом в седьмой книге:
«Дело в том, что Демарат не мог так просто предупредить их, поэтому он придумал вот какую хитрость: он взял пару восковых дощечек [для письма], соскоблил воск и написал планы персидского царя на деревянной поверхности. Затем он залил дощечки растопленным воском, таким образом скрыв сообщение. В итоге дощечки, выглядевшие пустыми, не могли возбудить никаких подозрений у дорожных стражей.
Когда дощечки доставили в Лакедемон (Спарта), лакедемоняне долго не могли разгадать секрет, пока, наконец, как я это понимаю, Горго […] не предложила соскоблить воск с дощечек, потому что тогда, по ее словам, на дереве обнаружится сообщение».
Стеганографический метод, выдержавший испытание временем, — это невидимые чернила. Известные по многим рассказам и фильмам, такие чернила содержат материалы, как правило, органического происхождения с высоким содержанием углерода: лимонный сок, растительные соки и даже человеческую мочу, поэтому они имеют тенденцию темнеть при умеренном нагревании, например, над пламенем свечи.
Польза стеганографии бесспорна, хотя этот способ совершенно невыгоден при большом количестве сообщений. Более того, сам по себе этот метод имеет существенный недостаток: если сообщение все-таки будет перехвачено, его содержание сразу же станет известным. По этой причине стеганография в основном используется совместно с методами криптографии как средство усиления безопасности сообщений наивысшей секретности.
Как показывают приведенные примеры, угроза вооруженного конфликта была серьезным стимулом для защиты передаваемой информации. Поэтому не удивительно, что такие воинственные люди, как спартанцы, бывшие, если верить Геродоту, мастерами стеганографии, были также пионерами в развитии криптографии.
Во время конфликта между Афинами и Спартой для контроля над Пелопоннесом часто использовалась скитала — прибор, состоящий из цилиндра и обмотанной вокруг него по спирали узкой полоски бумаги, на которой писалось сообщение. Хотя используемый метод (то есть алгоритм шифрования) был известен противнику, не зная точных размеров скиталы, было чрезвычайно трудно расшифровать перехваченное сообщение. Толщина и длина скиталы были, в сущности, ключом к этой системе шифрования. После разматывания бумажной ленты прочитать сообщение было невозможно. На рисунке ниже передаваемое сообщение (М) выглядит так: A message encoded with a scytale («Сообщение, закодированное с помощью скиталы»), но после разматывания бумажной ленты сообщение превратилось в тарабарщину (С): anh mca eos sdc sey adt gwa eil ete.
* * *
КРОШЕЧНЫЕ БУКВЫ
В годы холодной войны герои шпионских триллеров часто использовали крошечные микрофильмы для пересылки сообщений, чтобы их было невозможно прочитать невооруженным глазом. Этот стеганографический метод, названный «микроточки», был разработан на несколько лет раньше, в Германии во время Второй мировой войны. Фотография текста сообщения уменьшалась до размеров точки, а затем прикреплялась к безобидному письму в качестве одного из многих типографских символов.
* * *
Использование скиталы основано на криптографическом методе, известном как перестановочное шифрование, когда буквы сообщения переставляются местами.
Чтобы получить представление о силе этого метода, рассмотрим простой пример перестановки всего трех букв: А, О и R. Быстрая проверка без каких-либо расчетов показывает, что они могут быть переставлены шестью различными способами:
AOR, ARO, OAR, ORA, ROA и RAO.
В абстрактных терминах процесс выглядит следующим образом: как только одна из трех возможных букв поставлена на первое место, что дает нам три различных возможности, остаются еще две буквы, которые в свою очередь могут быть переставлены двумя различными способами. Таким образом, общее количество составит 3 x 2 = 6 способов. В случае более длинного сообщения, например, из 10 букв, число возможных перестановок составит 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1. Такое произведение в математике записывается как 10! и дает число 3 628 800. В общем случае для сообщения из n букв существует n! различных способов изменить их порядок.
Таким образом, скромное сообщение из 40 символов имеет так много способов изменения порядка букв, что это сообщение практически невозможно расшифровать вручную. Может быть, мы нашли идеальный криптографической метод?
Не совсем так. По сути, алгоритм перестановочного шифрования обеспечивает высокий уровень безопасности, но как насчет ключа, который позволяет расшифровать сообщение? Случайность процесса составляет и его силу, и его слабость. Потребовался другой метод шифрования, чтобы генерировать ключи, которые были бы простыми и легкими для запоминания и передачи без потери уровня безопасности.
Так начались поиски идеального алгоритма, и первые успехи в этом деле были достигнуты римскими императорами.
* * *
РУКОВОДСТВО ДЛЯ МОЛОДЫХ ДАМ
Камасутра — это пространное руководство, которое посвящено, среди прочего, тому, что необходимо знать каждой женщине, чтобы быть хорошей женой. Созданное около IV в. до н. э. брамином по имени Ватьсьяяна, оно рассказывает о 64 различных навыках, в том числе о музыке, кулинарии и шахматах. Особый интерес для нас имеет навык под номером 45, потому что он представляет собой искусство тайнописи, или млеччхита-викальпа. Древний мудрец рекомендует несколько методов, в том числе такой: разделить алфавит на две части и распределить буквы по парам случайным образом. В этой системе каждое соответствие пар представляет собой ключ. Например, один из ключей может быть следующим:
Чтобы написать тайное послание, нужно просто заменить каждую букву А в оригинальном тексте буквой Е, букву Р, соответственно, буквой С, J — буквой W, и так далее.
Veni, vidi, vici (пришел, увидел, победил).
Юлий Цезарь
Шифры подстановки разрабатывались параллельно с перестановочным шифрованием. В отличие от перестановочного шифрования, строгий шифр подстановки заме няет каждую букву или символ на какой-то другой. В отличие от перестановочного шифрования, шифр подстановки основывается не только на буквах, которые содержатся в сообщении. В перестановочном шифровании буква меняет свое положение, но сохраняет свою роль; одна и та же литера имеет одинаковое значение в исходном сообщении и в зашифрованном. В шифре подстановки буквы сохраняют свои позиции, но меняют роли (одна и та же буква или символ имеет в исходном сообщении одно значение, а в зашифрованном — другое). Одним из первых известных алгоритмов шифра подстановки был шифр Полибия, названный в честь греческого историка Полибия (203–120 гг. до н. э.), который оставил нам его описание. Об этом методе подробно рассказано в Приложении.