
- •Содержание
- •2.8. Домашнее задание 22
- •2.Исследование методики криптоанализа шифров на основе регистров сдвига с линейными обратными связями.
- •Цель: Исследовать методику криптоанализа шифров на основе рслос. Применить метод для криптоанализа неизвестного поточного шифра.
- •Ключевые положения
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •3.Исследование эффективности алгоритмов факторизации на примере (p – 1) метода Полларда
- •Цель: Исследовать эффективность применения (р-1) метода Полларда для факторизации, сложность метода, применимость для криптоанализа криптосистем rsa и Рабина.
- •Ключевые положения
- •Пробное деление
- •Гладкие числа
- •Например, число
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •4.Исследование эффективности алгоритмов факторизации на примере -метода Полларда
- •Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем rsa и Рабина.
- •Современные методы факторизации
- •Метод решета в числовом поле
- •Линейное решето
- •Домашнее задание
- •Содержание протокола
- •Лабораторное задание
- •Ключевые вопросы
- •Лабораторное задание
- •Решето в числовом поле
Содержание протокола
Название работы.
Цель работы.
Выполненное домашнее задание
Лабораторное задание
Выводы
Ключевые вопросы
Стойкость каких современных двухключевых криптосистем основана на трудности разложения больших чисел на простые множители? Опишите какой-либо из этих алгоритмов. На какой элемент открытого ключа производится атака злоумышленником?
Какой алгоритм используется для поиска наибольшего общего делителя двух или более чисел? Приведите пример использования этого алгоритма.
Что такое факторизация? Перечислите основные методы факторизации.
Что означает полиномиальная сложность алгоритма и экспоненциальная сложность? Какой тип сложности требует меньших затрат на вычисления?
Какие числа называются гладкими? Привести примеры.
Какие числа называются показательно гладкими? Привести примеры.
Описать факторизацию по методу пробного деления и оценку сложности этого алгоритма. К какому типу относится сложность этого алгоритма?
Описать факторизацию по (P-1) методу Полларда, оценку сложности этого алгоритма. К какому типу относится сложность этого алгоритма?
Лабораторное задание
1. Показать преподавателю выполненное домашнее задание.
2. Запустить программу Pollard.exe и разложить на множители по очереди все произведения из домашнего задания.
Если разложение удалось, то отметить в Таблица 2 .4 в ячейке под произведением количество операций произведенных в процессе разложения.
Если разложить не удалось оставить ячейку пустой
3. Определить долю чисел, которые не поддаются факторизации в исследуемом диапазоне.
4. Определить среднее количество операций требующихся для разложения пары чисел в исследуемом диапазоне и сравнить с теоретической оценкой сложности алгоритма.
5. Подготовить выводы.
4.Исследование эффективности алгоритмов факторизации на примере -метода Полларда
Цель: Исследовать эффективность применения -метода Полларда для факторизации, сложность метода применимость для криптоанализа криптосистем 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
Петля -метода замкнулась на шестой итерации совпав по значению с четвёртой. Вычислим НОД((x3 – x5)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 |