Сравнение эффективности методов определения простоты числа программно-вычислительными средствами

3. Долбин И.В., Козлов Г.В., Заиков Г.Е. Структурная стабилизация полимеров: фрактальные модели. Москва, 2007. 328 с.

4. Мамедов Р.К., Владимирский Э.И., Мустафаева С.Р. Нелинейные методы идентификации и прогнозирования временных рядов. Автоматизация, телемеханизация и связь в нефтяной промышленности. № 2. Москва, 2012. С. 17 -21.

5. Владимирский Э.И., Исмайлов Б.И. Визуализация времён возврата Пуанкаре в открытых системах. Сб. статей МНПК Новые задачи технических наук и пути их решения. Уфа, 2014. С. 4-8.

6. Vladimirsky E.I., Ismailov B.I. Transient and recurrence processes in open system. International Journal of Advanced and Applied Sciences. № 4 (10), 2017. P. 106-115.

Список литературы на английском языке /References in English

1. Kachanova T.L., Fomin B.F. Physics of open systems: Production of system knowledge. Proceedings of the 9th conference "Intelligent Information Technologies in Control". Russia. St. Petersburg State Electrotechnical University, 2012. Pp. 15-24.

2. Vladimirsky E.I., Ismailov B.I. The fractional structure of "mixing-transport" as an open system. Ukraine, Kharkiv. Eastern European Journal of Advanced Technologies. Vol. 4. № 4 (70), 2014. Pp. 4-9.

3. Dolbin I.V., Kozlov G.V., Zaikov G.E. Structural stabilization of polymers: fractal models. Russia. Moscow, 2007. 328 p.

4. Mamedov R.K., Vladimirsky E.I., Mustafaeva S.R. Nonlinear methods of identification and prediction of time series. Automation, telemechanization and communication in the oil industry. № 2. Russia. Moscow, 2012. Pp. 17-21.

5. Vladimirsky E.I., Ismailov B.I. Visualization of the return times of Poincare in open systems. Collection of articles "New tasks of technical sciences and ways to solve them". Russia. Ufa. 2014. Pp. 4-8.

6. Vladimirsky E.I., Ismailov B.I. Transient and recurrence processes in open system. International Journal of Advanced and Applied Sciences. № 4 (10), 2017. P. 106-115.

COMPARISON OF EFFECTIVENESS OF METHODS FOR PRIMALITY TEST BY SOFTWARE AND COMPUTING

FACILITIES Nazarenko Yu.L. (Russian Federation) Email: Nazarenko430@scientifictext.ru

Nazarenko Yury Leonidovich - Student, DEPARTMENT OF INFORMATICS AND COMPUTER SCIENCE, DON STATE TECHNICAL UNIVERSITY, ROSTOV-ON-DON

Abstract: the article is devoted to the comparison of the effectiveness of three methods for determining the simplicity of the -test of Fermat's simplicity, the Rabin-Miller method and the Solovey-Strassen method. The problem of determining the simplicity of a number is still relevant, since there is no single formula that allows us to obtain a prime number of a given length. This need is due to the use of large prime numbers in cryptographic algorithms, such as RSA. The description of the problem of checking the number on the prostate, the problems that can be encountered in performing this task is given. There are descriptions of three methods for determining the prostate number, as well as algorithms for calculating. Also, the reasons for why the methods give different effectiveness at work are considered.

Keywords: prime number, test for the simplicity of the number, Fermat method, Rabin -Miller method, Solovey-Strassen test.

СРАВНЕНИЕ ЭФФЕКТИВНОСТИ МЕТОДОВ ОПРЕДЕЛЕНИЯ ПРОСТОТЫ ЧИСЛА ПРОГРАММНО-ВЫЧИСЛИТЕЛЬНЫМИ

СРЕДСТВАМИ Назаренко Ю.Л.

Назаренко Юрий Леонидович - студент, факультет информатики и вычислительной техники, Донской государственный технический университет, г. Ростов-на-Дону

Аннотация: статья посвящена сравнению эффективности трёх методов определения простоты числа - теста простоты Ферма, метода Рабина-Миллера и Соловея-Штрассена. Проблема определения простоты числа до сих пор актуальна, так как не существует единой формулы, позволяющей получить простое число заданной длины. Эта необходимость обусловлена использованием больших простых чисел в криптографических алгоритмах, таких как RSA. Приводится описание задачи проверки числа на простоту проблем, с которыми можно столкнуться при выполнении этой задачи. Даны описания трёх методов определения простоты числа, а также алгоритмы, по которым идут расчёты. Также рассмотрены причины того, почему методы дают разную эффективность при работе.

