Выбрать главу

Как бы то ни было, после всеобщего внедрения RSA и тесты простоты числа (первый шаг алгоритма — найти два огромных простых числа), и алгоритмы разложения на простые множители (которые в худшем случае могли бы разрушить надежность RSA) получили огромную практическую важность.

Итак, Ферма был озабочен проблемой нахождения простого числа. В качестве элементарной проверки, является ли данное число простым, можно задаться вопросом, выполняет ли заданное число требования малой теоремы Ферма; однако заметьте, что здесь речь идет, скорее, про обратную теорему. Следовательно, нет никакой гарантии того, что число окажется простым. Действительно, известно, что так называемые числа Кармайкла не выполняют обратную теорему. Но даже тогда этот тест является настолько простым и быстрым, что он используется при исполнении алгоритма RSA, чтобы быстро отбросить составные числа. Ведь на самом деле тест простоты, основанный на малой теореме Ферма, заключается в том, чтобы выяснить, является ли число составным. В довершение всего малая теорема Ферма также используется, чтобы доказать, что алгоритм RSA верен.

Другие тесты на простоту делятся на вероятностные и детерминированные. К первым относится тест Миллера — Рабина, который также основывается на малой теореме Ферма, или тест Соловея — Штрассена, основанный на теореме Эйлера, обобщающей малую теорему. Последний тест никогда не утверждает, что число простое, если это не так, но он менее успешен с составными числами. Действительно, существуют тесты, более эффективные в том, чтобы показать, что число составное, а другие больше подходят для доказательства того, что оно простое.

Детерминированное продолжение теста Миллера — Рабина основывается на недоказанном результате: расширенной гипотезе Римана. Очевидно, что его эффективность зависит от того, истинна ли эта гипотеза. Однако в 2002 году впервые было объявлено о тесте под названием AKS, который является универсальным (работает для любого числа), детерминированным, безусловным (не зависит от недоказанных результатов) и эффективным (с полиномиальной сложностью вычислений). Алгоритм AKS также основан на обобщении малой теоремы Ферма.

Важно отличать тесты простоты от алгоритмов разложения на множители. В то время как любой алгоритм разложения на множители скрывает в себе тест простоты, тесты простоты не предполагают обязательного разложения на множители. Например, решето Эратосфена не разлагает число на множители (хотя при тривиальном обобщении оно могло бы это делать), а тест, основанный напрямую на малой теореме Ферма, не находит даже ни одного множителя, в то время как перебор делителей действительно разлагает число. Следовательно, даже если и был найден эффективный алгоритм теста простоты, проблема разложения на множители продолжает быть достаточно сложной для того, чтобы алгоритм RSA оставался актуальным. Тест AKS не разлагает число на множители: операции в интернете остаются надежными.

Существует много других результатов, зависящих от малой теоремы. Один из самых известных — то, что мы все замечали: количество знаков после запятой в рациональном числе повторяется периодически, если в данном рациональном числе, выраженном несократимой дробью, знаменатель — простое число р, отличное от 2 и 5 (которые являются простыми множителями 10). Именно поэтому 1/3 - 0,33333..., а 1/7 - - 0,142857142857..., но 1/5 - 0,2, без периодического повторения. Предыдущие рассуждения служат для того, чтобы понять: малая теорема — один из самых важных результатов в теории чисел.

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

Замечание немецкого математика Курта Гензеля в своей книге "Теория чисел" (Zablentheorie, 1913).

Конечно же, Ферма, верный своей традиции, не оставил ни одного доказательства. Теорема была доказана Эйлером, который не знал, что Лейбниц несколькими годами ранее уже доказал ее, хотя результат был опубликован только в XIX веке.