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

166 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ

13.2. Тест на основе малой теоремы Ферма

При построении вероятностных критериев простоты возникает ряд типичных вопросов, которые удобно рассмотреть на примере, в качестве которого выберем тест на основе малой теоремы Ферма. Как известно, эта теорема утверждает, что если n - простое, то для всех a , взаимно простых с n,

выполняется условие (сравнение Ферма): an1 =1(n).

Таким образом, если сравнение Ферма не выполнено, хотя бы для одного числа в интервале{2,K,n 1}, то n - составное.

Тест на основе малой теоремы Ферма заключается в следующем.

Псевдослучайно выбираем вычет a {2,K,n 1}, проверяем условие

(a,n)=1. Если это условие не выполнено, значит, n - составное. Проверяем

сравнение Ферма. Если оно не выполняется, то число n - составное. Иначе, повторяем тест для другого значения a.

Очевидно, основной вопрос состоит в том, чтобы оценить, в какой мере тест является эффективным. Прежде всего, следует выяснить, существуют ли составные числа n, для которых при некотором a выполняется условие малой теоремы Ферма. Оказывается это так, поскольку существуют контрпримеры:

2340 = (210 )34 =1(341), 724 =1(25).

13.2.1. Основные свойства псевдопростых чисел

Назовем составное число n псевдопростым по основанию a, если пара

(a,n) удовлетворяет сравнению Ферма an1 =1(n).

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

Основные свойства псевдопростых чисел 167

В частности, если пара (2,n) удовлетворяет указанному сравнению, то ему удовлетворяет также и пара (2,2n 1). Действительно, по условию,

2n1 1 делится на n, поэтому 2(2n1 1)= 2tn .

Следовательно, 22tn 1 = (2n 1)(2(2t1)n +K+1)= 0 mod(2n 1).

Но 2tn = (2n 1)1, а число 2n 1 не является простым, поскольку n -

составное. Поэтому число 2n 1 является псевдопростым по основанию два.

Основные свойства псевдопростых чисел таковы.

Теорема [16]. Пусть n - нечетное составное число. Тогда:

а) n псевдопростое по основанию a в том и только том случае, когда

(a,n)=1 и ordna |n 1;

б) если n псевдопростое по основаниям a и b, то n псевдопростое по основаниям ab и ab1(modn);

в) множество Fn ={a Zn : an1 =1(mod n)}образует мультипликативную

подгруппу в мультипликативной группе Zn* обратимых элементов кольца вычетов по модулю n ;

г) если n не является псевдопростым по основанию a, хотя бы для одного

числа a, то

F

(1 2)

 

Z*

 

. Заметим, что

 

Z*

 

=ϕ(n)n 1. Таким образом,

 

 

 

 

 

n

 

 

n

 

 

 

n

 

 

если тест Ферма выявляет составное n при одном основании a, то существует не менее (n 1)2 оснований с аналогичным свойством.

Действительно, свойство а) следует из определения ordna . Свойства б) и

в) следуют из правила почленного перемножения частей сравнений и проверки сравнения Ферма для основания b1 .

(aai ,n)

168 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ

Докажем свойство г). Пусть Fn ={a1,K,as } и a - основание, по которому

n не является псевдопростым. Тогда для любого i пара не

удовлетворяет сравнению Ферма. Поэтому количество оснований, для которых

n не является псевдопростым, не меньше, чем количество элементов в Fn .

Следовательно, если

F

> (1 2)

 

Z *

 

, то общее число элементов в

Z*

окажется

 

 

 

n

 

 

n

 

 

n

 

больше n, что невозможно.

Таким образом, можно заключить, что если существует (не известное нам) основание, по которому n не является псевдопростым, то при повторении теста Ферма k раз вероятность k-кратного выбора оснований из множества Fn не

превосходит (12)k . В этом случае вероятность ошибки теста стремится к нулю с увеличениемk.

Проблема может возникнуть лишь в том случае, когда n является псевдопростым для всех (ненулевых) оснований. Оказывается, такие числа существуют. Они называются числами Кармайкла. Например, числом Кармайкла является число n =561=3 11 17 .

13.2.2. Свойства чисел Кармайкла

Свойства чисел Кармайкла описываются следующей теоремой.

Теорема (Кармайкл). Пусть n - нечетное составное число. Тогда

а) если

p2 |n , p >1, то n не является числом Кармайкла;

б) если

n = p1 p2 Kpk , pi pj для (i j), то n - число Кармайкла в том

и только том случае, когда i

(pi 1)|(n 1);

в) если

n = p1 p2 Kpk ,

pi pj (i j) - число Кармайкла, то k 3.

k >1.
(n 1). Поэтому оба

(n-1) - и (n+1) - Критерии Люка 169

Числа Кармайкла являются достаточно редкими. В пределах до 100000

существует лишь 16 чисел Кармайкла: 561, 1105, 1729, 2465, 2821, 6601, 8911, 10585, 15841, 29341, 41041, 46657 52633, 62745, 63973, 75361.

13.2.3. (n-1) - критерий Люка

Из предыдущего можно сделать вывод, что в тесте Ферма на простоту простые числа и числа Кармайкла неразличимы.

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

Достаточно эффективным критерием является т.н. (n 1)- критерий Люка,

для применения которого должна быть известны все простые делители числа

(n 1). Основой данного критерия является следующая теорема.

Теорема (Люка). Натуральное число n является простым в том и только том случае, когда существует такое натуральное число a, что для любого собственного делителя q ||(n 1) числа n 1 выполняются следующие условия: an1 =1(n), a(n1)q 1(n).

k

Доказательство. Пусть n - простое и n 1 = qimi . Тогда существует

i=1

элемент a, порядок которого максимален, т.е. равен условия теоремы выполняются для всех q ||(n 1).

Обратно, предположим, что для некоторого элемента a выполнены условия теоремы и порядок числа a по модулю n равен m, где mn1. В этом случае m|(n 1) и (n 1)= km, где

a(n1) q

170 Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ

Пусть q |k , тогда =1(n). Это возможно лишь при q = k = 1, т.е.

при m = n 1. Таким образом, порядок числа a - максимально возможный,

следовательно, он совпадает с функцией Эйлера от n и ϕ(n)= n 1.

По определению функции Эйлера, это выполнимо только в случае, когда n - простое.

Замечание. Легко видеть, что условия теоремы Люка эквивалентны существованию натурального числа b, такого, что ordnb = n 1.

Покажем, что в критерии Люка можно выбирать число a для каждого q

независимо, т.е. в условии теоремы можно заменить a на a(q).

Теорема (Сэлфридж). Натуральное число n является простым в том и только том случае, когда для любого собственного делителя q ||(n 1) числа n 1 существует такое натуральное число a = a(q), что выполняются следующие условия: an1 =1(n), a(n1)q 1(n).

Доказательство. Очевидно, из условий теоремы Люка следует выполнение условий теоремы Сэлфриджа. Необходимо доказать, что из условий теоремы Сэлфриджа следуют условия теоремы Люка. Мы сделаем это, убедившись, что в условиях теоремы Сэлфриджа существует натуральное число b, такое, что

ordnb = n 1.

 

 

 

 

 

k

 

 

 

Действительно,

пусть

n 1 = qimi .

По

условию, для

каждого

 

 

 

 

 

i=1

 

 

 

собственного

простого

делителя

q ||(n 1)

найдется a = a(q), такое, что

m = ordna(q)

делит

(n 1),

но

ordna(q) не делит число (n 1) q . Пусть

(n 1)= md . Тогда

d

не делится на q ,

иначе,

число (n 1) q

было бы