Ключевые слова: простое число, тест на простоту числа, метод Ферма, метод Рабина-Миллера, тест Соловея-Штрассена.

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

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

Все алгоритмы проверки простоты делятся на два больших группы: детерминированные и вероятностные. Алгоритмы первой группы позволяют точно сказать, является число простым или составным. Алгоритмы второй группы позволяют это определить, но с некоторой вероятностью ошибки. Многократное их проведение для числа, но с разными параметрами, обычно позволяет сделать вероятность ошибки сколь угодно малой величиной. Хотя простые числа изучаются уже достаточно долго, наибольшее развитие тема вероятностных проверок получила во второй половине двадцатого века именно в связи с необходимостью генерировать большие (сто и более десятичных цифр) простые числа для таких криптосистем как RSA. В качестве тестов на простоту числа, которые будут рассмотрены в данной работе, были выбраны следующие методы: тест Ферма, тест Миллера-Рабина, тест Соловея-Штрассена.

Тест простоты Ферма. Если n — простое число, то оно удовлетворяет сравнению для любого a, которое не делится на n.

Выполнение сравнения является необходимым, но не

достаточным признаком простоты числа. То есть, если найдётся хотя бы одно a, для которого ап~ 1 Ф 1 (тоd п) , то число n — составное; в противном случае ничего сказать нельзя, хотя шансы на то, что число является простым, увеличиваются. Если

для составного числа n выполняется сравнение , то число n

называют псевдопростым по основанию a . При проверке числа на простоту тестом Ферма выбирают несколько чисел a. Чем больше количество a, для которых ап~ 1 Ф 1 (тоd п), тем больше шансы, что число n простое [1]. Однако существуют составные числа, для которых сравнение выполняется для всех a,

взаимно простых с n — это числа Кармайкла. Тем не менее, тест Ферма довольно эффективен для обнаружения составных чисел.

Тест простоты Рабина-Миллера. В качестве критерия проверки, является ли заданное число n простым или составным, может служить критерий непростоты:

Нечетное число n > 3 является составным тогда и только тогда, когда n является либо полным квадратом, либо найдутся два натуральных числа x и y такие, что: x Ф ±y 2 2

( mod n), и x = y ( mod n).

На критерии непростоты основан известный вероятностный тест Миллера-Рабина, который старается найти пару x и y = 1 , удовлетворяющие критерию непростоты [2].

Пусть n - число, которое необходимо проверить на простоту. Представим n - 1 в виде n - 1 = 2s d, где d -нечетно. Назовем произвольное число a 6 Z n свидетелем простоты n , если выполняется одно из следующих условий:

1. x = ad = ±1 (mod n), или

2. (3k, 0 < k < s) x2 = -1 (mod n).

В противном случае, назовем a свидетелем непростоты n.

Алгоритм: Пусть число n > 2 - нечетно и n-1 = 2s d , где d -нечетно. Для каждого числа a от 2 до r + 1 , где r - число проверок в тесте, выполним следующие действия:

1. Вычислим x0 = ad(modn).

2. Проверим условие x0 6 {1, n - 1}. Если оно выполнится, тогда

a -свидетель простоты. Перейдем к следующему a .

3. Иначе проверим, содержится ли число n-1 в последовательность

{x1, x2, ..., xs-1}, где каждый последующий x вычисляется по формуле x1+1 = x2 (mod n).

Если ответ положительный, то a -свидетель простоты. Перейдем к следующему a < r + 1.

Иначе, найден свидетель непростоты n . Завершаем тест с сообщением «число n -составное». Если после r проверок окажется r свидетелей простоты, то заканчиваем тест с сообщением «n - вероятно простое». Считая, что время умножения логарифмическое, используя быстрое умножение по модулю, сложность работы алгоритма . Таким

образом, время работы алгоритма полиномиально [3].

Вероятностный тест простоты Соловея-Штрассена. Тест Соловея — Штрассена — вероятностный тест простоты, открытый в 1970-х годах Робертом Мартином Соловеем совместно с Фолькером Штрассеном [4]. Он опирается на малую теорему Ферма и свойства символа Якоби: Если n — нечетное составное число, то количество целых чисел a, взаимнопростых с n и меньших n, удовлетворяющих сравнению

ап = ^ j (тоd п) не превосходит П.

