Научная статья на тему 'Метод построения рекуррентных вероятностных генераторов простых чисел'

Метод построения рекуррентных вероятностных генераторов простых чисел Текст научной статьи по специальности «Математика»

CC BY
418
82
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕРАТОР ПРОСТЫХ ЧИСЕЛ / РЕКУРРЕНТНЫЕ ВЫРАЖЕНИЯ / ПРОСТЫЕ ЧИСЛА / ПРОИЗВОДЯЩИЕ ФУНКЦИИ / СУПЕРПОЗИЦИЯ ПРОИЗВОДЯЩИХ ФУНКЦИЙ / PRIME NUMBER GENERATOR / RECURRENCE EXPRESSIONS / PRIME NUMBERS / GENERATING FUNCTIONS / SUPERPOSITION OF GENERATING FUNCTIONS

Аннотация научной статьи по математике, автор научной работы — Кручинин Дмитрий Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The method of constructing probabilistic recurrence generators of prime numbers

A method for constructing probabilistic recurrence generators of prime numbers proposed by using the apparatus of ordinary generating functions and operations of superposition of generating functions ln(1 + F(x)), where F(x) is a ordinary generating function with integer coefficients. Examples of the construction of prime number generators considered by using the proposed method.

Текст научной работы на тему «Метод построения рекуррентных вероятностных генераторов простых чисел»

УДК 511+519.719.2 Д.В. Кручинин

Метод построения рекуррентных вероятностных генераторов простых чисел

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

Ключевые слова: генератор простых чисел, рекуррентные выражения, простые числа, производящие функции, суперпозиция производящих функций.

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

Так, в хорошо известной криптографической системе с открытым ключом ЯБЛ потребность в выборе простых чисел имеет основополагающую позицию. Каждый пользователь ЯБЛ вырабатывает свою пару открытых и секретных ключей. Для этого ему необходимо сгенерировать два больших простых числа р ид и вычислить произведение п = рд. Затем требуется взять случайное число е, взаимно простое с ф(п) = (р -1)(д -1), и найти число й из условия ей = 1(modф(п)). Пара (п,е) объявляется открытым ключом и помещается в открытый каталог. Остальные числа (р, д,ф(п),й) образуют секретный ключ. Для расшифровки достаточно знать пару (п,й). Поскольку успешное решение задачи факторизации (разложения) числа п позволяет полностью дешифровать схему ЯБЛ и определить секретный ключ, то выбор простых чисел р и д во многом определяет стойкость шифрования [1].

В данной работе рассматривается задача генерации простых чисел, в том числе в заданном числовом промежутке.

Генерация простых чисел

Одним из методов получения простых чисел является использование какой-нибудь формулы, порождающей простые числа. Например, еще Л. Эйлер предложил многочлен

р(х) = х2 + х + 41, (1)

значения которого в первых 40 членах натурального ряда дают простые числа.

Впрочем, есть гораздо более сильный результат Ю. Матиясевича (1970), который доказал, что существует многочлен с целыми коэффициентами от нескольких переменных, значениями которого будут в точности все простые числа [2].

Генерация простых чисел, основанная на тесте Поклингтона.

Теорема Поклингтона. Пусть п = рЯ +1, и полное разложение множителя Я на простые множители известно. Тогда если для некоторого а < п выполняются условия:

1) ап-1 = 1mod п,

п-1/

