Curva de Edwards

Curvas de Edwards da equação x2 + y2 = 1 + d ·x2·y2 sobre os números reais para d = −300 (vermelho), d = −√8 (amarelo) e d = 0.9 (azul)

Na matemática, as curvas de Edwards são uma família de curvas elípticas estudadas por Harold Edwards em 2007. O conceito de curvas elípticas sobre corpos finitos é amplamente utilizado na criptografia de curva elíptica. As aplicações das curvas de Edwards à criptografia foram desenvolvidas por Daniel J. Bernstein e Tanja Lange: eles apontaram diversas vantagens da forma de Edwards em comparação com a mais conhecida forma de Weierstrass.

Definição

A equação de uma curva de Edwards sobre um corpo K que não possui característica 2 é:

para algum escalar . Também a seguinte forma com parâmetros c e d é chamada de curva de Edwards:

onde c, d ∈ K com cd(1 − c4·d) ≠ 0.

Cada curva de Edwards é birracionalmente equivalente a uma curva elíptica na forma de Montgomery e, portanto, admite uma lei de grupo algébrico uma vez que se escolha um ponto para servir como elemento neutro. Se K for finito, então uma fração considerável de todas as curvas elípticas sobre K pode ser escrita como curvas de Edwards. Frequentemente, as curvas elípticas na forma de Edwards são definidas tendo c=1, sem perda de generalidade. Nas seções seguintes, assume-se que c=1.

A lei de grupo

(Veja também lei de grupo da curva de Weierstrass)

Cada curva de Edwards sobre um corpo K com característica diferente de 2 com é birracionalmente equivalente a uma curva elíptica sobre o mesmo corpo: , onde e o ponto é mapeado para o infinito O. Este mapeamento birracional induz um grupo em qualquer curva de Edwards.

Lei de adição de Edwards

Em qualquer curva elíptica, a soma de dois pontos é dada por uma expressão racional das coordenadas dos pontos, embora, em geral, possa ser necessário usar várias fórmulas para cobrir todos os pares possíveis. Para a curva de Edwards, tomando o elemento neutro como sendo o ponto (0, 1), a soma dos pontos e é dada pela fórmula:

O oposto de qualquer ponto é . O ponto tem ordem 2, e os pontos têm ordem 4. Em particular, uma curva de Edwards sempre tem um ponto de ordem 4 com coordenadas em K.

Se d não for um quadrado em K e , então não existem pontos excepcionais: os denominadores e são sempre diferentes de zero. Portanto, a lei de adição de Edwards é completa quando d não é um quadrado em K. Isso significa que as fórmulas funcionam para todos os pares de pontos de entrada na curva de Edwards sem exceções para duplicação, sem exceção para o elemento neutro, sem exceção para negativos, etc. Em outras palavras, ela é definida para todos os pares de pontos de entrada na curva de Edwards sobre K e o resultado fornece a soma dos pontos de entrada.

Se d for um quadrado em K, então a mesma operação pode ter pontos excepcionais, ou seja, pode haver pares de pontos tais que um dos denominadores se torne zero: ou ou .

Uma das características atraentes da lei de adição de Edwards é que ela é fortemente unificada, ou seja, também pode ser usada para dobrar um ponto, simplificando a proteção contra ataque de canal lateral. A fórmula de adição acima é mais rápida do que outras fórmulas unificadas e possui a forte propriedade de completude.

Exemplo da lei de adição:

Considere a curva elíptica na forma de Edwards com d=2

e o ponto nela. É possível provar que a soma de P1 com o elemento neutro (0,1) resulta novamente em P1. De fato, usando a fórmula dada acima, as coordenadas do ponto dado por esta soma são:

Um análogo no círculo

Ficheiro:Edwards Curve,Clock group diagram.jpg
Grupo do relógio

Para entender melhor o conceito de "adição" de pontos em uma curva, um bom exemplo é dado pelo clássico grupo do círculo:

