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

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

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

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

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

  5. Выводы

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

  1. Стойкость каких современных двухключевых криптосистем основана на трудности разложения больших чисел на простые множители? Опишите какой-либо из этих алгоритмов. На какой элемент открытого ключа производится атака злоумышленником?

  2. Какой алгоритм используется для поиска наибольшего общего делителя двух или более чисел? Приведите пример использования этого алгоритма.

  3. Что такое факторизация? Перечислите основные методы факторизации.

  4. Что означает полиномиальная сложность алгоритма и экспоненциальная сложность? Какой тип сложности требует меньших затрат на вычисления?

  5. Какие числа называются гладкими? Привести примеры.

  6. Какие числа называются показательно гладкими? Привести примеры.

  7. Описать факторизацию по методу пробного деления и оценку сложности этого алгоритма. К какому типу относится сложность этого алгоритма?

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

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

1. Показать преподавателю выполненное домашнее задание.

2. Запустить программу Pollard.exe и разложить на множители по очереди все произведения из домашнего задания.

  • Если разложение удалось, то отметить в Таблица 2 .4 в ячейке под произведением количество операций произведенных в процессе разложения.

  • Если разложить не удалось оставить ячейку пустой

3. Определить долю чисел, которые не поддаются факторизации в исследуемом диапазоне.

4. Определить среднее количество операций требующихся для разложения пары чисел в исследуемом диапазоне и сравнить с теоретической оценкой сложности алгоритма.

5. Подготовить выводы.

4.Исследование эффективности алгоритмов факторизации на примере -метода Полларда

    1. Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем rsa и Рабина.

Основной прием в алгоритмах факторизации, известный уже много веков, заключается в генерировании двух целых чисел х и у приблизительно той же величины, что и N, удовлетворяющих условию

х2 =у2 (mod N).

Применяя формулу сокращенного умножения, получим

х2 - у2 = (х - у)(х + у) = 0 (mod N).

Если N = рq, то имеют место четыре возможности:

1) р делит х – у, я q делит х + у,

2) р делит х + у, и q делит х – у;

3) как р, так и q делят х - у, но не делят х + у,

4) как р, так и q делят x + у, но не делят ху.

Эти случаи встречаются с равной вероятностью, а именно 1/4 Если мы теперь вычислим

d=HOД(x-y, N),

то в зависимости от ситуации может получиться одно из четырех решений:

1) d = р, 2) d = q, 3) d = N, 4) d = 1

Поскольку эти равенства равновероятны, с вероятностью 1/2 мы найдем нетривиальный делитель числа N. Остается только понять, как же подобрать подходящие х и у, разность квадратов которых делится на N.

Современные методы факторизации

Современные методы разложения чисел на множители построены на следующей стратегии, основанной на разности квадратов, о чем мы с Вами только что говорили.

- Выбирают границу гладкости В.

- Вычисляют базу простых чисел, не превосходящих В (или факторбазу F).

- Находят большое количество пар B-гладких чисел х и у, удовлетворяющих условию х = у (mod N). Такие пары называют соотношениями на факторбазе.

- С помощью линейной алгебры по модулю 2 ищут комбинацию соотношений, которая дает Х и У с условием X2 = У2 (mod N).

- Пытаются найти делитель N, вычисляя НОД(ХY, N}.

Самое трудное во всех алгоритмах, использующих такую стратегию, – это поиск соотношений. Указанная стратегия может приме­няться и для дискретного логарифмирования. Здесь мы расскажем о тех частях, которые явля­ются общими для всех алгоритмов, разлагающих на множители, и объясним, почему они работают.

-метод Полларда

В отличие от (P-1) метода Полларда, который не всегда позволяет разложить составные числа на простые множители, -метод гарантированно даёт результат.

Пусть N = р  q Сначала производится поиск соотношений вида

х2 =у2 (mod N).

Для этого пользуются обычно следующей рекуррентной формулой

x0 = 2, xi+1 = (хi2 + 1) mod N

с помощью которой вычисляют и запоминают массив результатов (факторбазу) до тех пор, пока значение последнего (i+1) результата не совпадёт с каким-либо предыдущим, то есть не выполнится равенство

Найдя это соотношение можно вычислить один из простых множителей составного числа N:

Получив первый множитель нетрудно вычислить второй

Для примера разложим на множители число N = 437

x0 = 2

x1 = x02 mod N = (22 + 1)mod 437 = 5

x2 = x12 mod N = (52 + 1)mod 437 = 26

x3 = x22 mod N = (262 + 1)mod 437 = 240

x4 = x32 mod N = (2402 + 1)mod 437 = 354

x5 = x42 mod N = (3542 + 1)mod 437 = 335

x6 = x52 mod N = (3352 + 1)mod 437 = 354

Петля -метода замкнулась на шестой итерации совпав по значению с четвёртой. Вычислим НОД((x3x5)mod N, N) по алгоритму Евклида.

p = НОД((240-335)mod 437, 437) = НОД(342, 437) = 19

q = N/p = 437 / 19 = 23

342

437

342

95

57

95

57

38

19

38

19

0