2) НОД(а 'д,п) ф 1 для любого д | Я , то любой делитель числа п сравним с 1 по модулю Я.

Пусть задано простое число р:

1. Выбирается случайным образом чётное число Я на промежутке р < Я < 4р + 2 и определяется п = рЯ + 1.

2. Проверяется получившееся число п на отсутствие малых простых делителей.

3. Проверка простоты числа п с помощью теста Рабина-Миллера для различных значений а <р. Если число определяется как составное число, то выбирается новое значение Я.

Оценка эффективности этого метода зависит от плотности распределения простых чисел и расстояния между соседними простыми числами [2].

На основе теоремы Поклингтона строится алгоритм построения простых чисел, изложенный в Стандарте (ГОСТ Р34.10-94) «Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма».

Также существуют методы построения больших простых чисел, использующие не только простые делители п -1, но и делители чисел п + 1, п +1, п + п + 1. В основе их лежит использование последовательностей целых чисел, удовлетворяющих линейным рекуррентным уравнениям различных порядков.

Генерация простых чисел с использованием решета Аткина

Решето Аткина - быстрый современный алгоритм нахождения всех простых чисел до заданного целого числа. Основная идея алгоритма состоит в использовании неприводимых квадратичных форм (представление чисел в виде ах2 + Ьу2). Это оптимизированная версия старинного решета Эратосфена: решето Аткина проделывает некоторую предварительную работу, а затем вычеркивает числа, кратные квадрату.

Алгоритм имеет асимптотическую сложность - 0(п/1о§1о§п) и требует п12+о(1) бит памяти, это схоже по сложности с уже известными алгоритмами, но требование памяти существенно ниже в решете Аткина [3].

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

1. Выписывается множество чисел {п,п + 2,п + 4,...,п + 2т}, где п>х - наименьшее нечетное число, п + 2т - верхняя граница интервала.

2. Выполняется просеивание этого интервала с использованием решета Эратосфена или Аткина с помощью множества небольших простых чисел {3,5,...,р£}, ограниченного сверху границей В. При В = 10 отсеется примерно половина кандидатов. При р£ < 1000 отсеется 5/6 всех кандидатов.

3. Проверяются оставшиеся кандидаты с помощью теста Рабина-Миллера [2].

В 2008 г. Э. Роуланд получил рекуррентную последовательность, состоящую только из простых чисел, что делает возможным построение рекуррентного генератора простых чисел [4].

Последовательность задается следующим образом:

Пусть а\ = 7 и для всех п> 1 ап = ап-1 + НОД(п,ап-\), то для всех п>1 выражение Ьп = ап - ап-1 принимает только 1 и простые значения.

Недостатки данного метода генерации заключаются в следующем:

• генерация происходит при помощи дополнительной операции отыскания наибольшего общего делителя;

• генерируются простые числа не подряд;

• множественные повторения простых чисел, особенно числа 1;

• неизвестно, генерируются ли все простые числа.

Построение рекуррентных выражений для определения простоты числа

Для построения рекуррентных выражений, определяющих простоту числа, рассмотрим следующую суперпозицию производящих функций:

О( х) = Я( Е (х)), (2)

где внешней функцией является производящая функция Я( х) = 1п(-----), а внутренней - обыкновен-

1-х

ная производящая функция Е (х) с целыми коэффициентами.

Известно [5], что данная суперпозиция О(х) = ^ §(п)хп обладает следующим свойством:

п>1

• для любых значений п > 0, значения выражения п§ (п) являются целыми числами.

Для последовательности, задаваемой целочисленной функцией п§ (п), возможно построение рекуррентных функций, также однозначно определяющих заданную последовательность.

Рассмотрим еще одно свойство суперпозиции 0( х) = ^ g (и) х1 :

и>1

• для любых простых значений и, значения выражения

ng (и) - / (1)и и

являются целыми числами [5].

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

Рассмотрим ряд примеров, характеризующих вышеописанные утверждения.

Пример 1

2 Г 1

Пусть Е(х) = х+х , тогда функция коэффициентов g(и) суперпозиции 0(х) = 1п'

1-х - х2

имеет вид

п

g(n)=Z|^n-kjp (4)

щ (и) = [1,3,4,7,11,18,29,47,76,123,199,322,521,843...].

Это последовательность чисел Люка, где числа Люка определяются следующим образом:

„ . '1+75 Т Г1-Т5'

1(>г) =

или рекуррентная формула

Ди) = Ь(и -1)+Ь(и - 2).

Приводя рекуррентную формулу к виду (3), получаем выражение

Ь(и-1)+Ь(и - 2)-1

(5)

и

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

Рекуррентная формула и-го члена последовательности определяется следующим образом:

Ни) =

и

где а(и) = а(и -1) + а(и - 2) + 1, (6)

а(1) = 0, а(1) = 2.

Для и = 23 последовательность будет следующая:

