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

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

CC BY
699
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОСТЫЕ СПЕЦИАЛЬНОГО ВИДА / SPECIAL PRIMES / COMMON PRIME RSA

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

Рассматривается алгоритм генерации пары простых чисел p и q, таких, что числа g = -(p 1, q 1) и h = -(pq 1) также простые. Такие простые числа впервые 2 2g рассмотрены в 2006 г. М. Дж. Хинеком в связи с предложенной им модификацией криптосистемы RSA, устойчивой к атакам на малые секретные экспоненты. Приводятся экспериментальные данные о времени работы алгоритма.

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

An algorithm for generating a pair of special primes

In this paper, a modification is described for an algorithm generating the pair of prime integers p, q such that the integers g = -(p 1,q 1) and h = -(pq 1) are also prime. The primes p, q satisfied this condition are called common 2g primes. In 2006 M. J. Hinek introduced such primes for the variant of RSA cryptosystem resistant to small private exponent attacks. The original algorithm for generating common primes can be optimized with the modification described here. The optimized algorithm is two times faster in worst case and more times in average. It takes 19 seconds to generate a pair of 512-bit common primes p, q with 384-bit prime g. The modification uses sieving technique which is also mentioned in the paper of M. J. Hinek. Despite the speed up of the algorithm, the generation of common primes still takes much more time than the generation of typical primes used in RSA cryptosystem.

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

Полагая в (5)-(7) К = Я + N, М = ЯМ,

1, если 1 ^ а ^ Я, (в) = а,

а«в = ^ 1, если Я +1 ^ а ^ Я + М, ^ (в) = а — Я,

0 в остальных случаях;

шг, если 1 ^ а ^ Я, а = г,

рк, если Я +1 ^ а ^ Я + М, а — Я = к,

Ьа

получим производящие функции для числа целых неотрицательных решений системы (2) без ограничений, а также соответственно при ограничениях (3) и (4).

ЛИТЕРАТУРА

1. Яблонский С. В. Введение в дискретную математику. М.: Наука, 1986. 384 с.

2. Гоцуленко В. В. Формула для числа сочетаний с повторениями при ограничениях и её применение // Прикладная дискретная математика. 2013. №2(20). С. 71-77.

УДК 519.6

АЛГОРИТМ ГЕНЕРАЦИИ ПАРЫ ПРОСТЫХ ЧИСЕЛ СПЕЦИАЛЬНОГО ВИДА

К. Д. Жуков, А. С. Рыбаков

Рассматривается алгоритм генерации пары простых чисел p и q, таких, что числа g = -(p — 1 ,q — 1) и h = —(pq — 1) также простые. Такие простые числа впервые 2 2g

рассмотрены в 2006 г. М. Дж. Хинеком в связи с предложенной им модификацией криптосистемы RSA, устойчивой к атакам на малые секретные экспоненты. Приводятся экспериментальные данные о времени работы алгоритма.

Ключевые слова: простые специального вида, Common Prime RSA.

В 2006 г. М. Дж. Хинек предложил вариант криптосистемы RSA, устойчивой к атакам на малую секретную экспоненту, которая была названа Common Prime RSA. Простые сомножители p и q модуля Common Prime RSA выбираются такими, чтобы числа

g = 1(Р — l,q — 1), h = 2g (Pq — !) (!)

были также простыми, причём число g должно быть достаточно большим.

Система Common Prime RSA не получила распространения. Этот факт связан с малым количеством публикаций по её анализу. Большинство атак на данную разновидность RSA были также предложены М. Дж. Хинеком (см., например, [2]). Не способствует распространению и отсутствие острой необходимости использовать малые секретные экспоненты; другим сдерживающим фактором использования Common Prime RSA является долгая генерация ключей.

Простейшая версия алгоритма генерации простых сомножителей модуля криптосистемы Common Prime RSA, предложенная в [1], описана ниже.

Алгоритм 1. (Хинек, [1])

Вход: натуральные п и т, т < п

Выход: пара п-битовых простых чисел р и д, таких, что д и Л, определяемые равенствами (1), простые, а д имеет битовый размер т 1: Выбрать случайное простое т-битовое число д.

2: Повторять

3: Выбрать случайные положительные целые (п — т — 1)-битовые числа а и Ь;

4: р := 2да + 1, д := 2дЬ +1, Л := 2даЬ + а + Ь

5: Пока р, д, Л — не простые или (а, Ь) = 1;

6: Вывести р, д.

