Семинар № 9
Защита информации
Поиск простых чисел
Содержание
• Основные понятия и определения
• Теория
• Защита информации
Проверка чисел на простоту
• Самый простой способ проверки числа nна
простоту —перебор делителей (trialdivision)
• •Тест на основе малой теоремы Ферма
Тест на основе малой
теоремы Ферма и алгоритма
Евклида

• Из малой теорема Ферма следует, что
если сравнение
an-1≡1(modn)
• не выполнено хотя бы для одного числа
a в интервале {1, 2, …, n−1}, то n—
составное
Тест Ферма
1. выбираем случайное число a из {1, 2, …, n−1}
и проверяем с помощью алгоритма Евклида
условие (a,n)=1;
2. если оно не выполняется, то ответ «n—
составное»;
3.проверяем выполнимость сравнения
an-1≡1(modn) ;
4.если сравнение не выполнено, то ответ «n—
составное»;
5.если сравнение выполнено, то ответ
неизвестен, но можно повторить тест еще раз
Числа Кармайкла
Особо плохими для теста Ферма являются
так называемые числа Кармайкла
Они обладают следующим свойством: для
любого a такого, что (a,n)=1верно
an-1≡1(modn) ;
Первые три числа Кармайкла: 561, 1105, 1729
Среди первых 100000000 чисел их всего 255
В 1994г. было доказано, что таких чисел
бесконечно много
Самостоятельное изучение
•
•
•
•

Тест Вильсона
Тест Миллера
Тест Соловея — Штрассена
Тест Люка
Тест Миллера-Рабина
Пусть n—нечетное и n−1= 2st, t—нечетное.
Если число nявляется простым, то при всех
a>1 выполняется сравнение
an−1≡1(modn)
Поэтому, рассматривая элементы {at, a2t,
…, a2s−1t} можно заметить, что либо
среди них найдется равный −1 (modn),
либо at≡1(modn)
На этом замечании основан следующий
вероятностный тест простоты МиллераРабина
Тест Миллера-Рабина
1.Выбираем случайное число a из интервала {1, 2, …, n−1}
и проверяем с помощью алгоритма Евклида условие
(a,n)=1;
2.Если оно не выполняется, то ответ «n—составное»;
3.Вычисляем at(modn);
4.Если at≡±1(modn), то переходим к п.1;
5.Вычисляем a2t, …, a2s−1t до тех пор, пока не появится −1;
6.Если ни одно из этих чисел не равно −1, то ответ «n—
составное»;
7.Если мы достигли −1, то ответ неизвестен (и тест можно
повторить еще раз).
Составное число не будет определено как составное с
вероятностью 1⁄4
Тест AKS
• Ввод: целое число n > 1.
• Если n = ab для целых чисел a > 0 и b > 1,
вернуть составное.
• Найдем наименьшее r такое что
or(n) > log2(n).
• Если 1 < НОД(a,n) < n для некоторого a
≤ r, вернуть составное.
• Если n ≤ r, вернуть простое.
• Для всех a от 1 до
• если (X+a)n≠ Xn+a (mod Xr − 1,n), вернуть
составное.

Защита информации семинар №9

  • 1.
    Семинар № 9 Защитаинформации Поиск простых чисел
  • 2.
    Содержание • Основные понятияи определения • Теория • Защита информации
  • 3.
    Проверка чисел напростоту • Самый простой способ проверки числа nна простоту —перебор делителей (trialdivision) • •Тест на основе малой теоремы Ферма
  • 4.
    Тест на основемалой теоремы Ферма и алгоритма Евклида • Из малой теорема Ферма следует, что если сравнение an-1≡1(modn) • не выполнено хотя бы для одного числа a в интервале {1, 2, …, n−1}, то n— составное
  • 5.
    Тест Ферма 1. выбираемслучайное число a из {1, 2, …, n−1} и проверяем с помощью алгоритма Евклида условие (a,n)=1; 2. если оно не выполняется, то ответ «n— составное»; 3.проверяем выполнимость сравнения an-1≡1(modn) ; 4.если сравнение не выполнено, то ответ «n— составное»; 5.если сравнение выполнено, то ответ неизвестен, но можно повторить тест еще раз
  • 6.
    Числа Кармайкла Особо плохимидля теста Ферма являются так называемые числа Кармайкла Они обладают следующим свойством: для любого a такого, что (a,n)=1верно an-1≡1(modn) ; Первые три числа Кармайкла: 561, 1105, 1729 Среди первых 100000000 чисел их всего 255 В 1994г. было доказано, что таких чисел бесконечно много
  • 7.
    Самостоятельное изучение • • • • Тест Вильсона ТестМиллера Тест Соловея — Штрассена Тест Люка
  • 8.
    Тест Миллера-Рабина Пусть n—нечетноеи n−1= 2st, t—нечетное. Если число nявляется простым, то при всех a>1 выполняется сравнение an−1≡1(modn) Поэтому, рассматривая элементы {at, a2t, …, a2s−1t} можно заметить, что либо среди них найдется равный −1 (modn), либо at≡1(modn) На этом замечании основан следующий вероятностный тест простоты МиллераРабина
  • 9.
    Тест Миллера-Рабина 1.Выбираем случайноечисло a из интервала {1, 2, …, n−1} и проверяем с помощью алгоритма Евклида условие (a,n)=1; 2.Если оно не выполняется, то ответ «n—составное»; 3.Вычисляем at(modn); 4.Если at≡±1(modn), то переходим к п.1; 5.Вычисляем a2t, …, a2s−1t до тех пор, пока не появится −1; 6.Если ни одно из этих чисел не равно −1, то ответ «n— составное»; 7.Если мы достигли −1, то ответ неизвестен (и тест можно повторить еще раз). Составное число не будет определено как составное с вероятностью 1⁄4
  • 10.
    Тест AKS • Ввод:целое число n > 1. • Если n = ab для целых чисел a > 0 и b > 1, вернуть составное. • Найдем наименьшее r такое что or(n) > log2(n). • Если 1 < НОД(a,n) < n для некоторого a ≤ r, вернуть составное. • Если n ≤ r, вернуть простое. • Для всех a от 1 до • если (X+a)n≠ Xn+a (mod Xr − 1,n), вернуть составное.