
- •Содержание
- •2.8. Домашнее задание 22
- •2.Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями.
- •Цель: Исследовать методику криптоанализа шифров на основе рслос. Применить метод для криптоанализа неизвестного поточного шифра.
- •Ключевые положения
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •3.Исследование эффективности алгоритмов факторизации на примере (p – 1) метода Полларда
- •Цель: Исследовать эффективность применения (р-1) метода Полларда для факторизации, сложность метода, применимость для криптоанализа криптосистем rsa и Рабина.
- •Ключевые положения
- •Пробное деление
- •Гладкие числа
- •Например, число
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •4.Исследование эффективности алгоритмов факторизации на примере -метода Полларда
- •Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем rsa и Рабина.
- •Современные методы факторизации
- •Метод решета в числовом поле
- •Линейное решето
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •Решето в числовом поле
Содержание протокола
Название работы.
Цель работы.
Выполненное домашнее задание
Лабораторное задание
Выводы
Ключевые вопросы
Почему наличие пары чисел х и у с условием х2 = у2 (mod N} позволяет найти нетривиальный делитель числа N с вероятностью 1/2?
Что понимают под просеиванием и почему его используют в современных алгоритмах разложения?
Описать факторизацию по -методу Полларда, оценку сложности этого алгоритма. К какому типу относится сложность этого алгоритма?
Описать факторизацию по методу линейного решета и отличие этого алгоритма от квадратичного решета. К какому типу относится сложность этого алгоритма?
Лабораторное задание
1. Показать преподавателю выполненное домашнее задание.
2. Запустить программу Pollard_ro.exe и разложить на множители по очереди все произведения из домашнего задания и отметить в Таблица 2 .4 в ячейке под произведением количество операций произведенных в процессе разложения.
3. Определить долю чисел, которые не поддаются факторизации в исследуемом диапазоне.
4. Определить среднее количество операций требующихся для разложения пары чисел в исследуемом диапазоне и сравнить с теоретической оценкой сложности алгоритма. Сложность разложения на множители в общем виде описывается выражением , где N – факторизуемое число. Определите значения (, ) для -метода Полларда по результатам опытов в лабораторном задании.
5. Подготовить выводы.
Решето в числовом поле
Линейное решето — простейший, но не слишком хороший метод факторизации больших чисел. И действительно, линейное решето никогда не предлагалось как практический алгоритм разложения на множители. Однако его работа поучительна для восприятия других просеивающих алгоритмов. Решето в числовом поле использует для построения соотношений между элементами факторбазы арифметику конечных полей. Собственно, это единственная модификация по сравнению с линейным решетом. Этап линейной алгебры, вариация больших простых чисел и распределение задачи между разными компьютерами, — все остается практически без изменения в алгоритме решета в числовом поле. Расскажем теперь об этом алгоритме, но в существенно более простой его форме, чем используемая в реальной жизни..
Сначала строят нормированные неприводимые многочлены f1 и f2 степеней d1 и d2 с целыми коэффициентами, удовлетворяющие условию
для некоторого m Z. Алгоритм пользуется арифметикой конечных числовых полей
где
Зафиксируем
обозначения для двух гомоморфизмов
Как и в линейном решете, мы стремимся найти множество
S{(a,b)Z2|НОД(a,b)=1}
таких элементов, что
где K1 , a K2. Вычислив и , получим
^(/^^(•^(modAO и можно надеяться, что число
НОД(Л^,(,9)-^(7))
является нетривиальным делителем N.
В связи с этим можно сформулировать три очевидные задачи.
- Как найти множество 5?
- Как вычислить /З по известному элементу /З2 £ Q((?i)?
- Как подобрать многочлены }\ и /з и3 первой части алгоритма?
8.4.3. Как найти множество 5'?
Аналогично процессу в линейном решете, с помощью линейной алгебры мы строим множество S так, чтобы разности
а — Ъв\ и а — Ьв'г
были «гладкими». Необходимо уточнить, что в данной ситуации называть гладкими объектами. Для этого придется привлечь теорию числовых полей. Обобщая старое определение гладких целых чисел на случай алгебраических целых, мы получаем следующее определение:
Определение 8.5. Алгебраическое целое число называют «гладким», если и только если идеал, им порожденный, делится только на «маленькие» простые идеалы.
Положим по определению: F{(X,Y) = У^/г^). Тогда
NQ(e,)/q{a - b0i) = Fi(a, b). Мы определим две факторбазы, по одной для каждого многочлена:
-^i = {(Pi7')! Р — простое, г £ Z, причем /,(г) = 0 (mod?)}.
Каждый элемент факторбазы J~i соответствует степени простого идеала в подкольце Z[(?,] целых элементов Ошв,) поля Q(0j). Идеал имеет вид
(p,0,-r)=pZ[0.]+(0,-r)Z[0,].
Для данных значений а и b мы можем легко определить, «раскладывается» ли идеал (а — в,Ь} над нашей факторбазой. Обратите внимание на то. что слово «раскладывается» взято в кавычки. Дело в том, что теорема о единственности разложения на простые множители неверна в кольце Z[6i], а справедлива лишь в кольце целых, т.е. в OQ(e,). Тем не менее, отсутствие однозначности разложения не препятствует нашим целям. Чтобы убедиться в этом. достаточно обратиться к книге Ленстры и Ленстры.
Если Z[6>,] = OQ^), то сформулированный ниже порядок действии дает действительно единственное разложение идеала (а - в•b} в произведение простых.
- Положим
Fi^b)= П Pf-
(pJ,r)€.F.
- Если идеал, соответствующий паре (р.г), нетривиальным образом входит в разложение элемента а - 0,Ь, то возникает равенство (а : Ь) = (г : 1) (modp) элементов проективной прямой над полем Fp.
- Получаем
{а-в,Ь}= П (р^.-г)^. (^,r)e.F,
Эта процедура подводит нас к алгоритму, просеивающему элементы а и 6, для которых идеал {а—в,Ь) раскладывается над факторбазой. Как и в случае линейного решета, просеивание позволяет избегать большого количества дорогостоящих попыток деления в надежде определить гладкие идеалы. Нам остается только проверить разложимость элементов, вероятность разложения которых достаточно большая.
- Фиксируем а.
- Задаем просеивающий массив для Ь (—В $ b <: В), заполняя его по следующему правилу:
S[b\=log.,(Fi{a,b]-F2{a,b)].
- Для каждой пары (p,r) € J, вычитаем logap из каждого элемента массива с номером b, удовлетворяющего условию:
a-rb=0 (modp).
- Числа b, которые нам нужны, соответствуют элементам S[b], лежащим ниже некоторого допустимого уровня.
Если уровень допуска установлен разумным образом, то с большой долей вероятности Fi{a,b) и F^b) разложатся на простые идеалы из факторбазы и, быть может, будут иметь в качестве множителей
Краткое содержание главы
Простые числа встречаются довольно часто, а вероятность того. что случайное п-битовое число будет простым, равна 1/п. Исследовать числа на простоту можно с помощью вероятностных тестов, таких как тест Ферма или алгоритм Миллера -Рабина. Недостаток теста Ферма заключается в том. что существуют составные числа, которые выдерживают этот тест по всем возможным основаниям.
- Для обоснования простоты какого-либо числа применяются алгоритмы доказательства простоты, требующие полиномиального времени.
- Алгоритмы факторизации часто основаны на вычислении разности квадратов.
- Современные алгоритмы факторизапии разбиваются на две стадии. На первой из них подбирается коллекция соотношений на факторбазе с помощью процесса просеивания, который можно осуществить, разделив задачу между множеством компьютеров через Интернет. На второй — эти соотношения подвергаются преобразованиям методами линейной алгебры на большом центральном сервере. Для окончания факторизации вычисляется разность квадратов.
Дополнительная литература
Стандартная книга по вычислительной теории чисел, содержащая
многие алгоритмы факторизации и доказательства простоты, —
это книга Коэна. Произведение Бача и Шаллита — тоже хороший
источник тестов на простоту. Основная работа- освешающая метод
решета в числовом пате. принадлежит Ленстре и Ленстре.
Е. Bach and J. Shallit. Algorithmic dumber Theory. Volume 1: Efficient
Algorithms. NUT Press. 1996.
H. Cohen. A Course in Computational Algebraic Number Theory. Sprmger-
Verlag. 1993.
A. Lenstra and H. Lenstra. The Development of the Number Field Sieve.
Springer- Verlag. 1993.