Вскрытие установок "Хагелина" по отрезку гаммы
Как показано далее, если мы имеем 131 или более подряд стоящих знаков гаммы, задача восстановления установок барабана и штифтов для шифрмашины "Хагелин" без перекрытий решается в лоб. Может возникнуть вопрос: "А как же нам получить 131 знак гаммы подряд?" Ответ на это таков: "Для этого нужно получить открытый текст сообщения длиной 131 знак или более". Это можно сделать несколькими способами, в том числе:
обнаружив, что то же самое сообщение отправлено с использованием другого шифра, который мы умеем читать;
обнаружив, что два или более сообщения, зашифрованные с помощью "Хагелина", являются одноключевыми; тогда их можно прочесть методом протяжки шаблонов, как описано в главе 7;
если шифровальщик сделал ошибку и вынужден повторить переданное сообщение, слегка изменив установки шифрмашины;
с помощью агентурных методов, то есть если агент добудет открытый текст сообщения.
Для иллюстрации метода дешифрования по достаточно длинному отрезку гаммы, рассмотрим гамму, выработанную "мини-Хагелином", состоящим всего из трех колес. Чтобы вскрыть подобным образом полноразмерный "Хагелин", без сомнения, потребуется выполнить больший объем работы, однако метод дешифрования остается тем же самым. Он основан на том, что гамма является суммой (по модулю 26) последовательностей, снимаемых с шести регулярно движущихся колес. Поэтому, вычитая последовательность знаков гаммы из самой себя с необходимым сдвигом, можно исключить вклад любой пятерки из этих шести колес и вычислить, таким образом, "зацепление" оставшегося колеса. Подобным образом можно, например, построить гамму, сложив между собой последовательности, снимаемые с двух мини-колес. Пусть одно из них имеет 7 штифтов и "зацепление", равное 5, а другое - 9 штифтов и "зацепление", равное 3. Получаем:
7-штифтовое колесо 5 0 5 5 0 0 5 5 0 5 5 0 0 5 5 0 5 5 0 0 5 5 . . .
9-штифтовое колесо 0 3 3 3 0 0 3 0 3 0 3 3 3 0 0 3 0 3 0 3 3 3 . . .
Сумма 5 3 8 8 0 0 8 5 3 5 8 3 3 5 5 3 5 8 0 3 8 8
Скопируем последовательность знаков гаммы, сдвинем ее на 7 позиций вправо (т.е. на размер одного из колес) и вычтем из несдвинутой последовательности знаков гаммы:
5 3 8 8 0 0 8 5 3 5 8 3 3 5 5 3 5 8 0 3 8 8
5 3 8 8 0 0 8 5 3 5 8 3 3 5 5
Разностная последовательность 0 0 -3 0 3 3 -3 0 0 0 0 -3 0 3 3
Заметим, что
все элементы разностной последовательности кратны 3, значению "зацепления" 9-штифтового колеса
разностная последовательность повторяется через 9 шагов, то есть ее период равен числу штифтов оставшегося колеса.
Описанная здесь операция называется "нахождением разности на расстоянии 7" и обычно в математике обозначается с помощью греческой буквы (заглавная "дельта", которая соответствует букве D латинского алфавита) с индексом, который обозначает размер интервала (в данном случае 7). Таким образом, вычисленная нами разность обозначается символом
7
Иногда вычисление разности называют также "нахождением дельты".
Вовсе не обязательно было начинать с нахождения разности именно на расстоянии 7. Мы, конечно же, могли найти разностную последовательность и на расстоянии 9. В этом случае получаем:
Сумма 5 3 8 8 0 0 8 5 3 5 8 3 3 5 5 3 5 8 0 3 8 8
Сдвиг на 9 позиций 5 3 8 8 0 0 8 5 3 5 8 3 3
Разность 0 5 -5 -5 5 5 -5 0 5 -5 -5 5 5
Полученная последовательность повторяется через 7 шагов, и к тому же очевидно, что "зацепление" 7-штифтового колеса равно 5.
Итак, "зацепления" колес мы установили. А что можно сказать о штифтовых установках колес? При известных "зацеплениях" колес они получаются из числовых значений разностных последовательностей. В "реальной" шифрмашине "Хагелин" в этом есть одна сложность, но мы ее пока не будем учитывать: значение гаммы, равное 0 или 1, может фактически означать 26 или 27. А пока метод восстановления штифтовых установок можно проиллюстрировать примером еще одного "мини-Хагелина".
Пример 10.4
С помощью "мини-Хагелина", состоящего из трех колес длин 5, 8 и 9, получена следующая последовательность знаков гаммы:
6 4 3 6 8 6 4 5 1 8 4 1 8 6 8 1 6 3 9 0 4 6 8 6 0.
Требуется найти "зацепления" и штифтовые установки колес.
Решение
Операцию взятия разности можно применять в любом порядке. Если сначала найти разность на расстоянии 5, а затем к полученной последовательности применить операцию взятия разности на расстоянии 8, то мы исключим влияние 5- и 8-штифтовых колес. В результате должна получиться последовательность чисел (среди них могут быть положительные, отрицательные и нулевые), каждое из которых кратно значению "зацепления" 9-штифтового колеса. Итак:
Гамма 6 4 3 6 8 6 4 5 1 8 4 1 8 6 8 1 6 3 9 0 4 6 8 6 0
Сдвиг на 5 6 4 3 6 8 6 4 5 1 8 4 1 8 6 8 1 6 3 9 0
5 0 0 2 -5 0 -2 -3 3 5 0 -3 5 -5 3 -8 3 0 5 -3 0
Сдвиг на 8 0 0 2 -5 0 -2 -3 3 5 0 -3 5
85 5 0 -5 10 -5 5 -5 0 -5 5 0 -5
Очевидно, "зацепление" 9-штифтового колеса равно 5. Заметим, что полученная разностная последовательность повторяется через 9 шагов. Также в ней присутствует ровно одно значение, равное удвоенному значению "зацепления". Это - частный случай следующего утверждения:
"При N-кратном применении операции взятия разности к последовательности знаков гаммы результирующая разностная последовательность может содержать значения, кратные размеру "зацепления" с множителем до 2(N-1) включительно." (Доказательство см. в приложении M19).
Теперь найдем зацепление 8-штифтового колеса. Для этого нужно взять разность на расстоянии 5, а затем на расстоянии 9 (в любом порядке). Так как разность на расстоянии 5 мы уже вычислили (см. полученную выше последовательность 5), нужно только выполнить операцию взятия разности на расстоянии 9:
5 0 0 2 -5 0 -2 -3 3 5 0 -3 5 -5 3 -8 3 0 5 -3 0
Сдвиг на 9 0 0 2 -5 0 -2 -3 3 5 0 -3
95 0 -3 3 0 3 -6 6 -3 0 -3 3
Полученная последовательность повторяется через 8 шагов (как и должно быть), и очевидно, что зацепление 8-штифтового колеса равно 3.
Аналогично, вычисляя разности исходной последовательности знаков гаммы на расстоянии 8, а затем на расстоянии 9, получаем:
98 0 1 -2 1 0 0 1 -2
Последовательность повторяется через 5 шагов, и зацепление 5‑штифтового колеса равно 1.
Теперь необходимо найти штифтовые установки этих трех колес. Для этого рассмотрим последовательность знаков гаммы и проанализируем, каким образом можно получить ее элементы в виде комбинации "зацеплений" (1, 3 и 5) колес. Сделать это очень просто. Для полноразмерного "Хагелина" с шестью колесами задача будет посложнее, но нам очень помогает тот факт, что вклад каждого колеса в суммарную последовательность знаков гаммы повторяется с периодом, равным размеру колеса. В случае с нашим "мини-Хагелином" все восемь вариантов можно перечислить. Все возможные варианты построения гаммы показаны в таблице 10.4. (X обозначает активный штифт, O - неактивный).
Таблица 10.4
5-штифтовое колесо | 8-штифтовое колесо | 9-штифтовое колесо |
|
зацепление = 1 | зацепление = 3 | зацепление = 5 | Гамма |
O | O | O | 0 |
O | O | X | 5 |
0 | X | O | 3 |
O | X | X | 8 |
X | O | O | 1 |
X | O | X | 6 |
X | X | O | 4 |
X | X | X | 9 |
Теперь выпишем последовательность знаков гаммы и штифтовые установки, которые получаются для каждого колеса:
Гамма | 6 | 4 | 3 | 6 | 8 | 6 | 4 | 5 | 1 | 8 | 4 | 1 | 8 | 6 | 8 | 1 | 6 | 3 | 9 | 0 | 4 | 6 | 8 | 6 | 0 |
5-штифтовое колесо | X | X | O | X | O | X | X | O | X | O | X | X | O | X | O | X | X | O | X | O | X | X | O | X | O |
8-штифтовое колесо | O | X | X | O | X | O | X | O | O | X | X | O | X | O | X | O | O | X | X | O | X | O | X | O | O |
9-штифтовое колесо | X | O | O | X | X | X | O | X | O | X | O | O | X | X | X | O | X | O | X | O | O | X | X | X | O |
Штифтовые последовательности всех колес повторяются через правильное число шагов, поэтому можно заключить, что штифтовые установки выглядят так:
Штифтовая установка колеса размера 5 X X O X O
Штифтовая установка колеса размера 8 O X X O X O X O
Штифтовая установка колеса размера 9 X O O X X X O X O
Для полноразмерной шифрмашины "Хагелин", конечно, понадобится отрезок гаммы большей длины. При каждом взятии разности последовательности знаков гаммы ее длина сокращается на столько элементов, каков размер исключаемого колеса. Так, в вышеприведенном примере при взятии разности на расстоянии 5 исходные 25 знаков гаммы сократились до 20, а после взятия второй разности на расстоянии 8 осталось только 12 значений. Для полноразмерного "Хагелина" понадобится не менее 131 знаков гаммы, так как сумма размеров всех шести колес равна 131. Желательно иметь их немного больше, чем 131: дополнительные знаки гаммы нужны, чтобы проверить, что финальная последовательность (полученная 5-кратным взятием разностей) повторяется через правильное число шагов. В реальности 150 знаков гаммы оказывается достаточно. К тому же, как уже упоминалось ранее, полноразмерный "Хагелин" имеет дополнительные возможности, значительно усложняющие задачу дешифрования. В этом мы сейчас убедимся.
- Глава 1. Введение 10
- Глава 9. Шифрмашина "Энигма" 130
- Глава 10. Шифрмашина "Хагелин" 152
- Глава 11. После "Энигмы" 172
- Глава 12. Криптография с открытым ключом 179
- Глава 13. Шифрование и Интернет 188
- Предисловие
- Глава 1. Введение Некоторые аспекты безопасности связи
- Шифр Юлия Цезаря
- Несколько основных определений
- Три этапа дешифрования: идентификация, взлом системы и вскрытие ключей.
- Коды и шифры
- Оценка стойкости системы шифрования
- Коды, обнаруживающие и исправляющие ошибки
- Другие методы сокрытия содержания сообщений
- Модульная арифметика
- Модульное сложение и вычитание букв
- Заключение
- Глава 2. От Юлия Цезаря до простой замены Шифры Юлия Цезаря и их вскрытие
- Шифры простой замены
- Вскрытие шифра простой замены
- Частоты встречаемости букв в других языках, кроме английского
- Сколько знаков необходимо для дешифрования простой замены?
- Глава 3. Многоалфавитные системы Усиление системы Юлия Цезаря: шифры Вижанэра
- Вскрытие шифра Вижанэра
- Индикаторы
- Одноключевые сообщения
- Распознавание одноключевых сообщений
- Какой объем текста необходим для дешифрования шифра Вижанэра?
- Цилиндр Джефферсона
- Глава 4. Шифры-головоломки
- Перестановки
- Простая перестановка
- Двойная перестановка
- Другие виды перестановок
- Регулярные перестановочные таблицы
- Нерегулярные перестановочные таблицы
- Оценка стойкости шифров перестановки
- Общая концепция двойного шифрования
- Глава 5. Двухбуквенные шифры
- Замена "монограф-диграф"
- Мдпм-шифры
- Система "диграф-диграф"
- Шифр Плейфера*)
- Расшифрование в системе Плейфера
- Криптоаналитические аспекты системы Плейфера
- Двойной шифр Плейфера
- Глава 6. Коды Характеристики кодов
- Одночастевые и двухчастевые коды
- Код плюс аддитивное шифрование
- Глава 7. Шифры для шпионов
- Шифры-решетки
- Книжные шифры
- Использование книжного шифра
- Частоты встречаемости букв в книжных шифрах
- Вскрытие книжного шифра
- Индикаторы
- Катастрофические ошибки при использовании книжного шифра
- Шифры "агента Гарбо"
- Первый шифр "агента Гарбо"
- Второй шифр "агента Гарбо"
- Одноразовый блокнот
- Глава 8. Получение случайных чисел и букв Случайные последовательности
- Получение случайных последовательностей
- Бросание монеты
- Бросание костей
- Извлечение из урны (по типу лотереи)
- Космические лучи
- Шум от усилителей
- Псевдослучайные последовательности
- Линейные рекурренты
- Использование последовательности двоичных знаков гаммы для шифрования
- Двоичные линейные последовательности как генераторы гаммы
- Криптоанализ линейной рекурренты
- Повышение стойкости двоичной гаммы
- Генераторы псевдослучайных чисел
- Метод срединных квадратов
- Линейные конгруэнтные генераторы
- Глава 9. Шифрмашина "Энигма" Историческая справка
- Первая "Энигма"
- Шифрование с использованием контактных колес
- Шифрование в "Энигме"
- Коммутатор "Энигмы"
- Ахиллесова пята "Энигмы"
- Цепочки индикаторов в "Энигме"
- Выравнивание цепочек
- Идентификация колеса r1 и его угловой установки
- Двойное шифрование в "Энигме"
- "Энигма" Абвера
- Глава 10. Шифрмашина "Хагелин" Историческая справка
- Конструкция шифрмашины «Хагелин»
- Шифрование при помощи шифрмашины "Хагелин"
- Выбор установок барабана в шифрмашине "Хагелин"
- Теоретический объем перебора для шифрмашины "Хагелин"
- Вскрытие установок "Хагелина" по отрезку гаммы
- Дополнительные возможности шифрмашины "Хагелин"
- Смещение
- Определение смещения по шифрованному тексту
- Перекрытия
- Вскрытие шифрмашины "Хагелин" только по шифрованному тексту
- Глава 11. После "Энигмы" sz42 - предтеча электронных машин
- Описание шифрмашины sz42
- Шифрование в машине sz42
- Вскрытие шифрмашины sz42 и определение ее угловых установок
- Модификации шифрмашины sz42
- Глава 12. Криптография с открытым ключом Историческая справка
- Вопросы безопасности
- Защита программ и данных
- Шифрование программ, данных и сообщений
- Задача распределения ключей
- Система ключевого обмена Диффи-Хеллмана
- Стойкость системы Диффи-Хеллмана
- Глава 13. Шифрование и Интернет Обобщение шифра простой замены
- Факторизация больших целых чисел
- Стандартный метод факторизации
- Малая теорема Ферма
- Теорема Ферма-Эйлера (для случая системы rsa)
- Ключи зашифрования и расшифрования в системе rsa
- Процессы зашифрования и расшифрования в системе rsa
- Каким образом хозяин ключей отвечает корреспондентам?
- Американский Стандарт Шифрования Данных (des)*)
- Общие сведения
- Процедура зашифрования
- Процедура расшифрования
- Стойкость des-алгоритма
- Зацепление
- Реализации des-алгоритма
- Совместное использование алгоритмов rsa и des
- Полезное замечание
- После des-алгоритма
- Проверка подлинности сообщения и удостоверение подлинности подписи
- Криптография эллиптической кривой
- Приложение. Математические вопросы Глава 2 м1. Совпадения знаков в алфавитах замены
- М2. Снижение стойкости при использовании взаимно-обратных алфавитов
- M3. Парадокс дней рождения
- Глава 3 м4. Евклидово доказательство бесконечности множества простых чисел
- Глава 6 м5. Последовательность чисел Фибоначчи
- Глава 7 м6. Частота встречаемости букв для книжного шифра
- М7. Одноразовый блокнот дешифровать невозможно
- Глава 8 м8. Частота появления случайных чисел на странице
- М9. Комбинирование двух последовательностей двоичных знаков гаммы, имеющих отклонения
- М10. Последовательность типа Фибоначчи
- М11. Двоичные линейные рекурренты
- M12. Восстановление двоичной линейной рекурренты по отрезку гаммы
- М13. Получение псевдослучайных чисел
- Глава 9 м14. Распайка колёс шифрмашины "Энигма"
- М15. Число возможных отражателей шифрмашины "Энигма"
- М16. Вероятность одноключевых сообщений для "Энигмы"
- М17. Среднее число индикаторов, необходимое для построения полных цепочек
- Глава 10 м18. Число возможных барабанов шифрмашины "Хагелин"
- М19. Максимальная кратность значения зацепления, которая может встретиться при вычислении разности гаммы шифрмашины "Хагелин"
- M20. Определение смещения шифрмашины "Хагелин" с помощью коэффициента корреляции
- Глава 13 m21. (Порядок роста количества простых чисел)
- M22. Вычисление остатка с использованием модульной арифметики
- М23. Доказательство теоремы Ферма-Эйлера
- М24. Нахождение чисел, "предположительно" являющихся простыми
- M25. Алгоритм Евклида
- М26. Эффективность возведения в степень методом последовательного возведения в квадрат
- М27. Число ложных ответов при дешифровании des-алгоритма методом "встречного поиска "
- М28. Криптография эллиптической кривой
- Решения задач Глава 2
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- Глава 7
- Глава 8
- Глава 9
- Глава 10
- Глава 11
- Глава 13
- Литература
- Глава 1
- Глава 2
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- Глава 7
- Глава 8
- Глава 9
- Глава 10
- Глава 11
- Глава 12
- Глава 13