В кривая Доче – Икарта – Кохеля, ориентированная на утроение это форма эллиптическая кривая который использовался в последнее время в криптография ; это особый тип Кривая Вейерштрасса . При определенных условиях некоторые операции , поскольку сложение, удвоение или утроение точек, быстрее вычислить с использованием этой формы. Кривая Доче – Икарта – Кохеля, ориентированная на утроение, часто называется с сокращением 3DIK был представлен Кристофом Доче, Томасом Икартом и Дэвидом Р. Кохелем в [1]
Определение
Ориентированная на утроение кривая Доша – Икарта – Кохеля уравнения
у 2 = Икс 3 − 3 Икс 2 − 6 Икс − 3 { displaystyle y ^ {2} = x ^ {3} -3x ^ {2} -6x-3} Позволять K { displaystyle K} быть поле из характеристика разная форма 2 и 3.
Эллиптическая кривая в утроение ориентированной формы Доче – Икарта – Кохеля определяется уравнение :
Т а : у 2 = Икс 3 + 3 а ( Икс + 1 ) 2 { displaystyle T_ {a} : y ^ {2} = x ^ {3} + 3a (x + 1) ^ {2}} с а ∈ K { displaystyle a in K} .
Генерал точка п на Т а { displaystyle T_ {a}} имеет аффинные координаты ( Икс , у ) { Displaystyle (х, у)} . «Точка в бесконечности» представляет собой нейтральный элемент для группового закона, и он записан в проективные координаты как O = (0: 1: 0). Отрицание точки п = (Икс , у ) относительно этого нейтрального элемента -п = (Икс , −у ).
Групповой закон
Рассмотрим эллиптическую кривую в ориентированной на утроение форме Доче-Икарта-Кохеля в аффинные координаты :
Т а : у 2 = Икс 3 + 3 а ( Икс + 1 ) 2 , а ≠ 0 , 9 4 . { displaystyle T_ {a}: quad y ^ {2} = x ^ {3} + 3a (x + 1) ^ {2}, qquad a neq 0, { tfrac {9} {4}} .} Как и в других формах эллиптических кривых, между точками можно определить некоторые «операции», такие как добавление точек или удвоение (см. Также Групповой закон ). В следующих разделах приведены формулы для сложения, отрицания и удвоения. Формулы сложения и удвоения часто используются для других операций: с учетом точки п на эллиптической кривой можно вычислить [n] P , куда п является целое число , используя сложение и удвоение; вычисление кратных точек важно в криптография на основе эллиптических кривых И в Факторизация эллиптической кривой Ленстры .
Добавление Данный п 1 = ( Икс 1 , у 1 ) { Displaystyle P_ {1} = (x_ {1}, y_ {1})} и п 2 = ( Икс 2 , у 2 ) { Displaystyle P_ {2} = (x_ {2}, y_ {2})} на Т а { displaystyle T_ {a}} , смысл п 3 = ( Икс 3 , у 3 ) = п 1 + п 2 { Displaystyle P_ {3} = (x_ {3}, y_ {3}) = P_ {1} + P_ {2}} имеет координаты:
Икс 3 = 1 ( Икс 2 − Икс 1 ) 2 { − Икс 1 3 + ( Икс 2 − 3 а ) Икс 1 2 + ( Икс 2 2 + 6 а Икс 2 ) Икс 1 + ( у 1 2 − 2 у 2 у 1 + ( − Икс 2 3 − 3 а Икс 2 2 + у 2 2 ) ) } у 3 = 1 ( Икс 2 − Икс 1 ) 3 { ( − у 1 + 2 у 2 ) Икс 1 3 + ( − 3 а у 1 − 3 у 2 Икс 2 + 3 а у 2 ) Икс 1 2 + ( 3 Икс 2 2 у 1 + 6 а Икс 2 у 1 − 6 а у 2 Икс 2 ) Икс 1 + ( у 1 3 − 3 у 2 у 1 2 + ( − 2 Икс 2 3 − 3 а Икс 2 2 + 3 у 2 2 ) у 1 + ( у 2 Икс 2 3 + 3 а у 2 Икс 2 2 − у 2 3 ) ) } { displaystyle { begin {align} x_ {3} & = { frac {1} {(x_ {2} -x_ {1}) ^ {2}}} left {- x_ {1} ^ { 3} + (x_ {2} -3a) x_ {1} ^ {2} + (x_ {2} ^ {2} + 6ax_ {2}) x_ {1} + (y_ {1} ^ {2} - 2y_ {2} y_ {1} + (- x_ {2} ^ {3} -3ax_ {2} ^ {2} + y_ {2} ^ {2})) right } y_ {3} & = { frac {1} {(x_ {2} -x_ {1}) ^ {3}}} left {(- y_ {1} + 2y_ {2}) x_ {1} ^ {3} + (-3ay_ {1} -3y_ {2} x_ {2} + 3ay_ {2}) x_ {1} ^ {2} + (3x_ {2} ^ {2} y_ {1} + 6ax_ {2} y_ { 1} -6ay_ {2} x_ {2}) x_ {1} right. & qquad qquad qquad qquad left. + (Y_ {1} ^ {3} -3y_ {2} y_ { 1} ^ {2} + (- 2x_ {2} ^ {3} -3ax_ {2} ^ {2} + 3y_ {2} ^ {2}) y_ {1} + (y_ {2} x_ {2} ^ {3} + 3ay_ {2} x_ {2} ^ {2} -y_ {2} ^ {3})) right } end {align}}} Удвоение Учитывая точку п 1 = ( Икс 1 , у 1 ) { Displaystyle P_ {1} = (x_ {1}, y_ {1})} на Т а { displaystyle T_ {a}} , смысл п 3 = ( Икс 3 , у 3 ) = 2 п 1 { Displaystyle P_ {3} = (x_ {3}, y_ {3}) = 2P_ {1}} имеет координаты:
Икс 3 = 9 4 у 1 2 Икс 1 4 + 9 у 1 2 а Икс 1 3 + ( 9 у 1 2 а 2 + 9 у 1 2 а ) Икс 1 2 + ( 18 у 1 2 а 2 − 2 ) Икс 1 + 9 у 1 2 а 2 − 3 а у 3 = − 27 8 у 1 3 Икс 1 6 − 81 4 у 1 3 а Икс 1 5 + ( − 81 2 у 1 3 а 2 − 81 4 у 1 3 а ) Икс 1 4 + ( − 27 у 1 3 а 3 − 81 у 1 3 а 2 + 9 2 у 1 ) Икс 1 3 + ( − 81 у 1 3 а 3 − 81 2 у 1 3 а 2 + 27 2 у 1 а ) Икс 1 2 + ( − 81 у 1 3 а 3 + 9 у 1 а 2 + 9 у 1 а ) Икс 1 + ( − 27 у 1 3 а 3 + 9 у 1 а 2 − у 1 ) { displaystyle { begin {align} x_ {3} & = { frac {9} {4y_ {1} ^ {2} x_ {1} ^ {4}}} + { frac {9} {y_ { 1} ^ {2} ax_ {1} ^ {3}}} + left ({ frac {9} {y_ {1} ^ {2} a ^ {2}}} + { frac {9} { y_ {1} ^ {2} a}} right) x_ {1} ^ {2} + left ({ frac {18} {y_ {1} ^ {2} a ^ {2}}} - 2 right) x_ {1} + { frac {9} {y_ {1} ^ {2} a ^ {2} -3a}} y_ {3} & = - { frac {27} {8y_ { 1} ^ {3} x_ {1} ^ {6}}} - { frac {81} {4y_ {1} ^ {3} ax_ {1} ^ {5}}} + left (- { frac {81} {2y_ {1} ^ {3} a ^ {2}}} - { frac {81} {4y_ {1} ^ {3} a}} right) x_ {1} ^ {4} + left (- { frac {27} {y_ {1} ^ {3} a ^ {3}}} - { frac {81} {y_ {1} ^ {3} a ^ {2}}} + { frac {9} {2y_ {1}}} right) x_ {1} ^ {3} + left (- { frac {81} {y_ {1} ^ {3} a ^ {3}} } - { frac {81} {2y_ {1} ^ {3}}} a ^ {2} + { frac {27} {2y_ {1} a}} right) x_ {1} ^ {2} & qquad qquad qquad qquad + left (- { frac {81} {y_ {1} ^ {3} a ^ {3}}} + { frac {9} {y_ {1}) a ^ {2}}} + { frac {9} {y_ {1} a}} right) x_ {1} + left (- { frac {27} {y_ {1} ^ {3} a ^ {3}}} + { frac {9} {y_ {1} a ^ {2}}} - y_ {1} right) end {выравнивается}}} Отрицание Учитывая точку п 1 = ( Икс 1 , у 1 ) { Displaystyle P_ {1} = (x_ {1}, y_ {1})} на Т а { displaystyle T_ {a}} , это отрицание относительно нейтрального элемента ( 0 : 1 : 0 ) { displaystyle (0: 1: 0)} является − п 1 = ( Икс 1 , − у 1 ) { displaystyle -P_ {1} = (x_ {1}, - y_ {1})} .
Есть и другие формулы, приведенные в [2] для ориентированных на утроение кривых Доче – Икарта – Кохеля для быстрой операции утроения и смешанного сложения.
Новые якобианские координаты
Для расчета на этих кривых точки обычно представлены в новые якобианские координаты (Jп ):
точка в новых якобианских координатах имеет вид п = ( Икс : Y : Z : Z 2 ) { Displaystyle P = (X: Y: Z: Z ^ {2})} ; более того:
п = ( Икс : Y : Z : Z 2 ) = ( λ 2 Икс : λ 3 Y : λ Z : λ 2 Z 2 ) , { Displaystyle P = (X: Y: Z: Z ^ {2}) = ( lambda ^ {2} X: lambda ^ {3} Y: lambda Z: lambda ^ {2} Z ^ {2 }),} для любого λ ∈ K { displaystyle lambda in K} .
Это означает, например, что точка п = ( Икс : Y : Z : Z 2 ) { Displaystyle P = (X: Y: Z: Z ^ {2})} и точка Q = ( 4 Икс : 8 Y : 2 Z : 4 Z 2 ) { displaystyle Q = (4X: 8Y: 2Z: 4Z ^ {2})} (за λ = 2 { displaystyle lambda = 2} ) на самом деле одинаковы.
Итак, аффинная точка п = ( Икс , у ) { Displaystyle Р = (х, у)} на Т а { displaystyle T_ {a}} записывается в новых якобианских координатах как п = ( Икс : Y : Z : Z 2 ) { Displaystyle P = (X: Y: Z: Z ^ {2})} , куда Икс = Икс / Z 2 { Displaystyle х = Х / Z ^ {2}} и у = Y / Z 3 { Displaystyle у = Y / Z ^ {3}} ; таким образом, уравнение для Т а { displaystyle T_ {a}} становится:
Т а : Y 2 = Икс 3 + 3 а Z 2 ( Икс + Z 2 ) 2 . { displaystyle T_ {a} : Y ^ {2} = X ^ {3} + 3aZ ^ {2} (X + Z ^ {2}) ^ {2}.} Период, термин Z 2 { displaystyle Z ^ {2}} точки на кривой делает смешанное добавление (это сложение двух точек в разных системы координат ) более эффективным.
В нейтральный элемент в новых якобианских координатах ( 1 : 1 : 0 : 0 ) { displaystyle (1: 1: 0: 0)} .
Алгоритмы и примеры
Добавление Следующий алгоритм представляет собой сумму двух точек. п 1 { displaystyle P_ {1}} и п 2 { displaystyle P_ {2}} на эллиптической кривой в форме Доче-Икарта-Кохеля, ориентированной на утроение. Результат - точка п 3 = ( Икс 3 , Y 3 , Z 3 , Z Z 3 ) { displaystyle P_ {3} = (X_ {3}, Y_ {3}, Z_ {3}, ZZ_ {3})} .Предполагается, что Z 2 = 1 { displaystyle Z_ {2} = 1} и это а 3 = 3 а { displaystyle a_ {3} = 3a} Стоимость этой реализации составляет 7M + 4S + 1 * a3 + 10add + 3 * 2 + 1 * 4, где M указывает умножения, S квадраты, a3 указывает умножение на константу a.3 , add представляет необходимое количество добавлений.
А = Икс 2 Z Z 1 { displaystyle A = X_ {2} ZZ_ {1}}
B = Y 2 Z Z 1 Z 1 { displaystyle B = Y_ {2} ZZ_ {1} Z_ {1}}
C = Икс 1 − А { displaystyle C = X_ {1} -A}
D = 2 ( Y 1 − B ) { displaystyle D = 2 (Y_ {1} -B)}
F = C 2 { displaystyle F = C ^ {2}}
F 4 = 4 F { displaystyle F_ {4} = 4F}
Z 3 = ( Z 1 + C ) 2 − Z Z 1 − F { displaystyle Z_ {3} = (Z_ {1} + C) ^ {2} -ZZ_ {1} -F}
E = Z 3 2 { displaystyle E = {Z_ {3}} ^ {2}}
грамм = C F 4 { displaystyle G = CF_ {4}}
ЧАС = А F 4 { displaystyle H = AF_ {4}}
Икс 3 = D 2 − грамм − 2 ЧАС − а 3 E { displaystyle X_ {3} = D ^ {2} -G-2H-a_ {3} E}
Y 3 = D ( ЧАС − Икс 3 ) − 2 B грамм { displaystyle Y_ {3} = D (H-X_ {3}) - 2BG}
Z Z 3 = E { displaystyle ZZ_ {3} = E}
Пример Позволять п 1 = ( 1 , 13 ) { displaystyle P_ {1} = (1, { sqrt {13}})} и п 2 = ( 0 , 3 ) { displaystyle P_ {2} = (0, { sqrt {3}})} аффинные точки на эллиптической кривой над р { Displaystyle mathbb {R}} :
у 2 = Икс 3 + 3 ( Икс + 1 ) 2 { Displaystyle у ^ {2} = х ^ {3} +3 (х + 1) ^ {2}} .
Потом:
А = Икс 2 Z Z 1 = 0 { displaystyle A = X_ {2} ZZ_ {1} = 0}
B = Y 2 Z Z 1 Z 1 = 3 { displaystyle B = Y_ {2} ZZ_ {1} Z_ {1} = { sqrt {3}}}
C = Икс 1 − А = 1 { displaystyle C = X_ {1} -A = 1}
D = 2 ( Y 1 − B ) = 2 ( 13 − 3 ) { displaystyle D = 2 (Y_ {1} -B) = 2 ({ sqrt {13}} - { sqrt {3}})}
F = C 2 = 1 { Displaystyle F = C ^ {2} = 1}
F 4 = 4 F = 4 { displaystyle F_ {4} = 4F = 4}
Z 3 = ( Z 1 + C ) 2 − Z Z 1 − F = 2 { Displaystyle Z_ {3} = (Z_ {1} + C) ^ {2} -ZZ_ {1} -F = 2}
E = Z 3 2 = 4 { displaystyle E = {Z_ {3}} ^ {2} = 4}
грамм = C F 4 = 4 { displaystyle G = CF_ {4} = 4}
ЧАС = А F 4 = 0 { displaystyle H = AF_ {4} = 0}
Икс 3 = D 2 − грамм − 2 ЧАС − а 3 E = 48 − 8 39 { displaystyle X_ {3} = D ^ {2} -G-2H-a_ {3} E = 48-8 { sqrt {39}}}
Y 3 = D ( ЧАС − Икс 3 ) − 2 B грамм = 296 3 − 144 13 { displaystyle Y_ {3} = D (H-X_ {3}) - 2BG = 296 { sqrt {3}} - 144 { sqrt {13}}}
Z Z 3 = E = 4 { displaystyle ZZ_ {3} = E = 4}
Обратите внимание, что в этом случае Z 1 = Z 2 = 1 { Displaystyle Z_ {1} = Z_ {2} = 1} В результате получается точка п 3 = ( Икс 3 , Y 3 , Z 3 , Z Z 3 ) = ( 48 − 8 39 , 296 3 − 144 13 , 2 , 4 ) { displaystyle P_ {3} = (X_ {3}, Y_ {3}, Z_ {3}, ZZ_ {3}) = (48-8 { sqrt {39}}, 296 { sqrt {3}} -144 { sqrt {13}}, 2,4)} , что в аффинных координатах равно п 3 = ( 12 − 2 39 , 37 3 − 18 13 ) { displaystyle P_ {3} = (12-2 { sqrt {39}}, 37 { sqrt {3}} - 18 { sqrt {13}})} .
Удвоение Следующий алгоритм представляет собой удвоение точки. п 1 { displaystyle P_ {1}} на эллиптической кривой в ориентированной на утроение форме Доче-Икарта-Кохеля. Предполагается, что а 3 = 3 а { displaystyle a_ {3} = 3a} , а 2 = 2 а { displaystyle a_ {2} = 2a} Стоимость этой реализации составляет 2M + 7S + 1 * a2 + 1 * a3 + 12add + 2 * 2 + 1 * 3 + 1 * 8; здесь M представляет собой умножение, S квадрат, a2 и a3 указывает умножение на константы a2 и3 соответственно, а add указывает на дополнения.
А = Икс 1 2 { displaystyle A = {X_ {1}} ^ {2}}
B = а 2 Z Z 1 ( Икс 1 + Z Z 1 ) { displaystyle B = a_ {2} ZZ_ {1} (X_ {1} + ZZ_ {1})}
C = 3 ( А + B ) { Displaystyle С = 3 (А + В)}
D = Y 1 2 { displaystyle D = {Y_ {1}} ^ {2}}
E = D 2 { displaystyle E = D ^ {2}}
Z 3 = ( Y 1 + Z 1 ) 2 − D − Z Z 1 { Displaystyle Z_ {3} = (Y_ {1} + Z_ {1}) ^ {2} -D-ZZ_ {1}}
Z Z 3 = Z 3 2 { displaystyle ZZ_ {3} = Z_ {3} ^ {2}}
F = 2 ( ( Икс 1 + D ) 2 − А − E ) { Displaystyle F = 2 ((X_ {1} + D) ^ {2} -A-E)}
Икс 3 = C 2 − а 3 Z Z 3 − 2 F { displaystyle X_ {3} = C ^ {2} -a_ {3} ZZ_ {3} -2F}
Y 3 = C ( F − Икс 3 ) − 8 E { displaystyle Y_ {3} = C (F-X_ {3}) - 8E}
Пример Позволять п 1 = ( 0 , 3 ) { displaystyle P_ {1} = (0, { sqrt {3}})} быть точкой на у 2 = Икс 3 + 3 ( Икс + 1 ) 2 { Displaystyle у ^ {2} = х ^ {3} +3 (х + 1) ^ {2}} .
Потом:
А = Икс 1 2 = 0 { displaystyle A = {X_ {1}} ^ {2} = 0}
B = а 2 Z Z 1 ( Икс 1 + Z Z 1 ) = 2 { displaystyle B = a_ {2} ZZ_ {1} (X_ {1} + ZZ_ {1}) = 2}
C = 3 ( А + B ) = 6 { Displaystyle C = 3 (A + B) = 6}
D = Y 1 2 = 3 { displaystyle D = {Y_ {1}} ^ {2} = 3}
E = D 2 = 9 { Displaystyle E = D ^ {2} = 9}
Z 3 = ( Y 1 + Z 1 ) 2 − D − Z Z 1 = 2 3 { displaystyle Z_ {3} = (Y_ {1} + Z_ {1}) ^ {2} -D-ZZ_ {1} = 2 { sqrt {3}}}
Z Z 3 = Z 3 2 = 12 { displaystyle ZZ_ {3} = Z_ {3} ^ {2} = 12}
F = 2 ( ( Икс 1 + D ) 2 − А − E ) = 0 { Displaystyle F = 2 ((X_ {1} + D) ^ {2} -A-E) = 0}
Икс 3 = C 2 − а 3 Z Z 3 − 2 F = 0 { displaystyle X_ {3} = C ^ {2} -a_ {3} ZZ_ {3} -2F = 0}
Y 3 = C ( F − Икс 3 ) − 8 E = − 72 { displaystyle Y_ {3} = C (F-X_ {3}) - 8E = -72}
Обратите внимание, что здесь точка находится в аффинных координатах, поэтому Z 1 = 1 { displaystyle Z_ {1} = 1} В результате получается точка п 3 = ( 0 , − 72 , 2 3 , 12 ) { displaystyle P_ {3} = (0, -72,2 { sqrt {3}}, 12)} , что в аффинных координатах равно п 3 = ( 0 , − 3 ) { displaystyle P_ {3} = (0, - { sqrt {3}})} .
Эквивалентность форме Вейерштрасса
Любая эллиптическая кривая бирационально эквивалентный другому, написанному в форме Вейерштрасса.
Следующее скрученный кривая Доче-Икарта-Кохеля, ориентированная на утроение :
Т а , λ : у 2 = Икс 3 + 3 λ а ( Икс + λ ) 2 { displaystyle T_ {a, lambda}: quad y ^ {2} = x ^ {3} +3 lambda a (x + lambda) ^ {2}} можно преобразовать к форме Вейерштрасса с помощью карта :
( Икс , у ) ↦ ( Икс − λ а , у ) . { displaystyle (x, y) mapsto (x- lambda a, y).} Таким образом Т а , λ { displaystyle T_ {a, lambda}} становится:
у 2 = Икс 3 − 3 λ 2 а ( а − 2 ) Икс + λ 3 а ( 2 а 2 − 6 а + 3 ) { displaystyle y ^ {2} = x ^ {3} -3 { lambda} ^ {2} a (a-2) x + { lambda} ^ {3} a (2a ^ {2} -6a + 3 )} .И наоборот, для эллиптической кривой в форме Вейерштрасса:
E c , d : у 2 = Икс 3 + c Икс 2 + d { displaystyle E_ {c, d}: quad y ^ {2} = x ^ {3} + cx ^ {2} + d} ,можно найти "соответствующую" ориентированную на утроение кривую Доче – Икарта – Кохеля, используя следующее соотношение:
λ = − 3 d ( а − 2 ) а ( 2 а 2 − 6 а + 3 ) { displaystyle lambda = { frac {-3d (a-2)} {a (2a ^ {2} -6a + 3)}}} куда а это корень полинома
6912 а ( а − 2 ) 3 − j ( 4 а − 9 ) , { displaystyle 6912a (a-2) ^ {3} -j (4a-9),} куда
j = 6912 c 3 4 c 3 + 27 d 2 { displaystyle j = { frac {6912c ^ {3}} {4c ^ {3} + 27d ^ {2}}}} это j-инвариантный эллиптической кривой E c , d { displaystyle E_ {c, d}} .
Обратите внимание, что в этом случае данное отображение является не только бирациональной эквивалентностью, но и изоморфизм между кривыми.
Внутренняя ссылка
Для получения дополнительной информации о времени работы, требуемой в конкретном случае, см. Таблица затрат на операции в эллиптических кривых
Примечания
^ Кристоф Доче, Томас Икарт и Дэвид Р. Кохель, Эффективное скалярное умножение с помощью разложения изогении ^ Кристоф Доче, Томас Икарт и Дэвид Р. Кохель, Эффективное скалярное умножение с помощью разложения изогении , стр. 198-199 внешняя ссылка
Рекомендации
Кристоф Доче; Томас Икарт и Дэвид Р. Кохель (2006). Эффективное скалярное умножение с помощью разложения изогении (PDF) . появился на PKC 2006 г., часть тома 3958 LNCS (серии лекций по информатике). Springer Verlag. С. 285–352. Дэниел Дж. Бернштейн , Таня Ланге (2007). Анализ и оптимизация односкалярного умножения эллиптических кривых (PDF) . появился в G.L. Mullen, D. Panario, I.E. Шпарлински (ред.), Конечные поля и приложения (Материалы 8-й Международной конференции, Fq8, Мельбурн, Австралия, 9–13 июля 2007 г.). Классификация предметов математики.Д. Дж. Бернштейн , П. Биркнер, Т. Ланге и К. Питерс (2007). Оптимизация односкалярного умножения на эллиптической кривой с двойной базой (PDF) . появился у К. Сринатана, К. Панду Ранган , М. Юнг (ред.), Труды 8-й Международной конференции по криптологии в Индии: прогресс в криптологии (Indocrypt 2007), 9–13 декабря 2007 г., Ченнаи, Индия. Springer.CS1 maint: несколько имен: список авторов (связь) http://hyperelliptic.org/EFD/g1p/auto-3dik-standard.html