5.4. Алгоритм Берлекемпа-Месси
Основным параметром, характеризующим сложность аналитического строения псевдослучайной последовательности, является ее линейная сложность, то есть степень минимального многочлена последовательности. Фактически минимальный многочлен определяет закон рекурсии линейного регистра сдвига минимальной длины, с помощью которого может быть получена данная псевдослучайная последовательность.
Любая периодическая последовательность может рассматриваться как линейная рекуррентная последовательность. Поэтому для любой периодической последовательности существует некоторый линейный регистр сдвига, который ее вырабатывает. Если элементы, образующие период последовательности, выбираются случайно, то степень минимального многочлена такой последовательности близка к величине ее периода. Поэтому линейная сложность может рассматриваться как характеристика сложности аналитического строения псевдослучайной последовательности. Низкую линейную сложность имеют слабые в криптографическом отношении последовательности. Вместе с тем высокая линейная сложность не гарантирует отсутствия других недостатков. Например, для генерации последовательности, период которой имеет вид (0,0,…,0,1), требуется линейный регистр, длина которого совпадает с длиной периода этой последовательности, однако ясно, что считать эту последовательность случайной нельзя.
Эффективным методом нахождения линейного регистра сдвига минимальной длины, генерирующего заданную последовательность, является алгоритм Берлекемпа-Месси.
Пусть Р – некоторое поле, е – единица поля Р. Обозначим через и=(u(0),...,u(l – 1)) начальный отрезок произвольной последовательности и элементов поля Р. Будем говорить, что многочлен
вырабатывает отрезок и, если
то-есть если данный отрезок последовательности является отрезком некоторой линейной рекуррентной последовательности с характеристическим многочленом G(x).
Алгоритм Берлекемпа-Месси строит многочлен G(x) наименьшей степени, вырабатывающий отрезок и. Приведем одну из многочисленных модификаций алгоритма со сложностью, оцениваемой величиной 6т2(1+о(1)) операций поля Р.
Определим операцию умножения последовательности на многочлен.
Для произвольного многочлена
и последовательности v положим H(x)v=w, где
Будем говорить, что многочлен G(x) степени т вырабатывает l т знаков последовательности и, если выполняется равенство
то есть если первые l — т знаков последовательности v равны нулю, а следующий за ними отличен от нуля.
Для многочлена G(x)P[x] степени т и последовательности и введем параметры lи(G) и kи(G) = lи(G) – т, где lи(G) – число знаков последовательности и, вырабатываемых многочленом G(x). Ясно, что kи(G) – максимальное число первых подряд идущих нулей в последовательности G(x)u (либо ).
Будем индуктивно строить последовательность многочленов G0(x), G1(x),... неубывающих степеней 0= т0 < т1 т2 ... .
Начальные условия: G0(x)=e, т0 =0.
Этап 1. Если
то полагаем
Если G1(x)и = 0, то есть если kи(G1) = , то G1(x) – искомый минимальный многочлен ЛРП и. В противном случае строим G2(x).
Этап t+1. Пусть многочлены G0(x),...,Gt(x) уже построены, и степень degGj(x) многочлена Gj(x) равна тj, причем 0= т0 < т1 … тt. Пусть выполняются соотношения
Определим число s = s(t) так, чтобы выполнялись условия тt = тt-1 = …= тs+1 > тs (такое s найдется, так т1 > т0). Положим
если kt ks,
если kt > ks.
Если Gt+1(x)u = 0, то нужный многочлен построен. В противном случае строим Gt+2(x) .
Теорема 2. Если и – линейная рекуррентная последовательность над полем Р с минимальным многочленом F(x) степени т, то F(x)= Gr(x) для некоторого подходящего значения r 2т–1–k0.
- Криптографическая защита информации
- Оглавление
- Раздел 1. Общие подходы к криптографической защите информации
- Тема 1. Теоретические основы криптографии
- 1.1. Криптография
- 1.2. Управление секретными ключами
- 1.3. Инфраструктура открытых ключей.
- 1.4. Формальные модели шифров
- 1.5. Модели открытых текстов
- Тема 2. Простейшие и исторические шифры и их анализ
- Тема 3. Математические основы криптографии
- 3.1. Элементы алгебры и теории чисел
- 3.1.1. Модулярная арифметика. Основные определения.
- 3.1.2. Алгоритм Евклида нахождения наибольшего общего делителя
- 3.1.3. Взаимно простые числа
- 3.1.4. Наименьшее общее кратное
- 3.1.5. Простые числа
- 3.1.6. Сравнения
- 3.1.7. Классы вычетов
- 3.1.8. Функция Эйлера
- 3.1.9. Сравнения первой степени
- 3.1.10. Система сравнений первой степени
- 3.1.11. Первообразные корни
- 3.1.12. Индексы по модулям рk и 2рk
- 3.1.13. Символ Лежандра
- 3.1.14. Квадратичный закон взаимности
- 3.1.15. Символ Якоби
- 3.1.16. Цепные дроби
- 3.1.17. Подходящие дроби
- 3.1.18. Подходящие дроби в качестве наилучших приближений
- 3.2. Группы
- 3.2.1. Понятие группы
- 3.2.2. Подгруппы групп
- 3.2.3. Циклические группы
- 3.2.4. Гомоморфизмы групп
- 3.2.5. Группы подстановок
- 3.2.6. Действие группы на множестве
- 3.3. Кольца и поля
- 3.3.1. Определения
- 3.3.2. Подкольца
- 3.3.3. Гомоморфизмы колец
- 3.3.4. Евклидовы кольца
- 3.3.5. Простые и максимальные идеалы
- 3.3.6. Конечные расширения полей
- 3.3.7. Поле разложения
- 3.3.8. Конечные поля
- 3.3.9. Порядки неприводимых многочленов
- 3.3.10. Линейные рекуррентные последовательности
- 3.3.11. Последовательности максимального периода
- 3.3.12. Задания
- Тема 4. Классификация шифров
- 4.1. Классификация шифров по типу преобразования
- 4.2. Классификация шифров замены
- 4.3 Шифры перестановки
- 4.3.1. Маршрутные перестановки
- 4.3.2. Элементы криптоанализа шифров перестановки
- 4.4. Шифры замены
- 4.4.1. Поточные шифры простой замены
- 4.4.2. Криптоанализ поточного шифра простой замены
- 4.4.3. Блочные шифры простой замены
- 4.4.4. Многоалфавитные шифры замены
- 4.4.5. Дисковые многоалфавитные шифры замены
- 4.5. Шифры гаммирования
- 4.5.1. Табличное гаммирование
- 4.5.2. О возможности восстановления вероятностей знаков гаммы
- 4.5.3. Восстановление текстов, зашифрованных неравновероятной гаммой
- 5.5.4. Повторное использование гаммы
- 4.5.5. Криптоанализ шифра Виженера
- Тема 5. Поточные шифры
- 5.1. Принципы построения поточных шифрсистем
- Примеры поточных шифрсистем
- 5.3. Линейные регистры сдвига
- 5.4. Алгоритм Берлекемпа-Месси
- 5.5. Усложнение линейных рекуррентных последовательностей
- 5.6. Методы анализа поточных шифров
- 6. Блочные шифры
- 6.1. Принципы построения блочных шифров
- 6.2. Примеры блочных шифров
- 6.3. Режимы использования блочных шифров
- 6.4. Комбинирование алгоритмов блочного шифрования
- 6.5. Методы анализа алгоритмов блочного шифрования
- 6.6. Рекомендации по использованию алгоритмов блочного шифрования
- 7. Криптографические хэш-функции
- 7.1. Функции хэширования и целостность данных
- 7.2. Ключевые функции хэширования
- 7.3. Бесключевые функции хэширования
- 7.4. Целостность данных и аутентификация сообщений
- 7.5. Возможные атаки на функции хэширования
- Тема 8. Криптосистемы с открытым ключом
- 8.1. Шифрсистема rsa
- 8.2. Шифрсистема Эль-Гамаля
- 8.3. Шифрсистема Мак-Элиса
- 8.4. Шифрсистемы на основе "проблемы рюкзака"