Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lecture_10

.pdf
Скачиваний:
6
Добавлен:
22.03.2016
Размер:
3.22 Mб
Скачать

По теореме Рабина у нечётных составных чисел p существует, не более ( )/4 свидетелей простоты, где ( ) - функция Эйлера, а вероятность того, что случайно выбранное число a окажется свидетелем простоты не менее 3 4

Идея теста заключается в том, чтобы проверять для случайно выбранных чисел a<p, являются ли они свидетелями простоты числа p. Если на определённом шаге алгоритма было проверено k чисел, и все они оказались свидетелями простоты, то вероятность того, что число p составное не более (1 4)

Сегодня один из самых популярных тестов простоты чисел — комбинация теории делимости и теста Миллера-Рабина. При этом рекомендуются следующее шаги:

Выбрать нечетное целое число, потому что все четные целые числа (кроме 2) — явно составные

Сделать некоторые тривиальные испытания теории делимости на некоторых известных простых числах, таких как 3, 5, 7, 11, 13: так, чтобы убедиться, что вы не имеете дело с очевидным составным объектом. Если они не являются делителями при всех этих испытаниях, сделайте следующий шаг. Если выбранное число не прошло хотя бы один из этих тестов, вернитесь на один шаг и выберите другое нечетное число.

Выбрать набор оснований для теста. Большое множество оснований предпочтительно.

Сделать тест Миллера-Рабина на каждом из оснований. Если любой из них не проходит, вернитесь на один шаг и выберите другое нечетное число. Если тесты прошли для всех оснований, объявите это число, как сильное псевдопростое число.

В основе детерминированного алгоритма тоже лежит математически доказанное свойство простого числа

Проверяется выполнение этого свойства , как достаточного условия

«простоты» числа: ЕСЛИ свойство ТО число простое

Если проверяемое целое число фактически является простым число, алгоритм объявит его простым

Если проверяемое целое число фактически является составным , алгоритм объявляет его составным

Используем в качестве делителей все числа, меньшие, чем √.

Если любое из этих чисел делит n, тогда n — составное

Алгоритм может быть улучшен, если проверять только нечетные номера и использовать таблицу простых чисел от 2 до

Сложность разрядной операции алгоритма 2 /2, где число битов в n

Теорема: Пусть p – целое нечетное число, p>1. Число p является простым, если существует ≤ − 1, такое, что :

−1 = 1

−1 ≠ 1 для каждого простого делителя числа p-1

Алгоритм:

Случайным образом выбираются простые числа { 1, 2,… }

Вычисляем = 1 + 2

 

 

 

 

 

=1

 

 

 

Выбирается ≤ − 1 и проверяются условия Теоремы.

Если есть такое , то

найдено, если нет, то выбирается новые { , ,… }

 

 

 

1 2

 

 

Свойства решения:

Длина примерно в h раз больше средней длины { 1, 2,… } Мы заранее знаем разложение p-1

Теорема: Пусть = + 1, где q- нечетное простое число, N – четное

число и < (2 + 1) 2. Число p является простым, если 2 = 1 и 2 ≠ 1

Алгоритм формирования числа p длины t≥ 17 бит:

Построим убывающий набор натуральных чисел 0, 1, … , , в котором 0= и< 17 бит, таким образом, что = [ 2−1]

Последовательно генерируются простые числа , −1, … , 0: −1 = + 1

формируется случайным выбором числа размером менее 17 бит и проверки на простоту методом пробного деления

N – случайное целое число, такое что длина числа −1 = + 1 равна значению −1

Число −1 считается полученным, если 2 = 1 −1 и 2 ≠ 1 −1

Если одно из условий не выполнено, то N увеличивается на 2 и вычисляется новое −1 и так до получения простого числа −1

В 2002 г. индийские ученые Агравал, Каял и Сахсена (Agrawal, Kayal и Saxena) объявили, что они нашли алгоритм для испытания простоты чисел с полиномиальной сложностью времени разрядных операций

В основе этого теста на простоту лежит доказанное тождество:

Пусть НОД , ≡ 1. Число n является простым тогда, и только тогда, когда ( − ) ≡ −

Пусть ≥ 2; − целое; , − простые числа, причем :

, где ≡ 2

Тогда − простое число

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]