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

  1. Название работы.

  2. Цель работы.

  3. Выполненное домашнее задание

  4. Лабораторное задание

  5. Выводы

    1. Ключевые вопросы

  1. Почему наличие пары чисел х и у с условием х2 = у2 (mod N} позволяет найти нетривиальный делитель числа N с вероятностью 1/2?

  2. Что понимают под просеиванием и почему его используют в современных алгоритмах разложения?

  3. Описать факторизацию по -методу Полларда, оценку сложности этого алгоритма. К какому типу относится сложность этого алгоритма?

  4. Описать факторизацию по методу линейного решета и отличие этого алгоритма от квадратичного решета. К какому типу относится сложность этого алгоритма?

    1. Лабораторное задание

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.

27