Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Факторизация.doc
Скачиваний:
12
Добавлен:
09.11.2019
Размер:
524.29 Кб
Скачать

Басов В. Е.

Лабораторные работы по курсу основы криптоанализа

Одесса 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.Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями.

    1. Цель: Исследовать методику криптоанализа шифров на основе рслос. Применить метод для криптоанализа неизвестного поточного шифра.

    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• для всех nl. Таким образом. линейный регистр генерирует потоки битов слишком далекие от случайных.

Как мы видели, зная длину РСЛОС и генерируемую им последовательность битов, можно вычислить ассоциированный с регистром многочлен. Для определения длины регистра используется ряд ли­нейных сложностей, т.е. последовательность L(s1). L(s2), L(s3). .... Кроме того, существует эффективный алгоритм Берлекэмпа-Мэсси, вычисляющий ряд линейных сложностей L(s1), L(s2), ..., L(sn) для данной конечной последовательности sn.

Следовательно, при генерировании потока ключей регистром сдви­га с линейной обратной связью длины l. атакующий, получив не более 2l последовательных битов этого потока, может раскрыть ре­гистр полностью и самостоятельно производить бегущий ключ лю­бой нужной ему длины. Поэтому возникает необходимость найти нелинейный способ эксплуатации РСЛОС, при котором генерируе­мая последовательность обладает высокой линейной сложностью.