Введение в криптографию
[an error occurred while processing this directive]

Как отличить составное число от простого


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

(9)

Если же при каком-то это сравнение нарушается, можно утверждать, что  - составное. Проверка () не требует больших вычислений, это следует из алгоритма 1. Вопрос только в том, как найти для составного  целое число , не удовлетворяющее (). Можно, например, пытаться найти необходимое число , испытывая все целые числа подряд, начиная с 2. Или попробовать выбирать эти числа случайным образом на отрезке 

К сожалению, такой подход не всегда дает то, что хотелось бы. Имеются составные числа , обладающие свойством () для любого целого  с условием . Такие числа называются числами Кармайкла. Рассмотрим, например, число . Так как делится на каждое из чисел , , , то с помощью малой теоремы Ферма легко проверить, что есть число Кармайкла. Можно доказать (Carmichael, 1912), что любое из чисел Кармайкла имеет вид

, , где все простые различны, причем делится на каждую разность . Лишь недавно, см. [], была решена проблема о бесконечности множества таких чисел.

В 1976 г. Миллер предложил заменить проверку () проверкой несколько иного условия. Детали последующего изложения можно найти в []. Если  - простое число, , где нечетно, то согласно малой теореме Ферма для каждого с условием хотя бы одна из скобок в произведении

делится на . Обращение этого свойства можно использовать, чтобы отличать составные числа от простых.

Пусть - нечетное составное число, , где нечетно. Назовем целое число , , если нарушается одно из двух условий:
) не делится на ;
) или существует целое ,

Из сказанного ранее следует, что для простого числа не существует хороших чисел . Если же составное число, то, как доказал Рабин, их существует не менее

.

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

Next: 4.5. Как строить большие

Up: 4. Алгоритмические проблемы теории

Previous: 4.3. Сложность теоретико-числовых алгоритмов

Contents:




- Начало -  - Назад -  - Вперед -


[an error occurred while processing this directive]