О некоторых алгоритмах нахождения простых чисел
Оценка 4.8

О некоторых алгоритмах нахождения простых чисел

Оценка 4.8
Исследовательские работы
doc
математика
9 кл—11 кл +1
05.01.2020
О некоторых алгоритмах нахождения простых чисел
Об алгоритмах Миллера и "параболическое решето" нахождения простых чисел
Алгоритмы нахождения простых чисел.doc

МОУ ДОД Дворец творчества детей и молодежи

Донская Академия Наук Юных Исследователей

 

 

 

Наименование секции: Математика

 

 

 

 

 

Исследовательская работа

 

 

тема: «О некоторых алгоритмах нахождения простых чисел»

 

 

 

 

Автор работы:

 

Кряквина Лилия Низамитдиновна,

учитель математики

МБОУ СОШ № 31

г. Ростова-на-Дону

 

 

 

 

 

 

 

 

 

 

г. Ростов-на-Дону

2018 г.

 

 

 

 

 

 

 

Оглавление

1.     Введение

2.     Результаты исследования.

3.     Выводы.

4.     Приложение

5.     Литература

 

 


1.Введение

С глубокой древности простые числа привлекали внимание исследователей своими свойствами. Современником и другом Архимеда был Эратосфен. К числу изобретений Эратосфена относится так называемое «решето Эратосфена». Оно позволяет «просеивать» числа и отобрать из них простые. По сути дела, это был первый в мире алгоритм - свод правил, строго следуя которым непременно получишь верный результат. Располагая ряд чисел в их натуральной (естественной) последовательности, начиная с единицы и вычеркивая из него все числа после двойки - через одну цифру, после тройки - через две, после четырех - через три цифры и т.д. Таким образом, останутся только простые числа, т.е. такие числа p >1, которые делятся только на себя p и на единицу.

Эратосфеново решето поработало на исследователей простых чисел - с древнейших времен до наших дней. Разработкой основ теории чисел занимались такие корифеи математики, как Эйлер, Гаусс, Лежандр, Ферма, Чебышев. В 1934 году индийский студент С.П. Сундарам разработал свой детерминированный алгоритм нахождения всех простых чисел до некоторого целого числа n. Алгоритм работает с нечётными натуральными числами большими единицы, представленными в виде 2m+1, где m является натуральным числом. В последствии этот метод нахождения простых чисел получил название «решето Сундарама».

Решето Аткина — быстрый современный алгоритм нахождения всех простых чисел до заданного целого числа N. Основная идея алгоритма состоит в использовании неприводимых квадратичных форм (представление чисел в виде a×x²+b×y²). Предыдущие алгоритмы в основном представляли собой различные модификации решета Эратосфена, где использовалось представление чисел в виде редуцированных форм (обычно прозведения x×y). Отдельный этап алгоритма вычеркивает числа, кратные квадратам простых чисел. Алгоритм был создан А. О. Л. Аткиным и Дэниел Ю. Бернштайном ([2]).

До XX века интерес к простым числам носил теоретический, а иногда даже мистический характер. В 1976 году публикуется работа Уитфилда Диффи и Мартина Хеллмана «Новые направления в криптографии». Данная работа открыла новую область в криптографии, теперь известную как криптография с открытым ключом. Также в ней содержалось описание алгоритма Диффи — Хеллмана, позволявшего сторонам сгенерировать общий секретный ключ, используя только открытый канал. Кроме этого одним из результатов публикации стал значительный рост числа людей, занимающихся криптографией.