tome o círculo de raio 1

e considere dois pontos P1=(x1,y1), P2=(x2,y2) sobre ele. Sejam α1 e α2 os ângulos tais que:

A soma de P1 e P2 é, portanto, dada pela soma de "seus ângulos". Ou seja, o ponto P3=P1+P2 é um ponto no círculo com coordenadas (x3,y3), onde:

Desta forma, a fórmula de adição para pontos no círculo de raio 1 é:

.

Adição em curvas de Edwards

Soma de dois pontos na curva de Edwards com d = -30
Dobrando um ponto na curva de Edwards com d=-30

Os pontos em uma curva elíptica formam um grupo abeliano: pode-se adicionar pontos e obter múltiplos inteiros de um único ponto. Quando uma curva elíptica é descrita por uma equação cúbica não singular, então a soma de dois pontos P e Q, denotada como P + Q, está diretamente relacionada ao terceiro ponto de interseção entre a curva e a linha que passa por P e Q.

O mapeamento birracional entre uma curva de Edwards e a curva elíptica cúbica correspondente mapeia as linhas retas em seções cônicas . Em outras palavras, para as curvas de Edwards, os três pontos , e estão sobre uma hipérbole.

Dados dois pontos distintos que não sejam a identidade , os coeficientes da forma quadrática são (até escalares):

,

,

No caso de dobrar um ponto , o ponto inverso reside na cônica que toca a curva no ponto . Os coeficientes da forma quadrática que define a cônica são (até escalares[necessário esclarecer]):

,

,

Coordenadas homogêneas projetivas

No contexto da criptografia, coordenadas homogêneas são usadas para evitar inversões de corpo que aparecem na fórmula afim. Para evitar inversões nas fórmulas originais de adição de Edwards, a equação da curva pode ser escrita em coordenadas projetivas como:

.

Um ponto projetivo corresponde ao ponto afim na curva de Edwards.

O elemento de identidade é representado por . O inverso de é .

A fórmula de adição em coordenadas homogêneas é dada por:

onde

Algoritmo

A adição de dois pontos na curva de Edwards pode ser computada de forma mais eficiente na forma de Edwards estendida , onde :

Dobramento (Doubling)

O Dobramento pode ser realizado exatamente com a mesma fórmula da adição. O dobramento refere-se ao caso em que as entradas (x1, y1) e (x2, y2) são iguais.

Dobrando um ponto :

Os denominadores foram simplificados com base na equação da curva . Uma aceleração adicional é alcançada computando como . Isso reduz o custo do dobramento em coordenadas homomórficas para 3M + 4S + 3C + 6a, enquanto a adição geral custa 10M + 1S + 1C + 1D + 7a. Aqui, M representa multiplicações de corpo, S quadrados de corpo, D o custo da multiplicação pelo parâmetro da curva d, e a a adição de corpo.

Exemplo de dobramento

Como no exemplo anterior para a lei de adição, considere a curva de Edwards com d=2:

e o ponto . As coordenadas do ponto são:

O ponto obtido ao dobrar P é, portanto, .

Adição mista

A adição mista é o caso em que Z2 é conhecido como sendo 1. Nesse caso, A=Z1.Z2 pode ser eliminado e o custo total reduz-se a 9M+1S+1C+1D+7a

Algoritmo

A= Z1.Z2 // em outras palavras, A= Z1

B= Z12

C=X1.X2

D=Y1.Y2

E=d.C.D

F=B-E

G=B+E

X3= A.F((XI+Y1).(X2+Y2)-C-D)

Y3= A.G.(D-C)

Z3=C.F.G

Triplicação

A Triplicação pode ser feita primeiro dobrando o ponto e depois adicionando o resultado a si mesmo. Aplicando a equação da curva como no dobramento, obtemos

