Алгоритм факторизации Ленстры на основе эллиптических кривых

Пусть n – составное число. Время разложения зависит от размера наименьшего делителя: n=p*q. Если p<<q, то найдено будет достаточно быстро.

Алгоритм хорошо распараллеливается и зависит от гладкости количества точек на выбранной кривой.

Суть алгоритма Ленстры заключается в выборе на псевдокривой EC(Zn) произвольной базовой точки P0 и домножении ее на всевозможные простые числа и их степени пока не получим kP0 = ∞ (mod p) (*), где p–один из делителей n.

#EC – число точек: занимает интервал [p + 1 -2√p, p + 1 + 2√p].

Алгоритм:

Zn – основное множество для координат точек эллиптической кривой EC(Zn) : y2= x3 + ax + b, 0< a,b <p.

Инициализация: //этого в лекциях не было

1. Выберем некоторое значение B1 , например, B1 = 10000.

2. Выберем случайным образом числа x, y, a из [0, n − 1] .

3. Вычислим b = y2−x3−ax mod n и g = НОД(n, 4a3+27b2). Если

g = n, возвращаемся к п.2. Если 1 < g < n, тогда прекратим вычисление –

делитель найден. Иначе, определим кривую E : y2= x3+ ax + b и базовую

точку-генератор P0(x, y).

4. Присвоим изменяемому параметру P(x, y) начальное значение, равное P0 .

Вычисление:

С = p1k1 * p2k2 * … * ptkt – разложение по простым делителям.

r=max piki (i<t) – степень гладкости, причём pr < B1.

Берём произвольную точку P= P0 и вычисляем:

P1= ∏ piti · P , где piti < B1,

в результате чего точка P домножится на pr.

Продолжим вычисление до тех пор, пока не будут пройдены все простые числа, меньшие B1 , или не найдется шаг, на котором выполнится условие

НОД(n, P1) = d > 1.

Если выполнится последнее условие, то искомый делитель n найден.

Иначе, либо увеличиваем B1 и повторяем все заново, либо переходим

ко второй стадии алгоритма.

Вторая стадия алгоритма://и этого тоже

На второй стадии алгоритма предполагается, что число точек #EC

на выбранной ЭК имеет лишь один делитель q , превышающий границу 1-й

стадии B1 .

1. Выберем новую границу B2 , и выпишем все простые числа из интервала [B1; B2] : {q1, q2, ..., qm }.

2. Будем последовательно вычислять точки q1 ·P, q2 ·P, q3 ·P, ... пока

не дойдем до границы B2 , либо не выполнится условие (*).

Дивизоры

Построение отображения Вейля и родственного ему отображения Тейта основано на теории дивизоров (делителей) алгебраических кривых, разработанной Андре Вейлем.

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

Действительно, если многочлен P(x) имеет своими корнями кратности ri элементы xi, то .

В нашем случае класс изучаемых функций состоит из дробно-рациональных функций над эллиптическими кривыми, т.е. отношений двух многочленов от двух переменных x и y, определенных на точках некоторой эллиптической кривой.

Пусть теперь E : –эллиптическая кривая над полем K, а f(x,y) : E → K –дробно-рациональная функция. Если f – не константа, то существует не более конечного числа точек P ∈ E, в которых f(P) = 0 или f(P) = ∞. Точки первого вида называются нулями функции f , а второго –

полюсами f . С точностью до ненулевого множителя функцию f можно задать, перечисляя все ее нули и полюсы и задавая их кратность. Если f имеет нуль (полюс) кратности k в точке P , то f можно представить в виде произведения , где up имеет в точке P нуль (полюс) первого порядка, а Функция up называется униформизатором функции f в точке P.

Определение 6.1. Пусть E : – эллиптическая кривая над полем k. Дивизором D над кривой E называется формальная сумма вида ,

в которой коэффициенты rP – целые числа и число слагаемых с ненулевым коэффициентом rP

– конечно. Множество точек P , для которых , называется носителем (support) дивизора D и обозначается supp(D). Целое число P ∈ supp(D), называется степенью D и обозначатся deg(D).

Точка эллиптической кривой, равная , называется суммой дивизора D и обозначается sum(D).

Сумма дивизоров определяется естественным образом. Множество дивизоров эллиптической кривой образует аддитивную группу относительно операции сложения, а нулем является дивизор, у которого все коэффициенты равны 0. В группе дивизоров наиболее важную роль играют дивизоры функций, которые называются главными дивизорами (principal divisors).

Вычислим дивизор прямой l : ax + by + c, проходящей через две заданные точки P1(x1, y1) и P2(x2, y2) эллиптической кривой E. Если l не является касательной в т.P1 и P2, то она пересекает E и в третьей т.P3(x3, y3), а также в бесконечно удаленной точке ∞. В точках P1, P2 и P3 прямая l имеет нули 1 порядка, а в т. ∞ – полюс 3 порядка. Чтобы увидеть это, перепишем уравнение ЭК в следующем виде:

(1) откуда (2).

Из уравнения (1) следует, что x/y обращается в 0 в т.∞, а уравнение (2) показывает, что функция x/y является униформизатором в т.∞ и т.∞ является нулем второго порядка для . Значит т.∞ является полюсом 2 порядка для x. Так как y = x · (y/x), то т.∞ является полюсом 3 порядка для y и для функции l = Ax + By + C. Отсюда дивизор прямой l имеет вид (3). Проведем через т.P3 вертикальную прямую v = x – x3. Она проходит через т.P3(x3, y3), −P3(x3, −y3) и т.∞, а ее дивизор имеет вид

. (4)

Из формул (3) и (4) получим

Так как P1 + P2 = −P3 на кривой E, то последнюю формулу можно переписать в виде (5).

Из формул (3) и (4) можно видеть, что согласно определению 6.1 степени прямых lP1,P2 и равны 0, а их сумма равна ∞, что является примером общего факта, выражаемого следующей теоремой:

Теорема 6.2. Дивизор D эллиптической кривой E, имеющий степень 0, является дивизором некоторой функции тогда и только тогда, когда sum(D) = ∞.

Функции от дивизоров

Отображение, задаваемое формулой (7), является групповым гомоморфизмом из аддитивной группы дивизоров в мультипликативную группу поля K , т.к. f(D1 + D2) = f(D1) · f(D2), f(D1 − D2) = f(D1)/f(D2) (6)

Распространяя формулы (6) на произвольные дивизоры, получим формулу (7).

Теорема 6.3.( закона взаимности Вейля) Если f и g – функции на эллиптической кривой такие, что

div(f) и div(g) не имеют общих точек, тогда выполняется следующая

формула: f(div(g)) = g(div(f)).



>56
  • Далее ⇒