Научная статья на тему 'Сравнительный анализ алгоритмов метода квадратичного решета для факторизации больших целых чисел'

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

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

Аннотация научной статьи по математике, автор научной работы — Мкртчян К. Г.

Рассмотрен метод факторизации больших целых чисел.

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

Analysis and comparison of two algorithms of numerical sieve method

A method of factorizing of great integer is considered.

Текст научной работы на тему «Сравнительный анализ алгоритмов метода квадратичного решета для факторизации больших целых чисел»

Алгоритм поиска гиперэллиптических кривых

Об авторе

Ю.Ф. Болтнев — ст. преп., РГУ им. И. Канта.

УДК 511

К.Г. Мкртчян

СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ МЕТОДА КВАДРАТИЧНОГО РЕШЕТА ДЛЯ ФАКТОРИЗАЦИИ БОЛЬШИХ ЦЕЛЫХ ЧИСЕЛ

Рассмотрен метод факторизации больших целых чисел.

А method of factorizing of great integer is considered.

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

Первый вариант алгоритма

Первый вариант реализации рассматриваемого метода имеет следующий вид [1; 2; 5]. Пусть дано нечетное составное число n.

Шаг 1. Выберем границы P и А порядка величины log n loglog n. Число А должно быть больше P, но не превышать сравнительно малой

его степени, например P < А < P2. Порядок роста функции e^108 nloglogn (она обозначается L(n)) находится в промежутке между многочленами

от logn и от n. Если n и 106, то L(n) и 400.

Шаг 2. Для t = [4n ] +1, [уШ ] + 2,..., [yfn ] + А выписываем в столбец

л

по порядку целые числа t - n .

Шаг3. Для каждого нечетного простого числа р^Р проверяем условие n = 1 и при его невыполнении p удаляем из факторной базы. p

Шаг 4. Если p — нечетное и n-квадратичный вычет по модулю p (случай p = 2 рассмотрен отдельно), решаем уравнение t2 = n(mod pe) для р = 1,2,... Берем р в порядке возрастания, пока не окажется, что уравнение не имеет решений t, сравнимых по модулю pe с каким-либо из чисел в области урп +1 +А. Пусть р — наибольшее из таких

чисел, а t1 и t2 — два решения t2 = n (mod pe) и t2 =-t1(mod pe) (не требуется, чтобы t1 и t2 принадлежали отрезку ([л/П ] +1, h/n ] + А)).

105

К.Г. Мкртчян

106

Шаг 5. При том же p просматриваем значения t2 - п. В столбце для p ставится 1 против всех t2 - п, для которых t отличается от ^ на некоторое кратное p, после заменяется 1 на 2 для всех t2 - п, что t отличается от ^ на кратное р2, и т. д. до рв. Затем делается то же самое с t2 вместо ^ . Наибольшим числом, которое появляется в этом столбце, будет р .

Шаг 6. Каждый раз, когда ставится 1 или заменяем 1 на 2, 2 на 3 и

,2 -так далее, делим число t - п на p и сохраняем полученный результат.

Шаг 7. В столбце под p = 2 при п ф 1(шод8) ставим 1 против t2 - п с нечетным t и делим t2 - п на 2. При п = 1(шод8) решаем t2 = n(шod2в) (но при Р ^ 3 уравнение будет иметь 4 различных решения . I-,. 14).

Шаг 8. Решаем уравнение для всех простых чисел, не превосходящих P, отбросив все t2 - п, кроме обратившихся в 1 после деления на все степени p, не превосходящих P, получим следующие результаты:

Таблица 1

t t2 - n p1 p2 pp

tl (ti)2 - n a11 a12 a1p

tl (t2 )2 - n a 21 a 22 2 8

tA (tA )2 - n a A1 a A2 a Ap

Шаг 9. Ищем строки, у которых суммы элементов в каждом столбце

четны. Ищем в t2 = s2(modп) величины t и 5 из 5 = ПРкв , t = Пtj при

к j

I sj /sj Л, 1 ^к^Р, ще степень р для каждого р равна половине а.к . t и 5

удовлетворяют условиям t ^ ±5 (mod n). При последовательном прохождении шагов множители n ищем, вычисляя НОД (t + 5, n) и НОД (t - 5, n).

Второй вариант алгоритма

Во втором варианте для порождения В-чисел используется подход, обобщающий метод Ферма [1; 2; 5]. У функции f (x) = (x + Уп J)2 - n при каждом x е Z имеем нетривиальное сравнение (x + \_Vn" J)2 = f (x) mod n, причем f(x) при малых x мало: /(a')sJ A'2 +2xyfn , (x + \jn J)2 Ф f (x). Поэтому если вместо b рассматривать значения b = f(x) при случайных x из интервала -М ^ х М, то вероятность порождения В-чисел возрастает. Отсеим те х, которые дают разложение f(x) на множители из В. Для каждого p е B, сомножителя в f (x) = (x + \\fn J)2 - n = ПPa”(x), решаем

peB

уравнение (x + \yfn J)2 -n = 0modp в кольце Zp. Если г/p),r2(p) — решения, то x = г/p) + jp,i = 1,2, j e Z.

Сравнительный анализ алгоритмов квадратичного решета

Найдя корни г/p\ г2(p) для каждого p e B, оставим в [-М, М] только х, где х = p) mod p выполняется для достаточно большого количества p e B . Знание для х списка p e B, для которых выполняются эти сравнения, поможет быстрее осуществить факторизацию числа f(x).

Сравнение и анализ вариантов метода проведем на примере

Разложим на множители п = 174 833. Здесь [4п ] = 418 .

Шаг 1. Определяем границы построения: i°g174S33 i°g iogi74S33 ^ 7,4 .

