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

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

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

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

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

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

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

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

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

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

О

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

1-х

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

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

п>1

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

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

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

и>1

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

ng (и) - / (1)и и

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

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

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

Пример 1

2 Г 1

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

1-х - х2

имеет вид

п

g

щ (и) = [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

и

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

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

Ни) =

и

где а

а(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

^------,

к=1к'"-' и

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

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

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

М

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

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

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

Ь(п) = ^

п

где а

а(1) = 0.

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

п , „ 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.