Форма Гессе еліптичної кривої

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

У геометрії крива Гессе — це плоска крива, схожа на декартів лист. Вона названа на честь німецького математика Отто Гессе. Ця крива була запропонована для застосування в еліптичній криптографії, оскільки арифметика в цьому представлені кривої швидша і потребує менше пам'яті, ніж арифметика в стандартній формі Вейерштрасса.

Означення

Крива Гессе рівняння x3+y3+1=0.3xy

Нехай задано поле K. Розглянемо еліптичну криву E у наступному спеціальному випадку форми Вейерштрасса над полем K:

Y2+a1XY+a3Y=X3,

де крива має дискримінант Δ=(a33(a1327a3))=a33δ. Тоді точка P=(0,0) має порядок 3.

Щоб довести, що P=(0,0) має порядок 3, зауважимо, що дотична до E у точці P — пряма Y=0, яка перетинає E в точці P з кратністю 3.

І навпаки, задавши точку P порядку 3 на еліптичній кривій E, що визначена над полем K, можна представити криву у формі Вейерштрасса з P=(0,0), так, що дотичною в точці P є пряма Y=0. Тоді рівняння кривої має вигляд Y2+a1XY+a3Y=X3 та a1,a3K.

Тепер, щоб отримати криву Гессе, необхідно виконати таке Шаблон:Не перекладено:

Спочатку позначимо через μ корінь многочлена

T3δT2+δ23T+a3δ2=0.

Тоді

μ=δa1δ2/33.

Зауважимо, що над полем K скінченого порядку q2 mod 3 кожен елемент поля K має єдиний кубічний корінь у загальному випадку, μ належить розширенню поля K.

Тепер, визначивши наступне значення D=3(μδ)μ, отримуємо іншу криву C, яка біраціонально еквівалентна E:

C : x3+y3+z3=Dxyz,

в афінній площині його називають кубічною формою Гессепроективних координатах x=XZ та y=YZ)

C: x3+y3+1=Dxy.

Більш того, D31 (інакше, крива буде Шаблон:Не перекладено).

Починаючи з кривої Гессе, біраціонально еквівалентне рівняння Вейерштрасса задається співвідношенням

v2=u327D(D3+8)u+54(D620D38),

за допомогою перетворень

(x,y)=(η(u+9D2),1+η(3D3Dx12))

та

(u,v)=(9D2+εx,3ε(y1)),

де

η=6(D31)(v+9D33Du36)(u+9D2)3+(3DdDu12)3

та

ε=12(D31)Dx+y+1.

Закон групування

Цікаво проаналізувати закон групування еліптичної кривої, визначивши формули додавання та подвоєння. Крім того, у цьому випадку потрібно використовувати лише ту саму процедуру для обчислення додавання, подвоєння чи віднімання точок для отримання ефективних результатів, як було сказано вище. У загальному випадку закон групування визначається наступним чином: якщо три точки лежать на одній прямій, то їх сума дорівнює нулю. Отже, за цією властивістю закони групування різні для кожної кривої.

У цьому випадку коректним шляхом є використання формул Коші-Десбовеса для отримання точки на нескінченності θ=(1:1:0), тобто нейтрального елемента (обернений до θ є знову θ). Нехай P=(x1,y1) — точка на кривій. Прямій y=x+(x1+y1) належить точка P і точка на нескінченності θ. Тому P є третьою точкою перетину цієї прямої з кривою. Перетин еліптичної кривої з прямою дає приводить до умова x2(x1+y1)x+x1y1=θ. Оскільки x1+y1+D не дорівнює нулю (D3 не дорівнює 1), x-координатою точки P є y1, а y-координатою точки P є x1, тобто P=(y1,x1), або в проективних координатах P=(Y1:X1:Z1).

У деяких застосуваннях еліптичної криптографії та факторизації за допомогою еліптичних кривих (Шаблон:Не перекладено) необхідно обчислювати множення на скаляр для точки P, наприклад, [n]P з деяким цілим числом n, і вони базуються на методі швидкого піднесення до степеня; ці операції потребують формул додавання та подвоєння.

Подвоєння

Для точки P=(X1:Y1:Z1) на еліптичній кривій можна визначити операцію «подвоєння» за допомогою формул Коші-Десбовеса:

[2]P=(Y1(X13Z13):X1(Z13Y13):Z1(Y13X13)).

Додавання