Составные числа n, удовлетворяющие этому сравнению, называются псевдопростыми Эйлера-Якоби по основанию a.

Алгоритм

Повторить k раз: П- = случайное целое от 2 до п — 1, включительно;

a) если НОД(а, n) > 1, тогда: вывести, что И — составное и остановиться.

b) если ап ^2 Ф (- j (тоd п) , тогда: вывести, что n — составное и остановиться.

иначе вывести, что И — простое с вероятностью 1 — 2к, и остановиться.

Вычислительные эксперименты. Для проведения вычислительных экспериментов с целью на практике выяснить, какой из выбранных методов наиболее эффективен с точки зрения времени выполнения, было разработано программное средство, реализующее данные методы проверки чисел на простоту, а также подсчитывающее время, затрачиваемое на выполнение. В качестве чисел, для которых был проведен первый раунд экспериментов, были выбраны простые числа Вудала, имеющие формулу вычисления п * 2 п~ 1 для целых п < 16. Для экспериментов был выбран диапазон 6<п<16, поскольку при меньших п время работы алгоритмов составляет менее тысячной доли секунды. Причина выбора именно простых чисел -все к шагов будут выполнены, что сведет на нет влияние случайности при выборе промежуточных чисел. Число шагов к было установлено в размере 100, что позволяет получить результат, ошибочный с вероятностью, меньшей чем 10-30.

Таблица 1. Результаты вычислительных экспериментов

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

Ферма Соловея-Штрассена Рабина-Миллера

Время работы алгоритма, мс

27 7 14 8

37 14 23 15

40 20 30 21

78 92 117 97

119 273 317 276

142 409 480 419

157 565 641 597

229 1553 1687 1541

251 1955 2110 1957

2100

1800

о 1500 z

о 1200 ю л а

| 900 а> а со

600 300 0

27 37 40 78 119 142 157 229 251 Количество десятичных знаков в чсиле

В Ферма и Рабина-миллера Н Соловея-штрассена

Рис. 1. Сравнение скорости работы алгоритмов

На основе полученных данных можно сделать следующие выводы. По графику видно, что скорость работы алгоритма Соловея-Штрассена в среднем меньше, чем скорость работы тестов Ферма и Рабина-Миллера. Это связано с тем, что в алгоритме Соловея-Штрассена необходимо вычисления символа Якоби. Скорость же работы тестов Ферма и Рабина -Миллера практически совпадают, различие не превышает статистической погрешности. Однако при этом тест Ферма обладает недостатком, о котором было сказано ранее - он неправильно определяет простоту чисел Кармайкла. Тест Рабина-Миллера, учитывая схожую скорость работы, лишён этого недостатка, так как полагается на более сильный критерий, чем тест Ферма. Поэтому, исходя из совокупности свойств рассмотренных алгоритмов, можно сделать вывод, что из рассмотренных методов наиболее эффективным является тест Рабина-Миллера.

Список литературы /References

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

2. Тест простоты / Википедия. [2017]. [Электронный ресурс]. Режим доступа: http://ru.wikipedia.org/?oldid=87697533/ (дата обращения: 02.10.2017).

3. Математические основы защиты информации/ Электронное учебное пособие / Ш.Т. Ишмухаметов, Р.Г. Рубцова. Казань: Казан. ун., 2012. 138 с.

4. Алгоритмы, используемые при реализации асимметричных криптосхем / CryproWiki [2017]. [Электронный ресурс]. Режим доступа: http://cryptowiki.net/index.php?title=Алгоритмы,_используемые_при_реали зации_асимметричных_криптосхем/ (дата обращения: 19.12.2013).

Список литературы на английском языке /References in English

1. Methods for the factorization of natural numbers: a textbook / Sh.T. Ishmukhametov. Kazan: Kazan. un., 2011. 190 pp.

2. Primality test. (2017, August 29). In Wikipedia, The Free Encyclopedia. [Electronic resource]. URL: https://en.wikipedia.org/w/index.php?title=Primality_test&oldid=797829755/ (date of access: 02.10.2017).

3. Mathematical foundations of information security / electronic tutorial / Sh.T. Ishmukhametov, RG Rubtsova. Kazan: Kazan. un., 2012. 138 pp.

4. Algorithms used in the implementation of asymmetric cryptograms. [Electronic resource]. URL:http://cryptowiki.net/index.php?title=Алгоритмы,_используемые_при_реализации _асимметричных_криптосхем/ (date of access: 19.12.2013).