Хотя работа Диффи-Хеллмана создала большой теоретический задел для открытой криптографии, первой реальной криптосистемой с открытым ключом считают алгоритм RSA (названный по имени авторов— Райвист(Rivest), Шамир( Shamir ) и Адлеман (Adleman). Опубликованная в августе 1977 года работа позволила сторонам обмениваться секретной информацией, не имея заранее выбранного секретного ключа.

Таким образом, после публикации выше указанных трудов простые числа нашли важное практическое применение в области ассиметричных криптографических алгоритмов. Райвист, Шамир и Адлеман построили пример такого алгоритма, который основан на сложности алгоритма факторизации (разложения на множители) натуральных чисел. Обычно для него используют два неизвестных больших простых числа и находят их произведение. Эту операцию выполнить легко. Для используемых ныне простых чисел, имеющих более ста десятичных цифр, современный компьютер это умножение выполняет за доли секунды. А обратную операцию при неизвестных сомножителях на сегодняшний день компьютер будет выполнять несколько лет, а может быть и десятков лет. Это сравнимо со слиянием стакана молока и стакана воды (слияние происходит моментально, а обратный процесс разделения очень труден и требует много времени).

Для того чтобы зашифровать некоторое сообщение, используется известное произведение простых чисел и шифрование выполняется легко и быстро. Для того, чтобы расшифровать зашифрованное сообщение, нужно знать секретные сомножители. Теоретически их можно найти, а практически для этого требуется много времени, по истечении которого расшифрованная информация уже, как правило, устаревает. Такие алгоритмы используются в разных платежных системах, в сетях Интернет и в разных других сферах жизнедеятельности. На таких алгоритмах основана цифровая подпись, без которой прекратилась бы работа современных банков.

Практическое применение криптографии стало неотъемлемой частью жизни современного общества – ее используют в таких отраслях как электронная коммерция, электронный документооборот (включая цифровые подписи), телекоммуникации и других.

         В работе внимание уделяется некоторым современным методам отыскания простых чисел. «Параболическое решето» (такая интерпретация была отмечена Ю.В. Матиясевичем и Б.С. Стечкиным) описывает мало известное теоретико-числовое свойство параболы. Приводится доказательство того, что если рассмотреть всевозможные натуральные числа a и b, начиная с двойки, отложить на оси абсцисс точки –a и b, то отрезки, соединяющие соответствующие точки на параболе, проходят через все составные числа на оси ординат. Представлены вероятностный алгоритм Миллера и малая теорема Ферма, позволяющие составные числа отличить от простых, находить псевдопростые и строго псевдопростые числа. Оба алгоритма достаточно просты и легко применимы на практике.

 

 

 

 

 

 

 

 

 


2. Результаты исследования.

2.1 Парабола и простые числа ([1]).

У параболы f(x) = x2 есть мало известное теоретико-числовое свойство. Возьмем положительные числа a и b и отметим на оси x точки –a и b. Поднявшись на параболу, получим точки с координатами (-a;a2) и (b;b2). Соединим точки, отмеченные на параболе отрезком (см. приложение). В какой точке пересечет этот отрезок ось ординат?

Как первым отметил Август Мебиус (1790 – 1868), ордината точки пересечения будет равна произведению a*b. Можно убедиться в этом с помощью элементарной проверки.

Если рассмотреть всевозможные натуральные числа a и b, начиная с двойки, то отрезки, соединяющие соответствующие точки на параболе, проходят через все составные числа на оси (см. приложение).

Докажем это.

Пусть a>0, b>0, a ¹ 1, b ¹ 1, a ¹ b.

Формула yy0 = k(x - x0)                                                                                  (1)

задает уравнение прямой, которая проходит через точку с координатами (x0;y0), где x0 = - a, y0 = a2, угловой коэффициент этой прямой

k=, то есть k=.

После подстановки соответствующих значений x0 , y0 и k в (1) имеем уравнение

y – a2 = (b – a)(x + a) или y =a2 + (b – a)x +ab – a2 , y = (b – a)x + ab.

Если x = 0, то y = a*b, что и требовалось доказать.

Точки оси y, имеющие простую координату, не пересекает ни один отрезок.

Докажем это.

Пусть отрезок пересекает ось y в точке c = p, где p – простое число, тогда из выше доказанного утверждения следует, что y = ab = p. Получили противоречие.

            Это свойство параболы называют еще «параболическое решето».

2.2 Проверка на составленность. Алгоритм Миллера ([3]).

Имеется несколько способов выяснить, является ли данное число составным, не разлагая его на множители. Теоретически наиболее привлекателен способ, основанный на теореме Вильсона, которая утверждает, что число p является простым тогда и только тогда, когда выполнено сравнение (p-1)! º -1 (mod p). К сожалению, этот способ практически бесполезен, так как не существует алгоритма, который вычислял бы (p-1)! mod p за разумное время. Других приемлемых критериев простоты числа не существует, поэтому используются теоремы, дающие необходимые условия. Согласно малой теореме Ферма, если N простое, то для любого целого a, не делящегося на N, имеет место сравнение aN-1 º 1 (mod N) или aN-1 = 1+kN, где kÎZ ,

то есть (aN-1 – 1) делится на N.                                                                          (2)

Если же при каком-то a это сравнение нарушается, то N – составное число. (2) является лишь необходимым условием простоты числа N. Исключения, т.е. составные числа, удовлетворяющие малой теореме Ферма, редки, однако они существуют. Такие числа называются псевдопростыми.

Альфордом, Грэнвилом и Померанцом доказано, что существует бесконечно много псевдопростых чисел.

Малую теорему Ферма нетрудно усилить. Если p - простое нечетное число и (a, p) =1, то a(p-1)/2 º ± 1 (mod p). Это сравнение сильнее, чем сравнение Ферма; в частности, оно позволяет исключить все составные числа; например, N = 1729 удовлетворяет сравнению a(N-1)/2  º 1 (mod N), то есть (a(N-1)/2  - 1) делится на N, для всех a, взаимно простых с N.

         В 1976 году Миллер предложил эффективный вероятностный алгоритм, позволяющий отличить составное число от простого. Если N – простое число,

N – 1= 2k b, где b нечетно, то в силу малой теоремы Ферма для каждого a, удовлетворяющего условию (a, N) = 1, хотя бы один из множителей в произведении

 (ab – 1)(ab + 1)(a2b + 1)…(am +1) = aN-1 -1 делится на N, где m = 2k-1b. Чтобы отличить составные части числа от простых, используется обращение этого свойства.

         Пусть N – нечетное составное число, N - 1 = 2kb, где b нечетно, и пусть число a, 1<a<N, таково, что нарушается одно из двух условий:

(i)               N делится на a;

(ii)             (ab – 1) или (ab + 1) делится на N, или существует такое целое l, ,

что ac º - 1, то есть (ac +1) делится на N, где c= 2l b.

ЗАМЕЧАНИЕ. Натуральное число N, удовлетворяющее условию (ii), называется строго псевдопростым числом по основанию a ([3]).

         Алгоритм Миллера устроен следующим образом.

На входе задано нечетное число N, N>1.

Шаг 1. Случайным образом выбираем числа a, 1<a<N и проверим для этого числа свойства (i) и (ii). Если нарушено хотя бы одно из этих свойств, то число N составное.

Шаг 2. Если оба условия (i) и (ii) выполнены, возвращаемся к шагу 1 ([4]).

Для всех простых чисел малая теорема Ферма выполняется. Если же она выполняется для составного числа, то оно является псевдопростым.

Пример № 1.

Например, проверим с помощью малой теоремы Ферма, что число N =13 является простым. Действительно, N – 1 = 12 = 22 * 3;

212 º 1 (mod 13), так как (212 – 1):13 = 315.

Пример 2.

Число 341 = 11*31 – первое псевдопростое число по основанию 2.

2340 mod 341 =1. Но это число уже не будет псевдопростым по основанию 3, так как 3340 º 56 (mod 341). Наименьшим псевдопростым числом по основанию 3 будет число 91, так как 390 º 1 (mod 91), то есть (390 – 1) делится на 91.

Псевдопростые числа по основанию 2 образуют последовательность: 341, 561, 645, 1105, 1387, 1729, 1905, 2047, 2465, 2701, 2821, 3277, 4033…

Псевдопростые числа по основанию 3 – это последовательность: 91, 121, 286, 671, 703, 949, 1105, 1541, 1729, 1891, 2465, 2665, 2701, 2821…

В теории чисел числом Кармайкла (кармайкловым числом) называется всякое составное число n, которое удовлетворяют сравнению an-1 º 1 (mod n) для всех целых a, взаимно простых с n. Другими словами, числом Кармайкла называется составное число n, которое является псевдопростым Ферма по каждому основанию a, взаимно простому с n.

Пример № 3.

Например, число N = 561 = 3*11*17 удовлетворяет сравнению (2) для любого a, взаимно простого с N. Так как N-1 = 560 делится на каждое из чисел 2, 10, 16, то с помощью малой теоремы Ферма нетрудно показать, что 561 есть псевдопростое число ([3]). 561 – наименьшее из чисел Кармайкла. 1105 – второе кармайклово число. Чисел Кармайкла бесконечно много. Есть кармайкловы числа, имеющие три простых положительных множителя. Разложения первых таких чисел Кармайкла на простые множители таковы:

1105 + 5 * 13 * 17

1729 = 7 * 13 * 19

2465 + 5 * 17 * 29

2821 = 7 * 13 * * 31

6601 = 7 * 23 * 41

8911 = 7 * 19 * 67

Первые кармайкловы числа с четырьмя простыми множителями:

         41041 = 7 * 11 * 13 * 41

         62745 = 3 * 5 * 47 * 89

         63973 = 7 * 13 * 19 * 37

         75361 = 11 * 13 * 17 * 31

         101101 = 7 * 11 * 13 * 101

         126217 =7 * 13 *19 * 73

         172081 = 7 * 13 * 31 * 61

         188461 = 7 * 13 * 19 * 109

278545 = 5 * 17 * 29 * 113

         340561 = 13 * 17 * 23 * 67.

Если же для составных чисел выполняются условия Миллера, то такие числа называются строго псевдопростыми.

Пример № 4.

Покажем, что число 3277 = 29*113 является строго псевдопростым по основанию 2. Действительно, имеем 3276 = 22 * 819. 22*819 º 1282 º - 1 (mod 3277), так как (1282 + 1):3277 = 5. Наименьшее строго псевдопростое число по основанию 2 – это 2047 = 23 * 89.

 

Если N – простое число, то для него условия (2), (i), (ii) всегда выполняются. Обратное утверждение неверно. При выполнении малой теоремы Ферма и условий Миллера  число N не обязательно будет простым. При выполнении (2) псевдопростым, а при выполнении (ii) – строго псевдопростым.

Если оба условия алгоритма Миллера выполняются для достаточно большого набора a: (a;N) = 1, то вероятность того, что N будет составным ничтожно мала.

Пример № 5.

Числа

2047 = 23 * 89;

42799 = 127 * 337;

90751 = 151 * 601;

1387 = 19 * 73;

4371 = 3 * 31 * 47;

8911 = 7 * 19 * 67

удовлетворяют условию Миллера, но не являются простыми. Эти числа – строго псевдопростые.

В 1980 году Рабин доказал, что если N – нечетное составное число, то количество оснований a, по которым оно окажется строго псевдопростым, будет меньше, чем (N – 1)/4 ([3]).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Выводы

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

 

 

 

 

 

 

 


4. Приложение




 

 


5. Литература

1.     http://www.etudes.ru/utils/swf.php?id=022

2.     http://ru.wikipedia.org/wiki/Решето_Эратосфена

3.     О.Н. Василенко. Теоретико-числовые алгоритмы в криптографии. М.: МЦНМО, 2003.

4.     Ю.П. Соловьев, В.А. Садовничий, Е.Т. Шавгулидзе, В.В. Белокуров. Эллиптические кривые и современные алгоритмы теории чисел. Москва – Ижевск: Институт компьютерных исследований, 2003.

 

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел

О некоторых алгоритмах нахождения простых чисел
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
05.01.2020