SlideShare une entreprise Scribd logo
1  sur  10
Семинар № 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), вернуть
составное.

Contenu connexe

Plus de Alexander Kolybelnikov

безопасность использования электронной подписи
безопасность использования электронной подписибезопасность использования электронной подписи
безопасность использования электронной подписиAlexander Kolybelnikov
 
лекция безопасная разработка приложений
лекция  безопасная разработка приложенийлекция  безопасная разработка приложений
лекция безопасная разработка приложенийAlexander Kolybelnikov
 
Seminar no.1 Information security for 4th course MIPT
Seminar no.1 Information security for 4th course MIPTSeminar no.1 Information security for 4th course MIPT
Seminar no.1 Information security for 4th course MIPTAlexander Kolybelnikov
 
Защита информации семинар №8
Защита информации семинар №8Защита информации семинар №8
Защита информации семинар №8Alexander Kolybelnikov
 
Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7Alexander Kolybelnikov
 
Защита информации семинар №6
Защита информации семинар №6Защита информации семинар №6
Защита информации семинар №6Alexander Kolybelnikov
 
Защита информации семинар №4 МФТИ
Защита информации семинар №4 МФТИЗащита информации семинар №4 МФТИ
Защита информации семинар №4 МФТИAlexander Kolybelnikov
 
Защита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИЗащита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИAlexander Kolybelnikov
 
Защита информации семинар №2 МФТИ
Защита информации семинар №2 МФТИЗащита информации семинар №2 МФТИ
Защита информации семинар №2 МФТИAlexander Kolybelnikov
 
Защита информации семинар №1 МФТИ
Защита информации семинар №1 МФТИЗащита информации семинар №1 МФТИ
Защита информации семинар №1 МФТИAlexander Kolybelnikov
 

Plus de Alexander Kolybelnikov (12)

безопасность использования электронной подписи
безопасность использования электронной подписибезопасность использования электронной подписи
безопасность использования электронной подписи
 
Основы протокола IPsec
Основы протокола IPsecОсновы протокола IPsec
Основы протокола IPsec
 
лекция безопасная разработка приложений
лекция  безопасная разработка приложенийлекция  безопасная разработка приложений
лекция безопасная разработка приложений
 
Seminar no.1 Information security for 4th course MIPT
Seminar no.1 Information security for 4th course MIPTSeminar no.1 Information security for 4th course MIPT
Seminar no.1 Information security for 4th course MIPT
 
Защита информации семинар №8
Защита информации семинар №8Защита информации семинар №8
Защита информации семинар №8
 
Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7
 
Защита информации семинар №6
Защита информации семинар №6Защита информации семинар №6
Защита информации семинар №6
 
Защита информации семинар №4 МФТИ
Защита информации семинар №4 МФТИЗащита информации семинар №4 МФТИ
Защита информации семинар №4 МФТИ
 
Защита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИЗащита информации семинар №3 МФТИ
Защита информации семинар №3 МФТИ
 
Защита информации семинар №2 МФТИ
Защита информации семинар №2 МФТИЗащита информации семинар №2 МФТИ
Защита информации семинар №2 МФТИ
 
Защита информации семинар №1 МФТИ
Защита информации семинар №1 МФТИЗащита информации семинар №1 МФТИ
Защита информации семинар №1 МФТИ
 
лекция №4
лекция №4лекция №4
лекция №4
 

Защита информации семинар №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), вернуть составное.