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

5.2Нахождение простого числа

Вес базис современной ассиметричной криптографии состоит из простых чисел. Основополагающим теории простых чисел в группах для криптографии является великий французский математик Эварист Галуа. Чтобы знать современную криптографию, необходимо тонко понимать сущность простых чисел, и уметь с ними работать.

Положительные целые числа могут быть разделены на три группы:

Положительные

целые числа

Число 1

Простые

Составные

Точно один Точно два Более, чем два

делитель делителя

Положительное простое число это целые натуральные числа больше единицы, которые имеют ровно 2 натуральных делителя (только 1 и самого себя), т.е. не делится ни на одно другое число, кроме самого себя и единицы. Составное число — положительное целое число больше с чем двумя делителями. Наименьшее простое число — 2, оно делится без остатка на 2 (само на себя) и 1. Обратите внимание, что целое число 1 — не простое число согласно определению, потому что простое число должно быть делимо без остатка двумя различными целыми числами, не больше и не меньше. Целое число 1 делимо без остатка только на себя; поэтому 1 — это не простое число. Число простых чисел бесконечно.

Маленькие простые числа p можно проверить, поделив это число на все числа до p-1. Если на всех итерациях остается остаток, то такое число простое. Большие числа грубым перебором невозможно проверит. Только проверка 1000 битного простого числа методом деления, займет миллионы лет. Поэтому большие простые числа находятся методом теста. До сих пор не найден алгоритм, который бы позволил со 100% гарантией сказать, что заданное число является простым, если это число большое. Поэтому большие простые числа, научно более правильно говорить, что они псевдопростые (возможно и не простые).

Один из алгоритмов нахождения, числа на то, что число простое или составное.

  1. Берется нечетное большое число скажем, р=1001…2141

  2. Берется новое случайное число, а = RANDOM(p), где 2<a<p-1

  3. Вычисляется

  4. Если результат пункта 3 не равен 1 или не равен р -1, то число р из первого пункта 100% составное.

  5. Если результат 3 пункта равен 1 или р -1, то число р из первого пункта простое с вероятностью , и надо тест начинать заново с пункта 2(goto 2), где k= сколько раз проходил тест

Пример 1

  1. р=2147

  2. а = 458, а = RANDOM(p), где 2<a<p-1

  3. Ответ равен 661, значить число 2147 составное

Пример 2

  1. р=3559

  2. а = 48, а = RANDOM(p), где 2<a<p-1

  3. Ответ равен р-1=3558, значить число р=3559 прошло первое испытание и вероятность того что оно простое равно . Но невозможно гарантировать со 100% вероятностью, что это число простое.

  4. Обратно обращаемся ко 2 пункту и берем, другое, а = 667, и вычисляем . Ответ опять равен р–1=3558, значить число р=3559 прошло уже второе испытание и вероятность того что оно простое равно

  5. Обратно обращаемся ко 2 пункту и берем, а = 5, и вычисляем . На этот раз ответ равен 1, значить число р=3559 прошло уже третье испытание и вероятность того что оно простое равно . С каждым удачным испытанием вероятность, что число простое приближается к 1, но никогда не будет равен 1.

  6. Если наше число р=3559, пройдет испытание 2-го пункта 300 раз и ответы всегда будут или 1 или 3558, то можно говорит что это число с очень большой долей вероятности будет простым и вероятность его будет равна

Если р=3559 действительно простое, то результатом всегда будет 1 или р-1. Просто для достоверности надо много раз проводит тест.

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