Математики, шпионы и хакеры. Кодирование и криптография
Шрифт:
В эту систему вводили зашифрованные символы, которые по их длине или другим признакам, возможно, соответствовали словам «погода» и «дождь».
Предположим, мы подозреваем, что зашифрованные символы FGRTY соответствуют слову BREAD («хлеб»). После введения шифровки в машину, если при каком-то положении роторов получалось слово BREAD, криптоаналитики знали, что найден ключ, соответствующий конфигурации начальных позиций роторов. Затем оператор вводил зашифрованный текст в настоящую машину «Энигма» с роторами, расположенными в соответствии с найденным ключом. Если машина показывала, например, расшифрованный текст DREAB, было ясно, что часть шифра связана с конфигурацией коммутационной панели и включает перестановку букв D и В. Таким образом криптоаналитики получали весь шифр. Секреты «Энигмы» постепенно раскрывались. В процессе разработки и совершенствования вышеупомянутых аналитических
Colossus, предшественник современного компьютера, в Блетчли-Парке. Фотография, сделанная в 1943 г., показывает панель управления сложного устройства.
Япония разработала две собственные системы шифрования: Purple («Пурпурный код») и JN-25. Первая из них предназначалась для дипломатической связи, а вторая — для военных сообщений. Оба шифра использовали механические устройства.
JN-25, например, работал на алгоритме подстановки, который переводил символы японского языка (порядка 30000 знаков) в ряд чисел, определенных случайными таблицами из пяти групп чисел. Несмотря на меры предосторожности, предпринятые в Японии, англичане и американцы взломали «Пурпурный код» и шифр JN-25. Сведения из расшифрованной переписки получили кодовое название «Мэджик» и оказали значительное влияние на военные конфликты в Тихом океане, в частности, на сражение в Коралловом море и у атолла Мидуэй в 1942 г. Сведения «Мэджик» были также использованы для планирования стратегических задач, таких как перехват и уничтожение самолета японского адмирала Ямамото год спустя.
* * *
БЛЕСТЯЩИЙ УМ
Алан Тьюринг (слева) родился в Англии в 1912 г. Даже в молодости он демонстрировал большие способности к математике и физике. В 1931 г. он поступил в Кембриджский университет, где увлекся работами логика Курта Гёделя по общей проблеме неполноты любой логической системы. За три года до того он опубликовал работу о теоретической возможности создания машины, способной выполнять вычислительные алгоритмы, такие как сложение, умножение и т. д.
Вдохновленный работами Гёделя, Тьюринг в 1937 г. развил свои идеи о доказательствах и вычислениях и сформулировал принцип «универсальной машины», способной выполнять любые мыслимые алгоритмические действия. Так появилась одна из основ современной информатики. За два года до того Тьюринг познакомился с крупным венгерским математиком Яношем фон Нейманом, который к тому времени жил в Соединенных Штатах и носил имя Джон. Фон Нейман, считающийся «вторым отцом» информатики, предложил Тьюрингу хорошо оплачиваемую и престижную работу в Принстоне. Однако Тьюринг предпочел богемную атмосферу Кембриджа и отклонил предложение.
В 1939 г., когда началась война, он присоединился к британской команде криптоаналитиков в Блетчли-Парке. За свою работу во время войны он был награжден Орденом Британской империи. Но Тьюринг был гомосексуалистом, что было запрещено законом в то время, и в результате приговора в 1952 г. потерял право работать на секретных проектах правительства. Глубоко подавленный, Алан Тьюринг покончил жизнь самоубийством 8 июня 1954 г., приняв цианистый калий.
Шифровальщики навахо
Хотя Соединенные Штаты умело использовали информацию, перехваченную у противника во время военных действий на Тихом океане, американские военные для собственной связи применяли несколько шифров, по сути похожих на те, о которых говорилось в начале книги. Алгоритмы шифрования были основаны непосредственно на природе слов. Эти шифры — чокто, команче, месквоки и прежде всего навахо — не были четко описаны в сложных руководствах и не были результатом работы отделов криптографии: это были просто подлинные языки индейцев.
Армия Соединенных Штатов включала радистов из этих племен в отделы шифровальщиков на фронте, чтобы
Два шифровальщика навахо во время битвы за Бугенвиль в 1943 г.
Шифры, обсуждавшиеся прежде, в которых один символ заменялся другим по некоторому заранее установленному правилу, как мы уже видели, всегда уязвимы для криптоанализа.
В 1929 г. американский математик Лестер Хилл придумал, запатентовал и выставил на продажу — правда, без особого успеха — новую систему шифрования, в которой использовались и модульная арифметика, и линейная алгебра.
Как мы увидим ниже, матрицы являются очень полезным инструментом для шифрования сообщений, когда текст разбивается на пары букв и каждой букве ставится в соответствие числовое значение.
Чтобы зашифровать сообщение, мы будем использовать следующие матрицы:
с определителем, равным единице, то есть ad — Ьс = 1. Для расшифровки мы будем использовать обратную матрицу:
* * *
НЕМНОГО ЛИНЕЙНОЙ АЛГЕБРЫ
Матрица может быть определена как таблица, представляющая собой совокупность строк и столбцов. Например, матрица 2x2 имеет вид:
а матрица 2x1 записывается как:
Произведение этих двух матриц дает нам новую матрицу 2x1, называемую вектор-столбцом:
В случае матрицы 2x2 число (аd — Ьс) называется определителем матрицы.
* * *
Ограничение на значение определителя установлено для того, чтобы обратная матрица работала как инструмент расшифровки. Как правило, для алфавита из n символов необходимо, чтобы НОД определителя матрицы и числа n равнялся единице. Иначе нельзя гарантировать существование обратного элемента в модульной арифметике.
Продолжая пример, возьмем алфавит из 26 букв с символом пробела, который мы обозначим как @. Каждой букве мы поставим в соответствие число, как показано в следующей таблице:
Для получения значений от 0 до 26 мы будем работать по модулю 27.
Процесс шифрования и расшифровки текста происходит следующим образом: сначала мы определяем шифровальную матрицу с определителем 1.
Например,
Матрицей для расшифровки будет обратная матрица