УДК 511+519.719.2
Д.В. Кручинин, В.В. Кручинин
Метод построения алгоритмов проверки простоты натуральных чисел для задач защиты информации
Предложен метод построения алгоритмов проверки простоты натуральных чисел с применением аппарата обыкновенных производящих функций и операции суперпозиции функций 1п(1 + Е (х)), где Е(х) является обыкновенной производящей функцией с целыми коэффициентами. Показана связь существующих алгоритмов проверки простоты с предложенным методом. Рассмотрены примеры построения новых алгоритмов проверки простоты с использованием предложенного метода.
Ключевые слова: проверка простоты, логарифмическая производящая функция, суперпозиция производящих функций.
Задача построения алгоритмов проверки простоты
Простые числа играют важную роль в современной криптографии и защите информации. Многие современные криптографические системы строятся на базе простого числа. Поэтому алгоритмы генерации простых чисел и проверки на простоту сформированного числа являются важными инструментами при создании криптографической системы. Так, в хорошо известной криптографической системе с открытым ключом ЯБЛ потребность в выборе простых чисел имеет основополагающую позицию и от выбора простых чисел во многом определяется стойкость шифрования [1].
Все алгоритмы проверки простоты делятся на две большие подгруппы: детерминированные и вероятностные проверки. Алгоритмы первой группы позволяют точно определить, является число простым или составным. Алгоритмы второй группы позволяют это определить, но с некоторой вероятностью ошибки. Многократное их повторение для одного числа, но с разными параметрами, обычно позволяет сделать вероятность ошибки сколь угодно малой величиной. Вероятностные проверки позволяют точно говорить, является ли число составным, если число не удовлетворяет некоторым условиям проверки, поскольку для простых чисел эти условия являются обязательными. Если же число удовлетворяет всем условиям проверки, то это еще не означает, что число является простым, говорят, что «п - простое число с некоторой вероятностью». Зачастую вероятностные проверки являются более быстрыми и обладают меньшей вычислительной сложностью, чем детерминированные.
В настоящее время широко используются вероятностные проверки простоты, так объединенный алгоритм Рабина-Миллера широко используется в криптосистемах с открытым ключом для построения простых ключей длиной 512, 1024 и 2048 бит.
Логарифмические производящие функции
Логарифмической производящей функцией будем называть степенной ряд вида
£ а(п) хп, (1)
п=1
где а(п) - целочисленная последовательность.
Логарифмическая производящая функция отличается от обычной тем, что в качестве
( ) а(п)
коэффициентов степенного ряда берутся элементы а(п) , деленные на порядковый номер, т.е. п ■
Еще одно отличие заключается в том, что отсутствует свободный член.
Одно из свойств суперпозиции логарифмических производящих функций гласит, что значение суперпозиции логарифмических производящих функций без п члена для простого п будет числом целым. Обратное утверждение является неверным.
2(п) = £ ЕА (п,к )г(к) = £ ЕА (п, к) ^, (2)
к=1 к=1 к
где Е (п,к) = £ /(Л-1)/(^2) ../(^к) - композита производящей функции Е(х) = £п>о/(п)хп,
пк еСп
Я(х) = £п>ог(п)хп - логарифмическая производящая функция [2].
Метод построения алгоритмов проверки на простоту
Используя свойства логарифмических производящих функций, становится возможным построение различных алгоритмов вероятностных проверок натурального числа на простоту с применением аппарата обыкновенных производящих функций и операции суперпозиции.
Для построения алгоритмов проверки на простоту будем использовать обыкновенную и
логарифмическую производящие функции соответственно Е (х) = £ п>0 / (п) хп и
Я( х) = £п>ог(п)хп = £п>о а(я) хп . Далее необходимо получить суперпозицию данных производящих функций:
г (х) = Я( Е (х)). (3)
Для вычисления суперпозиции, согласно [3], первостепенное значение имеет вычисление композиты обыкновенной производящей функции
ЕА(п,к) = £ Д^)Д^2)...Д^к), (4)
жкеСп
поскольку справедлива формула
х(п) =£Е А (п, к )г (к). (5)
к=1
Зная [2], что значения производной данной суперпозиции для любого п будут целыми, произведем дифференцирование, которое позволяет работать с суперпозицией как с целочисленной последовательностью.
Следующим шагом будет упрощение полученного выражения, а именно получение выражения, зависящего только от п, без дополнительного суммирования по к. Для упрощения можно воспользоваться энциклопедией целочисленных последовательностей [4]. К сожалению, не всегда получается упростить данные выражения, что влияет только на вычислительную сложность. Поэтому такие выражения имеют теоретический интерес, с одной стороны, с другой же стороны, возможно использование приближенных методов оценки выражений, но не всегда целесообразно.
Далее идет приведение данного выражения к тождественному выражению (2), а именно деление на п и вычитание п-го члена суммы из выражения суперпозиции.
В итоге после всех преобразований получается выражение, в идеале зависящее только от п, которое будет целым для простых п, т.е. алгоритм вероятностной проверки на простоту.
В зависимости от параметров суперпозиции, а именно от самой логарифмической производящей функции, от композиты подставляемой производящей функции, выражение (2) имеет различные числовые и вероятностные характеристики и вычислительные трудности. Вероятность в данных проверках появляется за счет нахождения суммы элементов композиты, т. е. зависит от коэффициентов производящей функции Е(х).
Примеры построения алгоритмов проверки простоты
1. Проверка на простоту на основе суперпозиции 1п [--------------------------1---1, где
1.1- Е (х))
Е (х) == 1 + х + х2 +... + хп...
1-х
Для нахождения суперпозиции необходимо получить выражение для композиты данной производящей функции. Известно [3], что композита производящей функции Е(х) имеет следующий вид:
^(плЦЙ), (б)
тогда коэффициенты суперпозиции будут равны
г (п) = £еА (п,к )г (к) = £ -|)= — (7)
к =1 к=1к¥ 1 п
Выражение
является целым числом для простых п. После преобразования получим
щ (п-1)-
к=1кХ '
(8)
к=
2п-1 = 1mod п, (9)
что является тестом на простоту на основе малой теоремы Ферма по основанию 2.
Преимуществами данного теста являются его быстрота и маленькая трудоемкость, поскольку
ЭВМ основывается на двоичной системе счисления и 2п 1 является последовательностью единиц до разряда п. Поэтому основная трудоемкость заключается в делении на п.
Этот тест эффективно использовать для обнаружения составных чисел, а также на начальной стадии проверки простоты для больших чисел. В зависимости от требуемой погрешности проверки чисел на простоту целесообразно использовать как в криптосистемах, так и для решения прикладных задач.
( 1 'ї 2
2. Проверка на простоту на основе суперпозиции 1пI---------I, где Е(х) = ах + Рх .
1.1 - Е (х))
2
В [3] показано, что композита производящей функции Е (х) = ах+Рх имеет следующий вид:
ЕА (п,к ,а,Р) = (п-к)а2к-прп-к. (10)
Таким образом, для нахождения суперпозиции воспользуемся выражением
*п>=£(п-к)а2к-”Гкр (11)
При а = 1, Р = 1 получим проверку на простоту, основанную на числах Люка [2, 4]: выражение
Т -1
(12)
п
является целым для простых чисел, или Тп = 1modп , где Тп - числа Люка.
Рассмотрим еще один частный вариант этой последовательности, где один из параметров больше единицы, например а = 2,Р = 1. Таким образом, получаем
*п)=І(п-к)22к-”р (13)
п
- х{п) = [1,3,7,17,41,99,239,577,1393,3363,...]. (14)
Данная последовательность является последовательностью целых чисел А001333 [4], откуда формула данной последовательности имеет вид
(1-У2)п +(1+У2)"
2 . ( ) Преобразуя это выражение, получаем проверку простоты натурального числа: если п простое натуральное число, то выражение
(1-72)п +(1+ч/2)п - 2п
^^-------------------- (16)
п
является целым.
3. Проверка на простоту на основе суперпозиции 1п^^ |, где Е(х) = -—^ .
В [2] рассмотрены данные условия и получена следующая проверка на простоту: если п простое натуральное число, то значение выражения
(17)
является целым.
При использовании данной проверки на простоту при небольших значениях п была замечена следующая закономерность: ошибочно определялись простыми только квадраты и кубы самих, причем всех, простых чисел.
Выше был рассмотрен пример, где производящая функция чисел Каталана была подставляемой функцией. Теперь же рассмотрим вариант, когда логарифмическая производящая функция будет основываться на числах Каталана. Для этого проинтегрируем производящую функцию чисел Каталана и получим логарифмическую производящую функцию
Рассмотрим частный вариант этой последовательности, где а = 1,в = 1. Таким образом, получаем
Исходя из полученного выражения, получим проверку на простоту: если п простое натуральное число, то значение выражения
является целым.
При использовании данной проверки на простоту при небольших значениях п была замечена следующая закономерность: ошибочно определялись простыми только квадраты простых чисел. Поведение теста для больших чисел не рассматривалось ввиду большой трудоемкости алгоритма. Для дальнейшего использования теста необходимо его упрощение, а именно: приведение к выражению, зависящему только от п, и избавление от суммирования.
Заключение
Получен единый аналитический метод генерации алгоритмов проверки на простоту натурального числа, основанный на комбинаторных решениях и производящих функциях.
На основе полученного метода разработано несколько вероятностных проверок на простоту, основанных на числах Люка, Каталана и др. Проанализированы их показатели, такие как количество ошибок и вычислительная сложность.
Показана взаимосвязь полученного метода с существующими тестами на простоту. Так, при помощи полученного метода получен тест на основе малой теоремы Ферма по основанию 2.
Благодаря полученным результатам определены единый подход и математическое обоснование проверок на простоту натурального числа. Появляется возможность генерации более быстрых, качественных и менее трудоемких алгоритмов проверок простоты за счет подбора параметров, используемых в методе генерации. Следовательно, предполагаются улучшения существующих крип-
2
4. Проверка на простоту на основе чисел Каталана и Е(х) = ах + Рх .
(18)
(19)
Я( х) = | А( x)dx = |1—^ 4 Х dx = 1п (і- 4 х +1)-^/1- 4 х,
2х
(20)
(21)
Для нахождения коэффициентов суперпозиции
(22)
воспользуемся выражением
(23)
(24)
(25)
тографических систем, основанных на генерации и проверке простых чисел, а именно увеличении быстроты работы и уменьшении вычислительной трудности задействованных алгоритмов.
Литература
1. Ященко В.В. Введение в криптографию: учеб. пособие / В.В. Ященко, Н.П. Варновский, Ю.В. Нестеренко. - М.: МЦНМО, 2000. - 272 с.
2. Kruchinin D.V. Superposition's Properties of Logarithmic Generating Functions. - eprint arXiv:
1109.1683, 2011 [Электронный ресурс]. - Режим доступа: http://arxiv.org/PS_cache/arxiv/pdf/
1109/1109.1683v1.pdf, свободный (дата обращения: 28.10.11).
3. Кручинин В.В. Комбинаторика композиций и ее приложения. - Томск: В-Спектр, 2010. -156 с.
4. Sloane J.A. The On-Line Encyclopedia of Integer Sequences [Электронный ресурс]. - Режим доступа: http://www.research.att.com/njas/sequences, свободный (дата обращения: 28.10.11).
Кручинин Дмитрий Владимирович
Студент 5-го курса ТУСУРа
Тел.: +7-913-845-99-04
Эл. почта: [email protected]
Кручинин Владимир Викторович
Д-р техн. наук, доцент каф. ПрЭ ТУСУРа, зав. лабораторией инструментальных систем моделирования и обучения научного управления Института инноватики ТУСУРа Тел.: 8 (382-2) 42-30-67 Эл. почта: [email protected]
Kruchinin D.V, Kruchinin V. V
The method of constructing algorithms for primality testing natural numbers for the objectives of information security
We offer a method of algorithms development for testing the primality of natural numbers by using the apparatus of ordinary generating functions and operations of superposition of functions ln (1 + F (x)), where F (x) is an ordinary generating function with integer coefficients. The relation is shown between the existing algorithms for testing primality to the proposed method. There are given the examples of the development of new algorithms for testing pri-mality by the proposed method.
Keywords: primality testing, logarithmic generating function, superposition of generating functions.