В работе [1] отмечается, что алгоритм 1 не оптимизирован. Отметим, что простые числа можно генерировать в двух независимых подциклах. Кроме того, эксперименты показывают, что неудачный выбор простого числа g может привести к тому, что время работы алгоритма будет существенно больше среднего времени работы для заданных параметров n и m. Отсюда целесообразно генерировать простое число g внутри цикла.

Заметим, что самой частой и трудоёмкой операцией алгоритма является тест на простоту. На его первом этапе проверяется, что число не делится на малые простые. Этот этап можно ускорить, учитывая специальный вид простых. Например, вместо проверки условия r|(2ga+1) нужно проверять условие a = (—2g)-1 (mod r) для малого простого r.

Алгоритм 2

Вход: натуральные n и m, m < n; натуральный параметр метода k Выход: пара n-битовых простых чисел p и q, таких, что g и h, определяемые равенствами (1), простые, а g имеет битовый размер m 1: Построить k первых простых чисел pi,... ,pk.

2: Повторять

3: Используя технику просеивания, выбрать случайное простое m-битовое число g.

4: Вычислить gi := (—2g)-1 mod pi для всех i = 1,... , k.

5: Повторять

6: Используя технику просеивания, выбрать случайное (n — m — 1)-битовое по-

ложительное целое a, такое, что gi = a mod pi, i = 1, . . . , k.

7: Вычислить p := 2ga + 1

8: Пока p не простое

9: Вычислить hi := a(—2ga — 1)-1 mod pi для всех i = 1,..., k.

10: Повторять

11: Используя технику просеивания, выбрать случайное (n — m — 1)-битовое по-

ложительное целое b, такое, что gi = b mod pi, hi = b mod pi, i = 1,... , k.

12: Вычислить q := 2gb + 1

13: Пока q не простое и (a, b) = 1

14: Вычислить h := 2gab + a + b

15: Пока h не простое 16: Вывести p, q

Алгоритмы реализованы на языке программирования C++ с использованием библиотеки NTL [3]. В таблице проводятся результаты экспериментов на компьютере с процессором Intel core i7 с тактовой частой 3,33 ГГц при значении параметра k = 100.

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

Результаты экспериментов с 1024-битовым модулем

p и q, биты g, биты Время алг. 1, с Время алг. 2, с

256 46 24

512 320 51 31

384 58 19

512 1082 213

1024 640 908 660

768 794 98

Из таблицы видно, что, несмотря на предложенное ускорение метода построения специальных простых, выработка модуля криптосистемы Common Prime RSA занимает неприемлемо большое время. Отметим, что выработка пары случайных простых чисел без дополнительных свойств занимает десятые доли секунды.

ЛИТЕРАТУРА

1. Hinek M. J. Another look at small RSA exponents // LNCS. 2006. V. 3860. P. 82-98.

2. Hinek M. J. Cryptanalysis of RSA and Its Variants. CRC Press, 2009.

3. Shoup V. NTL — a library for doing number theory // http://www.shoup.net

УДК 519.688

ПОЛИНОМЫ ХОЛЛА ДЛЯ КОНЕЧНЫХ ДВУПОРОЖДЁННЫХ ГРУПП ПЕРИОДА СЕМЬ1

А. А. Кузнецов, К. В. Сафонов

Пусть Bk = Bo(2, 7,k) —максимальная конечная двупорождённая группа периода 7 ступени нильпотентности k. В работе вычислены полиномы Холла для Bk при k ^ 4.

Ключевые слова: периодическая группа, собирательный процесс, полиномы Холла.

Пусть Bk = B0(2, 7, k) —максимальная конечная двупорождённая группа периода 7 ступени нильпотентности k. В данном классе групп наибольшей является группа B28, порядок которой равен 720416 [1]. Для каждой из Bk получены рс-представления (power commutator presentation) [1].

Пусть aX1 ... a^" и ay1 ... a^ —два произвольных элемента в группе Bk, записанные в коммутаторном виде. Тогда их произведение равно

„ж1 „Ж" _ № ayn = az1 nzn

Cv 1 • • • Ci 1 • • • Ci 1 • • • *

Основой для нахождения степеней Zi является собирательный процесс [2, 3], который реализован в системах компьютерной алгебры GAP и MAGMA. Кроме того, существует альтернативный способ для вычисления произведений элементов группы, предложенный Ф. Холлом [4]. Холл показал, что zi представляют собой полиномиальные

1 Работа выполнена при поддержке Министерства образования и науки Российской Федерации, проект Б 112/14.

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