Выбираем границы P = 50 и A = 100. Так как границы сравнительно невелики, то возрастает вероятность построения «неудачной» таблицы, в которой не будет соотношений между строками по модулю 2.

Шаг 2. Строим 1-й столбец t таблицы с величинами в промежутке 419 — 518 и 2-й — со значениями t2 - 174S33 из промежутка 728 — 93 491.

Шаг 3. Строим факторную базу B. Выбираем простые числа из 3 — 100 и оставляем те, для которых 174 833 = 1, то есть 174 833 должно быть

p

квадратичным вычетом по модулю выбранного простого числа: B = {7, 13 , 41 , 43}.

Шаг 4. Для всех p e B решаем t2 = 174 833 (modpb) при b = 1, 2, ..., пока решение t сравнимо по модулю pe с любым из чисел t 1-го столбца.

Таблица 2

Простое число p 1-е решение t1 2-е решение t2 Максимальная степень b

13 16 153 2

41 3 38 1

43 9 34 1

Шаг 5 — 6. Фиксируем p e B и из 2-го столбца определяем t, кратные p и его степеням.

Шаг 7. Так как 174 833 = 1 (mod 8), то для p = 2 решаем t2 = 174 833 (mod 2b), находим максимальную степень b и заполняем столбец для p = 2. Получаем (максимальная степень в данном случае достаточно велика) b = 12.

Выбираем t из 1-го столбца, сравнимые с полученными решениями.

Шаг 8. Берем только строки, для которых t2 -174 833 есть В-число. В нашем примере это таблица 3 (с прочерками на месте нулевых показателей степени):

Таблица 3

b = 1 Г = 13 p = 41 p = 43

t1 = 3 t2 = 10 t1 = 3 = 3 00 ti = 9 t2 = 34

419 426 454 448 439 421

432 439 495 489 482 464

107

108

К. Г. Мкртчян

Окончание табл. З

Ъ = 1 p = 13 p = 41 p = 43

t! = 3 t2 = 10 t! = 3 = 3 00 t! = 9 4 3 =

445 452 — — — 507

458 465 — — — —

471 478 — — — —

484 491 — — — —

497 504 — — — —

510 517 — — — —

Ъ = 2 t! = 16 3 5 1 = сч t! = 3 8 7 6 1 = 7 6 2 = 2 8 5 1 =

— 491 — — — —

Шаг 9. Далее ищем соотношения по модулю 2 между строками построенной таблицы. Ясно, что таких строк нет, в качестве границ были выбраны не достаточно большие величины. Увеличиваем значение А и проделываем все 9 шагов заново. Получаем разложение на простые множители исходного числа: 174 833 = 359 • 487.

Используем второй вариант метода для факторизации того же числа. Находим пару (х, у): п = х2 + у2. Перебираем в качестве кандидатов х числа \4и \+1, [л/и \+ 2,... и проверяем ([•Ш \ + і)2 -п = у2. Проверяем, является ли у = х2 - п полным квадратом. Если х2 - п = у2, то и - составное, т. е. п = аЬ, где а = х + у, Ь = х - у. Если ] = х2 - п — не полный квадрат, то переходим к следующему значению х.

Перебираем х, вычисляем ] = х2 - п и проверяем, является ли ] полным квадратом. Продолжаем, пока не окажется, что ] — квадрат некоторого целого числа. На пятом шаге находим пару (х = 423, у = 64), которая удовлетворяет условиям метода, следовательно, и — составное, т. е. п = аЬ . Находим простые делители и:

а = х + у,Ь = х - у, а = 423 + 64 = 487, Ь = 423 - 64 = 359, 174 833 = 359 • 487.

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

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

1. Koblitz N. A Course in number theory and cryptography. Springer-Verlag,

1994.

2. Айерленд К., Роузен М. Классическое введение в современную теорию чисел.

3. Алешников С.И., Болтнев Ю.Ф. Математические методы защиты информации: Алгебраические методы: Учеб. пособие. Калининград: Изд-во КГУ, 2000.

4. Алешников С. И., Пышкин А.В. Математические методы защиты информации: Методы алгебраической теории чисел: Учеб. пособие. Калининград: Изд-во КГУ, 2003.

Сравнительный анализ алгоритмов квадратичного решета

5. Василенко О.Н. Теоретико-числовые алгоритмы в криптографии. М.: МЦНМО, 2003.

6. Черёмушкин А.В. Лекции по арифметическим алгоритмам в криптографии. М.: МЦНМО, 2002.

Об авторе К.Г. Мкртчян — асп., РГУ им. И. Канта.

УДК 512.77

Ю.С. Касаткина АЛГОРИТМ ПОСТРОЕНИЯ ЭЛЕМЕНТАРНЫХ АБЕЛЕВЫХ КРИВЫХ

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

The main goal is to research elementary Abelian curves from the theory of information point of view. Some results on construction of elementary Abelian curves was derived.

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

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

Для конструкции кривых будем использовать рациональные коды Гоппы CL(D, aPx) над полем Fp с параметрами [n, k]. Известно, что r-й

обобщенный вес Хемминга кода CL (D, aPx) может быть вычислен по формуле: dr(CL(D,G)) = и -k + r Vr, 1 Щг^к-

Однако при нахождении алгебраических кривых методом, который опирается на обобщенные веса Хемминга линейного кода, кроме самой иерархии весов кода необходимо знать, на каких подкодах достигается обобщенный вес Хемминга.

Обозначим, что p — простое число, m е Z, m > 1. F = F m (x), тогда

F/F m — поле рациональных функций.

Теорема. Пусть Dr — r-мерный подкод Fp-кода C = CL (D, aPrXl), носи-

109

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