Таким же чином для двох різних точок P=(X1:Y1:Z1) та точки Q=(X2:Y2:Z2) можна визначити формулу додавання. Нехай R позначає суму цих точок, R=P+Q, тоді її координати наступні:

R=(Y12X2Z2Y22X1Z1:X12Y2Z2X22Y1Z1:Z12X2Y2Z22X1Y1).

Алгоритми та приклади

Існує алгоритм, за допомогою якого можна додати або подвоїти дві різні точки, запропонований Джойєм (Joye) і Кіскватером (Шаблон:Не перекладено). Наступне трердження дає можливість отримати операцію подвоєння шляхом додавання:

Теорема. Нехай P=(X,Y,Z) — точка на еліптичній кривій Гессе E(K), тоді

2(X:Y:Z)=(Z:X:Y)+(Y:Z:X).(1)

Більш того, (Z:X:Y)(Y:Z:X).

На відміну від інших параметризацій, тут відсутнє віднімання для обчислення віддзеркалення точки. Отже, цей алгоритм додавання також може бути використаний для віднімання двох точок P=(X1:Y1:Z1) і Q=(X2:Y2:Z2) на еліптичній кривій Гессе:

(X1:Y1:Z1)(X2:Y2:Z2)=(X1:Y1:Z1)+(Y2:X2:Z2).(2)

Підсумовуючи, шляхом адаптування порядку вводів відповідно до рівнянь (1) або (2), алгоритм додавання, наведений вище, можна використовувати для додавання двох (різних) точок, подвоєння точки і віднімання двох точок лише за допомогою 12 добутків і 7 допоміжних змінних, включаючи 3 початкові змінні. До появи Шаблон:Не перекладено ці результати були найшвидшим відомим способом реалізації скалярного множення на еліптичній кривій для противаги атакам сторонніми каналами.

Для деяких алгоритмів захист від атак сторонніми каналами не є необхідним. Отже, такі подвоєння можуть бути швидшими. Оскільки існує багато алгоритмів, тут наведено лише найкращі алгоритми для формул додавання та подвоєння з прикладом для кожного з них:

Додавання

Нехай P1=(X1:Y1:Z1) і P2=(X2:Y2:Z2) дві точки відмінні від θ, і Z1=Z2=1, тоді алгоритм такий:

A=X1Y2,
B=Y1X2,
X3=BY1Y2A,
Y3=X1ABX2,
Z3=Y2X2X1Y1.

Для алгоритму необхідно: 8 множень та 3 додавання, а для відновлення: 7 множень та 3 додавання, в залежності від першої точки.

Приклад

Нехай задано точки кривої для d=1: P1=(1:0:1) та P2=(0:1:1). Якщо P3=P1+P2, то

X3=01=1,
Y3=10=1,
Z3=00=0.

Таким чином, P3=(1:1:0).

Подвоєння

Нехай P=(X1:Y1:Z1) — точка, тоді формула подвоєння має наступний вигляд:

A=X12,
B=Y12,
D=A+B,
G=(X1+Y1)2D,
X3=(2Y1G)×(X1+A+1),
Y3=(G2X1)×(Y1+B+1),
Z3=(X1Y1)×(G+2D).

Необхідні операції для алгоритму: 3 множення + 3 піднесення до квадрату + 11 додавань + 3×2.

Приклад

Якщо P=(1:1:1) точка кривої Гессе з параметром d=1, то координати подвоєної точки 2P=(X:Y:Z) наступні:

X=(2(1)2)(1+1+1)=4,
Y=(42(1))((1)+1+1)=2,
Z=(1(1))((4)+22)=0.

Отже, 2P=(4:2:0).

Розширені координати

Існує ще одна система координат, за допомогою якої може бути зображена крива Гессе; ці нові координати називаються розширеними координатами. Вони можуть прискорити процес додавання та подвоєння. Щоб отримати більше інформації про операції з розширеними координатами, див.

http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd

Координати x і y представляються через X, Y, Z, XX, YY, ZZ, XY, YZ, XZ, що задовольняють наступним рівнянням:

x=X/Z,
y=Y/Z,
XX=XX,
YY=YY,
ZZ=ZZ,
XY=2XY,
YZ=2YZ,
XZ=2XZ,

Див. також

Для отримання додаткової інформації про час роботи, необхідний у конкретному випадку, див. Шаблон:Не перекладено.

Шаблон:Не перекладено.

Посилання

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


Шаблон:Ізольована стаття