Existem dois conjuntos de fórmulas para esta operação em coordenadas Edwards padrão. O primeiro custa 9M + 4S, enquanto o segundo necessita de 7M + 7S. Se a razão S/M for muito pequena, especificamente abaixo de 2/3, então o segundo conjunto é melhor, enquanto para razões maiores o primeiro é preferível. Usando as fórmulas de adição e dobramento (como mencionado acima), o ponto (X1 : Y1 : Z1) é computado simbolicamente como 3(X1 : Y1 : Z1) e comparado com (X3 : Y3 : Z3)

Exemplo de triplicação

Dada a curva de Edwards com d=2, e o ponto P1=(1,0), o ponto 3P1 tem coordenadas:

Assim, 3P1=(-1,0)=-P1. Este resultado também pode ser encontrado considerando o exemplo de dobramento: 2P1=(0,-1), logo 3P1 = 2P1 + P1 = (0,-1) + (1,0) = (-1,0).

Algoritmo

A=X12

B=Y12

C=(2Z1)2

D=A+B

E=D2

F=2D.(A-B)

G=E-B.C

H=E-A.C

I=F+H

J=F-G

X3=G.J.X1

Y3=H.I.Y1

Z3=I.J.Z1

Esta fórmula custa 9M + 4S

Coordenadas de Edwards invertidas

Bernstein e Lange introduziram um sistema de coordenadas ainda mais rápido para curvas elípticas chamado coordenadas de Edwards invertidas no qual as coordenadas (X : Y : Z) satisfazem a curva (X2 + Y2)Z2 = (dZ4 + X2Y2) e correspondem ao ponto afim (Z/X, Z/Y) na curva de Edwards x2 + y2 = 1 + dx2y2 com XYZ ≠ 0.

As coordenadas de Edwards invertidas, ao contrário das coordenadas de Edwards padrão, não possuem fórmulas de adição completas: alguns pontos, como o elemento neutro, devem ser tratados separadamente. Mas as fórmulas de adição ainda têm a vantagem de uma forte unificação: podem ser usadas sem alteração para dobrar um ponto.

Para mais informações sobre operações com estas coordenadas veja: http://hyperelliptic.org/EFD/g1p/auto-edwards-inverted.html

Coordenadas estendidas para curvas de Edwards

Existe outro sistema de coordenadas com o qual uma curva de Edwards pode ser representada. Estas novas coordenadas são chamadas de coordenadas estendidas e são ainda mais rápidas que as coordenadas invertidas. Para mais informações sobre o custo de tempo necessário nas operações com estas coordenadas, veja: http://hyperelliptic.org/EFD/g1p/auto-edwards.html

Ver também

Para mais informações sobre o tempo de execução necessário em um caso específico, veja Tabela de custos de operações em curvas elípticas.

Referências

  1. ↑ Bernstein, Daniel; Lange, Tanja (3 de março de 2014), How to design an elliptic-curve signature system
  2. 1 2 Daniel. J. Bernstein , Tanja Lange, pag. 3, Faster addition and doubling on elliptic curves
  3. ↑ Christophe Arene; Tanja Lange; Michael Naehrig; Christophe Ritzenthaler (2009). «Faster Computation of the Tate Pairing». Bibcode:2009arXiv0904.0854A. arXiv:0904.0854Acessível livremente. Consultado em 28 de fevereiro de 2010
  4. ↑ Huseyin Hisil, Kenneth Koon-Ho Wong, Gary Carter, and Ed Dawson. Twisted Edwards curves revisited. In ASIACRYPT 2008, pages 326–343, 2008
  5. ↑ Bernstein et al.,  Optimizing Double-Base Elliptic curve single-scalar Multiplication
  6. ↑ Daniel J.Bernstein. Tanja Lange, pag.2, Inverted Edward coordinates
  7. ↑ H. Hisil, K. K. Wong, G. Carter, E. Dawson Faster group operations on elliptic curves

Bibliografia

Ligações externas