Двоичные линейные последовательности как генераторы гаммы
При построении двоичной последовательности с помощью линейной рекурренты степени k получается последовательность нулей и единиц. Может ли она продолжаться до бесконечности, не повторяясь? Ответ будет "нет", поскольку каждый следующий элемент зависит только от значений k предыдущих элементов, а поскольку элементы принимают только значения 0 и 1, то всего существует только 2k различных вариантов. Следовательно, не более чем через 2k шагов какое-то множество из k последовательных двоичных элементов обязательно повторится. Например, последовательность чисел Фибоначчи, приведенная по модулю 2, выглядит так:
0, 1, 1, 0, 1, 1, 0, 1, 1, 0, ...
Видно, что эта двоичная последовательность состоит просто из тройки 011, повторенной бесконечное число раз. Поскольку последовательность чисел Фибоначчи порождена при помощи линейной рекурренты степени 2, то в данном случае имеем k=2, и поэтому двоичная форма этой последовательности обязана повториться не далее, чем через 22=4 шага. На самом деле она повторяется через 3 шага, и это, в действительности, максимально возможное число, поскольку одна из четырех возможных пар последовательных двоичных элементов равна 00, а эта пара порождает последовательность, состоящую из одних нулей. Наоборот, никакая другая двоичная последовательность не может содержать пары 00. Поэтому максимально возможное число двоичных элементов, которое может встретиться, прежде чем последовательность начнет повторяться, равно 3, а не 4. По этой же причине максимальное число элементов в линейной рекурренте степени k до начала ее повторения равно 2k-1, а не 2k. Поэтому, несмотря на свой скромный вид, двоичная последовательность Фибоначчи имеет максимальный период.
Ясно, что двоичная последовательность с максимальным периодом, равным 3, для криптографов интереса не представляет. А что можно сказать о двоичных последовательностях более высоких степеней? Для начала рассмотрим утверждение, которое легко проверить непосредственно: последовательность степени 4 может иметь период 15, то есть 24-1. Если отбросить тривиальный случай, когда все четыре коэффициента равны нулю, то всего существует 15 возможных вариантов линейных рекуррент степени 4. Даст ли какая-нибудь из них последовательность максимального периода 15? Таких последовательностей две, это
Un = U(n-3) + U(n-4)
и
Un = U(n-1) + U(n-4).
Пример 8.1
проверить. Что двоичная линейная рекуррента четвертой степени
Un = U(n-3) + U(n-4)
порождает последовательность максимального периода 15.
Проверка
Начиная с U0=U1=U2=U3=1, будем вычислять каждый следующий элемент, складывая между собой элементы, отстоящие от него на 3 и 4 позиции, и записывая 0 или 1 в зависимости от того, является ли сумма четной или нечетной. В результате получаем такую последовательность:
1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1...
Видно, что она начинает повторяться, начиная с элемента U15, но не ранее.
(Заметим, что если двоичная последовательность, порожденная линейной рекуррентой порядка k, имеет максимальный период, то она должна содержать все из 2k возможных двоичных последовательностей длины k, кроме той, которая состоит из одних нулей. Таким образом, в этом случае можно выбрать любые начальные значения, кроме 00..00, и период все равно останется максимальным в любом случае. Если же период не максимальный, то различные начальные значения могут дать различные последовательности.)
Задача 8.1
Проверить, что двоичная рекуррента
Un = U(n-1) + U(n-4)
также порождает последовательность периода 15, а рекуррента
Un = U(n-1) + U(n-2) + U(n-3) + U(n-4)
имеет другой период.
А что же будет для последовательностей более высоких степеней? Например, последовательность степени 12 может иметь период, ни много ни мало, 212-1, то есть 4095. Существует ли линейная рекуррента степени 12, дающая двоичную последовательность такого (максимального) периода? В результате довольно изящного применения высшей математики была получена формула, позволяющая подсчитать, сколько именно двоичных линейных рекуррент степени k дают последовательности максимального периода. Для случая рекуррент степени 12 по этой формуле получаем, что 144 двоичных линейных рекурренты степени 12 порождают двоичные последовательности периода 4095. (То, что 144=1212, в данном случае просто совпадение!) Для оставшихся 3952 рекуррент период будет меньше. Эти 144 рекурренты не могут быть получены непосредственно с помощью методов математического анализа, для этого необходимо применить алгоритм, схожий с методом поиска простых чисел. В качестве альтернативы можно протестировать все 4095 возможных рекуррент на компьютере, отсеивая все те, которые начинают повторяться ранее 4096-го знака. Если проделать все это, то первой обнаруженной последовательностью будет
Un = U(n-6) + U(n-8) + U(n-11) + U(n-12)
"Первой" она является в том смысле, что если выписать справа от рекурренты нулевые и единичные коэффициенты при всех 12-ти ее членах, то эта последовательность будет иметь 12-битовое представление
000001010011,
которое, если его интерпретировать как двоичную запись целого числа, равно
64 + 16 + 2 + 1 = 83.
Никакая другая последовательность с числовым представлением, меньшим 83, не имеет максимального периода 4095. Некоторые математические факты, лежащие в основе этой теории, содержатся в приложении M11.
Выбрав достаточно большую степень и найдя линейную рекурренту максимального периода, можно получить последовательность знаков гаммы, которая, по-видимому, будет псевдослучайной двоичной последовательностью и может быть использована для шифрования. Например, можно показать, что 356960 линейных рекуррент степени 23 дают последовательности знаков гаммы максимального периода, который превосходит 8000000 (см. M11). Можно было бы предположить, что, поскольку начальные значения также будут иметь более 8000000 вариантов, то такая гамма станет для криптоаналитика трудноразрешимой проблемой. Так и будет, но лишь поначалу. К несчастью для криптографов, полученная таким способом гамма имеет фатальный недостаток: при наличии совсем небольшого отрезка последовательности можно восстановить и вид линейной рекурренты, с помощью которой он получен, и его начальные значения. Это вытекает из следующего утверждения.
- Глава 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