
- •Содержание
- •2.8. Домашнее задание 22
- •2.Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями.
- •Цель: Исследовать методику криптоанализа шифров на основе рслос. Применить метод для криптоанализа неизвестного поточного шифра.
- •Ключевые положения
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •3.Исследование эффективности алгоритмов факторизации на примере (p – 1) метода Полларда
- •Цель: Исследовать эффективность применения (р-1) метода Полларда для факторизации, сложность метода, применимость для криптоанализа криптосистем rsa и Рабина.
- •Ключевые положения
- •Пробное деление
- •Гладкие числа
- •Например, число
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •4.Исследование эффективности алгоритмов факторизации на примере -метода Полларда
- •Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем rsa и Рабина.
- •Современные методы факторизации
- •Метод решета в числовом поле
- •Линейное решето
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •Решето в числовом поле
Басов В. Е.
Лабораторные работы по курсу основы криптоанализа
Одесса 2008
Содержание
2. Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями. 2
1.1. Цель: Исследовать методику криптоанализа шифров на основе РСЛОС. Применить метод для криптоанализа неизвестного поточного шифра. 2
1.2. Ключевые положения 2
1.3. Домашнее задание 7
1.4. Содержание протокола 8
1.5 Ключевые вопросы 8
1.6 Лабораторное задание 9
3. Исследование эффективности алгоритмов факторизации на примере (P – 1) метода Полларда 11
2.1. Цель: Исследовать эффективность применения (Р-1) метода Полларда для факторизации, сложность метода, применимость для криптоанализа криптосистем RSA и Рабина. 11
2.2. Ключевые положения 11
2.2.1. Пробное деление 11
2.2.2. Гладкие числа 12
2.2.3. (P-1) метод Полларда 13
2.3. Домашнее задание 15
2.4. Содержание протокола 16
2.5. Ключевые вопросы 17
2.6. Лабораторное задание 17
4. Исследование эффективности алгоритмов факторизации на примере -метода Полларда 18
2.7. Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем RSA и Рабина. 18
Современные методы факторизации 18
-метод Полларда 19
Метод решета в числовом поле 20
Линейное решето 20
2.8. Домашнее задание 22
2.9. Содержание протокола 23
2.10. Ключевые вопросы 23
2.11. Лабораторное задание 24
Решето в числовом поле 25
2.Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями.
Цель: Исследовать методику криптоанализа шифров на основе рслос. Применить метод для криптоанализа неизвестного поточного шифра.
Ключевые положения
Стандартный способ генерирования потока битов основан на использовании регистра сдвига с обратной связью. Это микросхема с ячейками памяти, в каждой из которых записан один бит информации. Множество таких ячеек и образует регистр. На каждом шаге содержимое нескольких заранее определенных ячеек, которые называются отводами, пропускается через функцию обратной связи. А ее значение записывается в самую левую ячейку регистра, сдвигая все остальные его биты на одну позицию вправо. Самый крайний справа, «вытолкнутый» из регистра, бит — выход регистра сдвига на данном шаге.
По причинам, о которых мы будем говорить позже, в качестве функций обратной связи желательно брать нелинейные функции. Однако это сложно осуществить на практике, и поэтому пользуются регистром сдвига с линейной обратной связью или, сокращенно, РСЛОС, функция обратной связи в котором линейна. Этот регистр устроен так же, как и общий, описанный выше. Но в качестве функции обратной связи берется логическая операция XOR исключающего ИЛИ.
На языке математики работу регистра длины l можно описать следующим образом. Задается последовательность битов [c1, ..., cl], в которой на отводах стоят единицы, а в остальных ячейках — нули. Допустим, что в начальном положении в регистре записана последовательность [sl-1, ..., s1, s0]- На выходе регистра получается последовательность s0, s1, s2, …, sl-1, sl, sl+1..., где при j l:
sj = c1sj-1 c2sj-2… clsj-l. (1.1)
Заметим, что если в начальном состоянии регистра во всех его ячейках стояли нули, то и на выходе мы будем получать сплошные нули. Если же стартовая последовательность была нетривиальной, то генерируемая последовательность, в конечном счете, окажется периодической. Действительно, число возможных последовательностей длины ( конечно, и меняя их на каждом шагу, мы волей-неволей получим одну из уже встречавшихся. После этого, ввиду детерминированности процесса, мы получим периодичность. Напомним, что периодом последовательности называется наименьшее натуральное число N, при котором для всех достаточно больших значений параметра i выполняется равенство
sN+i = si. (1.2)
Нетрудно подсчитать, что существует 2l — 1 разных ненулевых начальных состояний регистра. Поэтому максимум, на что можно рассчитывать, это на то, что регистр сдвига с линейной обратной связью при любом ненулевом начальном положении будет генерировать последовательность битов периода 2l – 1.
Свойства выдаваемой РСЛОС последовательности тесно связаны со свойствами двоичного многочлена
С(Х) = 1 + c1X + с2Х2 +…+ clXl F2[X], (1.3)
ассоциированного с этим регистром. Его ненулевые коэффициенты называются отводами, как и [соответствующие ячейки регистра, поставляющие значения аргументов функции обратной связи. На Рисунок 1 .1 изображен РСЛОС, ассоциированный с многочленом x5+x3+x+1
Рисунок 1.1 Пример РСЛОС с ассоциированным многочленом x5+x3+x+1.
На практике применяют РСЛОС с примитивным ассоциированным многочленом.
Определение
5.1.
Двоичный многочлен С(X)
степени N
называется примитивным, если он
неприводим, а его корень в является
образующей мультипликативной группы
поля
.
Свойства последовательности битов, генерируемой РСЛОС, зависят от ассоциированного многочлена:
- Если старший коэффициент ассоциированного многочлена сl = 0, то периодичность генерируемой последовательности может проявляться не сразу.
- Если сl = 1, то соответствующая последовательность называется неособой. Она будет периодичной с самого начала, т. е. равенство sN+i = si выполнено для всех i, а не только для достаточно больших. Наиболее интересны неособые последовательности, соответствующие многочленам со следующими дополнительными свойствами:
• Когда С(Х) неприводим, при любом ненулевом начальном состоянии регистра период генерируемой последовательности равен наименьшему числу N, при котором многочлен С(Х) делит 1 + XN. Как следствие, период последовательности будет делить число 2—1.
• Если С(Х) примитивен, то любое ненулевое начальное состояние регистра дает последовательность с максимально возможным периодом 2 – 1.
Опустим доказательство этих утверждений. Его можно найти в любом хорошем учебнике, посвященном приложениям конечных полей к теории шифрования, криптографии или системам передачи данных. В качестве примера рассмотрим РСЛОС с ассоциированным многочленом 1 + Х + X3. Генерируемая последовательность в этом случае имеет вид
sj = sj-1 sj-3 (1.4)
Допустим, что перед началом процесса в регистре записана последовательность [0,0,1], тогда период генерируемого потока битов
будет равен 7, и мы получаем последовательность, представленную
в Таблица 1 .1.
Поскольку внутреннее состояние на седьмом шаге вернулось к исходному, то начиная со следующего шага, мы будем получать повторения. Иными словами, период последовательности оказался равен 7, что произошло ввиду примитивности многочлена X2 + Х + 1.
Мы не будем здесь обсуждать существующие алгоритмы, генерирующие примитивные многочлены. Ограничимся лишь небольшим списком таких многочленов с малым числом отводов. Очевидно, что чем меньше отводов в многочлене, тем быстрее работает соответствующий регистр сдвига.
X31+x1+1, X31+X6+1, X31+X7+1,
X39+X4+1, X60+X+1, X63+X+1,
X71+X6+1, X93+X2+1, X137+X21+1,
Хотя PCJIOC быстро генерирует поток битов, исходя из ключа малого размера, особенно при аппаратной реализации, они плохо подходят для целей криптографии ввиду их линейности, собственно, именно того свойства, которое придает им высокую эффективность в аппаратных средствах.
Таблица 1.1 Пример генерируемой последовательности бит
Номер шага |
состояние |
генерируемый бит |
0 |
[0,0,1] |
- |
1 |
[1,0,0] |
1 |
2 |
[1,1,0] |
0 |
3 |
[1,1,1] |
0 |
4 |
[0,1,1] |
1 |
5 |
[1,0,1] |
1 |
6 |
[0,1,0] |
1 |
7 |
[0,0,1] |
0 |
Обосновывая слабую криптостойкость линейных регистров, покажем, что зная длину l регистра и 2l последовательных битов, вышедших из РСЛОС, можно вычислить весь генерируемый поток. Заметим, что для этого нам достаточно определить значения отводов, т.е. набор с, коэффициентов ассоциированного многочлена, поскольку стартовое состояние регистра s0, ..., sl-1 можно взять из известной нам последовательности сгенерированных битов. Такие данные можно получить с помощью атаки с известным открытым текстом, когда мы получаем шифрограмму, соответствующую известной нам части исходного сообщения. Напомним, что функция обратной связи в этой ситуации — просто сложение значений отводов по модулю 2, действующая по формуле ;
Используя это соотношение для j = l, ..., 2l–1, получим систему ( линейных уравнений с неизвестными с,, которые нам и нужно определить. В матричной форме эта система выглядит следующим образом:
Предположим, удалось перехватить последовательность битов …1,1,0,0,1,0,0,1,1,1,… Построим систему уравнений
(1.5)
и решим её методом эквивалентных преобразований
(1.6)
созданную 4-битовым РСЛОС. Подставляя в предыдущую систему уравнений элементы перехваченной последовательности и решая ее по модулю 2, найдем, что многочлен, ассоциированный с РСЛОС, равен x4 + x2 + x + 1. Можно сделать вывод, что поточный шифр, основанный на единственном РСЛОС, беззащитен перед атаками с известным открытым текстом.
Мерой криптографического качества последовательности бит служит понятие линейной сложности последовательности.
Определение 5.2. Линейной сложностью бесконечной последовательности битов S = S0,S1,S2,S3,… называется величина L(s), равная
0, если s — последовательность нулей,
, если s нельзя получить с помощью какого-нибудь РСЛОС,
длине наименьшего РСЛОС, выдающего последовательность s в остальных случаях.
Поскольку бесконечную последовательность битов просмотреть невозможно/ограничиваются ее первыми n элементами, обозначая эту часть как sn. Имеют место следующие свойства.
- Для любого n > 1 выполнено неравенство 0 < L(sn} < n. Если последовательность s периодична и ее период равен N то L(s) N.
- L(s t)L(s)+L(t).
Ожидаемая линейная сложность случайной двоичной последовательности sn (именно ее мы и хотели бы видеть в качестве потока ключей) должна быть больше, чем n/2. С другой стороны, РСЛОС длины l выдает последовательность, чья линейная сложность удовлетворяет соотношению: L(sn) = l• для всех n l. Таким образом. линейный регистр генерирует потоки битов слишком далекие от случайных.
Как мы видели, зная длину РСЛОС и генерируемую им последовательность битов, можно вычислить ассоциированный с регистром многочлен. Для определения длины регистра используется ряд линейных сложностей, т.е. последовательность L(s1). L(s2), L(s3). .... Кроме того, существует эффективный алгоритм Берлекэмпа-Мэсси, вычисляющий ряд линейных сложностей L(s1), L(s2), ..., L(sn) для данной конечной последовательности sn.
Следовательно, при генерировании потока ключей регистром сдвига с линейной обратной связью длины l. атакующий, получив не более 2l последовательных битов этого потока, может раскрыть регистр полностью и самостоятельно производить бегущий ключ любой нужной ему длины. Поэтому возникает необходимость найти нелинейный способ эксплуатации РСЛОС, при котором генерируемая последовательность обладает высокой линейной сложностью.