Книга шифров. Тайная история шифров и их расшифровки
Шрифт:
8 февраля 1587 года в большом зале замка Фотерингей собралось три сотни зрителей, чтобы посмотреть на казнь. Уолсингем был полон решимости не допустить, чтобы Марию считали мученицей, и распорядился сжечь колоду, одежду Марии и все связанное с казнью, дабы избежать появления каких бы то ни было святых мощей. Он также планировал провести в последующую неделю пышное траурное шествие в честь своего зятя, сэра Филиппа Сиднея. Сидней, популярная и героическая личность, погиб в Нидерландах, сражаясь с католиками, и Уолсингем рассчитывал, что величественный парад в его честь ослабит симпатию к Марии. Однако Мария в не меньшей степени стремилась к тому, чтобы ее последнее появление выглядело жестом неповиновения, возможностью вновь подтвердить приверженность католической вере и вдохновить своих последователей.
Рис. 10
В то время как реформатский священник из Питерборо читал свои проповеди, Мария громко возносила свои молитвы во спасение английской католической церкви, своего сына и Елизаветы. С родовым девизом «В моем конце — мое начало» в душе Мария, успокоившись, и взошла на эшафот. Палачи попросили у нее прощения, и она ответила: «Я прощаю вам от всего сердца, поскольку теперь, я надеюсь, вы положите конец моим страданиям». Ричард Уингфилд в своем повествовании о последних днях королевы Шотландии так описал ее последние минуты:
После этого она сама очень спокойно легла на колоду, вытянула руки и ноги, крикнув напоследок три или четыре раза «In manus tuas domine»[10]; один из палачей, слегка придерживая ее одной рукой, дважды нанес удар топором, пока не отсек ей голову, но сзади остался неперерубленным небольшой хрящ; в это время она издала слабый звук, и больше ее лежащее тело не шевелилось… Ее губы открывались и закрывались еще почти четверть часа после того, как голова была отрублена. Затем один из палачей, дернув одну из ее подвязок, внезапно обнаружил маленькую собачку, которая ползала под ее одеждами, которую нельзя было отнять от хозяйки кроме как силой и которая потом не могла покинуть ее мертвое тело, а пришла и легла между ее головой и телом.
2 Нераскрываемый шифр
В течение столетий использование простого одноалфавитного шифра замены было достаточным, чтобы обеспечить секретность. Последующее развитие частотного анализа, вначале арабами, а затем в Европе, разрушило его стойкость. Трагическая казнь Марии Стюарт, королевы Шотландии, явилась драматической иллюстрацией слабостей одноалфавитной замены; очевидно, что в поединке между криптографами и криптоаналитиками последние одержали верх. Любой, кто отправлял зашифрованное сообщение, должен был отдавать себе отчет, что опытный дешифровальщик противника может перехватить и раскрыть самые ценные секреты.
Таким образом, криптографы должны были придумать новый, более стойкий шифр, с помощью которого смогли бы перехитрить криптоаналитиков. Хотя такой шифр появился в конце шестнадцатого века, однако его истоки восходят к пятнадцатому веку к флорентийскому энциклопедисту Леону Баттиста Альберти. Альберти родился в 1404 году и был одним из выдающихся личностей Возрождения — художник, композитор, поэт и философ, а также автор первого научного анализа законов перспективы, трактата о комнатной мухе и речи, произнесенной на похоронах своей собаки. Но, пожалуй, более всего он известен как архитектор, спроектировавший первый римский фонтан Треви и написавший первую печатную книгу «Об архитектуре», которая послужила толчком для перехода от готики к архитектуре эпохи Возрождения.
Как-то в шестидесятых годах пятнадцатого века Альберти прогуливался по саду в Ватикане и столкнулся со своим другом, Леонардо Дато, служившим секретарем у папы. Они поболтали; причем Дато завел разговор о криптографии и о сложностях в ней. Этот случайный разговор натолкнул Альберти на мысль написать исследование по этому предмету, наметив в общих чертах, каким, по его мнению, должен быть новый вид шифра. В то время все шифры замены требовали отдельного шифралфавита для зашифровывания каждого сообщения.
Альберти же предложил использовать два или более шифралфавитов, переходя от одного к другому в процессе зашифровывания и сбивая этим с толку возможных криптоаналитиков.
Здесь,
Несмотря на то что Альберти совершил самый значительный за более чем тысячу лет переворот в криптографии, он не сумел довести свою идею до целостной системы. Решать эту задачу, основываясь на первоначальной идее Альберти, предстояло уже другим, вначале Иоганну Тритемию, немецкому аббату, родившемуся в 1462 году, затем Джованни Порта, итальянскому ученому, родившемуся в 1535 году, и, наконец, Блезу де Виженеру, французскому дипломату, родившемуся в 1523 году. Виженер познакомился с трудами Альберти, Тритемия и Порта, когда его в двадцать шесть лет послали на два года в Рим с дипломатической миссией. Вначале интерес Виженера к криптографии был чисто практического свойства и связан с дипломатической службой. Но затем, когда ему исполнилось тридцать девять лет, он решил, что накопил уже достаточно денег, чтобы оставить службу, отказаться от карьеры и сосредоточиться на исследованиях. И только потом он детально проверил идеи Альберти, Тритемия и Порта, создав на их основе новый шифр.
Рис. 11 Блез де Виженер
Хотя и Альберти, и Тритемий, и Порта, каждый внесли значительный вклад в создание нового шифра, но этот шифр известен как шифр Виженера, в честь человека, который придал ему окончательный вид. Стойкость шифра Виженера состоит в том, что для зашифровывания сообщения в нем используется не один, а 26 различных шифралфавитов. Шифрование начинается с построения так называемого квадрата Виженера, показанного в таблице 3: алфавит открытого текста с последующими 26 шифралфавитами, каждый из которых сдвинут на одну букву относительно предыдущего алфавита.
Таблица 3 Квадрат Виженера.
Здесь ряд 1 представляет собой алфавит шифра Цезаря со сдвигом на 1 позицию, то есть этот шифралфавит может использоваться в качестве алфавита шифра Цезаря, в котором каждая буква открытого текста заменяется буквой, расположенной в алфавите на одну позицию дальше. Точно так же ряд 2 представляет собой алфавит шифра Цезаря со сдвигом на 2 позиции и так далее.
Верхний ряд квадрата, со строчными буквами, представляет буквы алфавита открытого текста. Вы можете зашифровать каждую букву открытого текста с помощью любого из 26 шифралфавитов. Например, если используется шифралфавит номер 2, то буква а зашифровывается как С, если же используется шифралфавит номер 12, тогда а преобразуется в М.