011 — 2 — 4 — — —18107 40 42113631103 210 5777 492 7563 24475198012786

2 6 4 3 5 4 7 15 8 18 10 21 11

Видно, что для и < 23 целые значения принимают только элементы при простых порядковых номерах. К сожалению, в общем виде существуют и псевдопростые числа и, элементы при которых также целые числа. Так, для и <150000 существуют 31 псевдопростое число, называемое псевдо-простыми числами Люка:

705, 2465, 2737, 3745, 4181, 5777, 6721, 10877, 13201, 15251, 24465,29281, 34561, 35785, 51841, 54705, 64079, 64681, 67861, 68251, 75077, 80189, 90061, 96049, 97921, 100065, 100127,105281, 113573, 118441, 146611. Пример 2

Пусть Е(х) =----, тогда функция коэффициентов g (и) суперпозиции 0( х) = 1п [-| имеет вид

1-х I х )

2и -1

^------, (7)

к=1к'"-' и

g (и) =1к- (и-1 к=1кХ 1

ng (и) = [1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,...].

Это последовательность чисел Мерсенна, рекуррентная формула которых имеет следующий вид:

М(п) = М (п-1) + 2М (п-2) + 2, (8)

Приводя рекуррентную формулу к виду (3), получим выражение, генерирующее последовательность чисел от 1 до п, такую, что при простых значениях п элемент последовательности одно-

значно будет целым.

Рекуррентная формула п-го члена последовательности определяется следующим образом:

Ь(п) = ^

п

где а(п) = 2а(п -1) + 2, (9)

а(1) = 0.

Для п = 20 последовательность будет следующая:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

п , „ 7 г 31 0 127 170 511 2047 8191 10922 32767 131071 ^пепл 524287

0,1,2,—,6,—, 18,-------------------------------------,-,-, 186,-,630,-,-,-,7710,-,27594,-.

2 3 4 3 5 6 7 5 8 9 10

Видно, что для п < 20 целые значения принимают только элементы при простых порядковых номерах. К сожалению, в общем виде существуют и псевдопростые числа п, элементы при которых также целые числа, они называются числа Сарруса. Так, для п < 10000 существует гораздо больше чисел Сарруса, чем псевдопростых чисел Люка:

341, 561, 645, 1105, 1387, 1729, 1905, 2047, 2465, 2701, 2821, 3277,

4033, 4369, 4371, 4681, 5461, 6601, 7957, 8321, 8481, 8911.

Использование полученных рекуррентных выражений

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

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

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

Литература

1. Rivest R. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems / R. Rivest, A. Shamir, L. Adleman // Communications of the ACM. - 1978. - Vol. 21(2). - P. 120-12б.

2. Ишмухаметов Ш.Т. Методы факторизации натуральных чисел: учеб. пособие. - Казань: Казан. ун., 2011. - 190 с.

3. Atkin A.O.L. Prime sieves using binary quadratic forms / A.O.L. Atkin, D.J. Bernstein // Mathematics of Computation. - 2004. - Vol. 73. - P. 1023-1030.

4. Rowland E.S. A Natural Prime-Generating Recurrence // Journal of Integer Sequences. - 2008. -Vol. 11, article 08.2.8. - P. 1-13.

5. Кручинин Д.В. О свойствах коэффициентов суперпозиции некоторых производящих функций // Прикладная дискретная математика. - 2012. - № 1(15). - С. 55-59.

Кручинин Дмитрий Владимирович

Аспирант каф. комплексной информационной безопасности электронно-вычислительных систем ТУСУРа

Тел.: +7-913-845-99-04

Эл. почта: kdv@keva.tusur.ru

Kruchinin D.V

The method of constructing probabilistic recurrence generators of prime numbers

A method for constructing probabilistic recurrence generators of prime numbers proposed by using the apparatus of ordinary generating functions and operations of superposition of generating functions ln(1 + F(x)), where F(x) is a ordinary generating function with integer coefficients. Examples of the construction of prime number generators considered by using the proposed method.

Keywords: prime number generator, recurrence expressions, prime numbers, generating functions, superposition of generating functions.

i Надоели баннеры? Вы всегда можете отключить рекламу.