curva elíptica

Propaganda
Software de Telecomunicações
Curvas elípticas
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 1/42
Curvas elípticas sobre corpos (1)
• Curvas elípticas têm sido estudadas há quase 2 séculos
• A dificuldade torna-as pouco “apetecíveis” para os planos
de estudos (básico e universitário)
Problema: qual o número de bolas de
uma pirâmide, onde cada andar tem
o quadrado da distância ao topo, i.e.
12, 22, 32, 42, … n2
n
Resposta ∑ i 2 = n(n + 1)(2n + 1)
i =1
6
• Problema: que alturas da pirâmide formam quadrado
perfeito?
• 6y2=2x3+3x2+x tem apenas 2 soluções em N: (1,1) e
(24,70)-4900 bolas!
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 2/42
Curvas elípticas sobre corpos (2)
Definição: Uma curva elíptica sobre o corpo F é
definida por:
– pares de valores que (x,y) satisfazem a equação
Y2 + a1XY + a3Y = X3 + a2X2 + a4X + a5 (ai ∈F)
– ponto no infinito O
Na criptografia são de interesse dois tipos de corpos finitos:
– F(p), com p primo
– F(2m)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 3/42
Curvas elípticas sobre corpos (3)
A. Curvas elípticas sobre corpos finitos primos, com p>3
A equação da curva elíptica é simplificada com as substituições
X → X - a3/3
Y → Y - (a1X+a3 ) /2
Y2 = X3 + aX + b (forma normal de Weierstrass)
Para um dado x, a equação tem 2 raízes se o discriminante não for
nulo
3
4a +27b2 ≠ 0
Nota1: a igualdade é módulo p
Nota2: curva elíptica de função característica ≠ 3 pode ser
reescrita na forma normal Legendre Y2 = X(X-1)(X-λ)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 4/42
Curvas elípticas sobre corpos (4)
Exemplo A
6
Y2 = X3
(a=0, b=0)
0
0
1
2
3
4
Nota: não é curva elíptica,
porque 4*(0)3+27*(0)2=0
-6
Prof RG Crespo
ponta (“cusp”)
Software de Telecomunicações
Curvas elípticas : 5/42
Curvas elípticas sobre corpos (5)
Exemplo B
6
Y2 = X3-1
(a=0, b=-1)
0
0
1
2
3
4
-6
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 6/42
Curvas elípticas sobre corpos (6)
Exemplo C
6
Y2 = X3-3X+3
(a=-3, b=3)
0
-3
-2
-1
0
1
2
3
4
-6
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 7/42
Curvas elípticas sobre corpos (7)
Exemplo D
2
6
nó
3
Y = X -3X+2 = (X-1)2(X+2)
(a=-3, b=2)
0
-3
-2
-1
Nota: não é curva elíptica,
porque 4*(-3)3+27*(2)2=0
Prof RG Crespo
Software de Telecomunicações
0
1
2
3
4
-6
Curvas elípticas : 8/42
Curvas elípticas sobre corpos (8)
Exemplo E
6
Y2 = X3-X
(a=-1, b=0)
0
-2
-1
0
1
2
3
4
-6
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 9/42
Curvas elípticas sobre corpos (9)
B. Curvas elípticas sobre corpos finitos binários F(2m)
Para a1 ≠ 0 (curvas não “supersingulares”), a equação da curva
elíptica é simplificada com as substituições
X → a12X - a3/a1
Y → a13Y - (a12a4+a32 ) /a13
Y2 + XY = X3 + aX + b
Nota: Curvas “supersingulares” descritas pela equação Y2+Y=X3+aX+b.
A computação é fácil, mas o problema do logaritmo discreto é
resolvido de forma eficiente pelo que não são usadas na criptografia.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 10/42
CE como grupo (1)
Uma CE é um grupo abeliano: vejamos graficamente para
F(p)
6
1. Inverso: negação da coordenada y
{se P=(x,y), então –P=(x,-y)}
2. Soma: três pontos colineares (i.e.,
intersectam a mesma recta) somam
sempre O. Logo, P+Q é o inverso do
3º ponto de intersecção da linha que
cruza os pontos P e Q
-(P+Q)
Q
0
-2
-1
0
1
2
3
P
(P+Q)
-6
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 11/42
CE como grupo (2)
3. Duplicação: desenhar tangente, que corta curva no ponto -2P
4. Elemento neutro: ponto no infinito O
O
6
P + (-P) = O
P
0
-2
-1
0
1
2
3
4
-P
-6
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 12/42
4
CE como grupo (3)
Analiticamente para F(p)
– A recta que une pontos P e Q tem por equação y = λx+β
•
•
módulo p –
λ = (y2-y1)/(x2-x1)
β = y1- λx1
O ponto (x3, λx
x3+
+β)) satisfaz a eq. ((λxx3+
+β))2 = x33+ax3+b
F(p): Y2 = X3+aX+b
λ2 -
x3 =
x1 - x2
P+Q y3 = λ(x1-x3) - y1
λ = (y2-y1)/(x2-x1)
2P
x3 = λ2 - x1 - x2
y3 = λ(x1-x3) - y1
λ = (3x12+a)/(2y1)
-P (x, -y)
Prof RG Crespo
F(2m): Y2+XY = X3+aX+b
λ2 +
x3 =
λ + x1 + x2 + a
y3 = λ(x1+x3) + x3 + y1
λ = (y2+y1)/(x2+x1)
x3 = λ2 + λ + a
y3 = x12 + (λ + 1)x3
λ = x1 + y1/x1
(x, x+y)
Software de Telecomunicações
Nota: demonstração
da associatividade
de + não é trivial
Em GF(2m)
Curvas elípticas : 13/42
Curvas elípticas sobre Fp (1)
Definição: A curva elíptica sobre Zp, Ep(a,b), é formada
pelos elementos (x,y), com x,y∈Zp, que satisfazem a
equação
y2 = x3 + ax + b mod p
Nota: Para x≠0 existem dois pontos simétricos ao eixo y=p/2.
• Teorema Poincaré (1900): Ep(a,b) é um sub-grupo de E,
i.e.
– existe elemento neutro,
– + e * realizam-se dentro de Ep(a,b),
– existem inversos aditivos e multiplicativos.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 14/42
Curvas elípticas sobre Fp (2)
• Os cálculos do valor de -P, P+Q e 2P são os mesmos da
CE sobre reais, módulo p!
• O valor real do número de elementos #Ep(a,b) é dado pelo
algoritmo SEA “Schoof- Elkies –Atkin”.
• Teorema Hasse (1922): #Ep(a,b)=p+1-t, | t | ≤ 2√p.
Para p elevado, #Ep(a,b) ≈ p.
Nota: a curva diz-se supersingular sse t2=nq, 0≤n≤4
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 15/42
Curvas elípticas sobre Fp (3)
22
Exemplo; E23(1,1)
20
72 = 93 + 1*9 +1 mod 23
18
49 mod 23 = 739 mod 23 (=3)
14
16
12
10
• Negação de (9,7):
(9,-7) mod 23=(9,-7+23)=(9,16)
• Soma de (9,7) com (5,4):
λ = ((4-7)/(5-9) mod 23=(-3/-4) mod 23
= (-3).(-4)-1 mod 23=20.(19)-1 mod 23
= 20.17 mod 23=18
x3 = (182-9-5)mod 23=310 mod 23=11
y3 = (18(9-11)-7)mod 23=-43 mod 23=3
Prof RG Crespo
8
6
4
2
0
0
2
4
Software de Telecomunicações
6
8
10
12
14
16
18
20
Curvas elípticas : 16/42
22
Curvas elípticas sobre Fp (4)
• Duplicação de (9,7)
λ = (3.92)/(2.7) mod 23 = 13.(14)-1 mod 23
= 13.5 mod 23 = 19
x3 = 192-9-9 mod 23 = 323 mod 23 = 1
y3 = 19.(9-1)-7 mod 23 = 145 mod 23 = 7
Logo, 2*(9,7)=(1,7)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 17/42
Curvas elípticas sobre F2m (1)
Definição: A curva elíptica sobre GF(2m), E2m(a,b), é
formada pelos elementos (x,y) x,y∈
∈2m que satisfazem a
equação
y2 + xy = x3 + ax + b com a,b∈
∈2n (b≠0)
• Por agora usamos representação polinomial de x,y (operações
artiméticas mais simples, embora menos eficientes)
• Todos os cálculos de avaliações de –P, P+Q e 2P (P,Q∈
∈2m) são feitos
na aritmética do corpo GF(2m) - ver álgebra linear
– A soma em GF(2m) trivial
– A multiplicação e a inversa não são triviais
Nota: tal como para F(p) todos os pontos de x≠0 são duplos.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 18/42
Curvas elípticas sobre F2m (2)
Exemplo: Seja E24(g4,1) e a equação y2 + xy = x3 +g4x2 +g0.
Os elementos de F(24), gerados pela base g=(0010) e pelo
polinómio irredutível f(x) = x4 + x3 + 1 são:
g0=g15=(0001), g1=(0010), g2=(0100), g3=(1000), g4=(1001), g5=(1011),
g6=(1111), g7=(0111), g8=(1110), g9=(0101), g10=(1010), g11=(1101),
g12=(0011), g13=(0110), g14=(1100), O=(0000)
– Para x=0, apenas y=g0 satisfaz a equação. (0,g0) é denominado ponto
singular
– Para x=g0=1, que y=gi satisfaz a equação (gi)2+g0gi=(g0)3+g4(g0)2+g0 ?
g2i+gi=g0+g4(g0)2+g0 ∴ g2i+gi=g4 Resposta, nenhum!
– Para x=g3, que y=gi satisfaz a equação (gi)2+g3gi=(g3)3+g4(g3)2+g0 ?
g2i+gi+3=g9+g10+g0 ∴ g2i+gi+3=g6 Resposta, i=8 e i=13
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 19/42
Curvas elípticas sobre F2m (3)
x=g3
i
g2i
g(i+3)
g2i+g(i+3)
0
0001
1000
1001
1
0100
1001
1101
14
2
1001
1011
0010
12
3
1111
1111
0000
10
4
1110
0111
1001
5
1010
1110
0100
6
0011
0101
0110
6
4
16
7
1100
1010
0110
8
0010
1101
1111
9
1000
0011
1011
10
1011
0110
1101
11
0111
1100
1011
12
0101
0001
0100
13
1101
0010
1111
14
0110
0100
0010
15
0001
1000
Prof RG Crespo
8
2
0
0
2
4
6
8
10
12
14
16
Nota: uma vez que g15=1, g(a+15)=ga
1001
Software de Telecomunicações
Curvas elípticas : 20/42
Ordem de um elemento (1)
Definição: Dada uma curva elíptica Eq(a,b), q primo ou
2m, e um ponto base G=(x,y)∈
∈Eq(a,b) a ordem é o
menor inteiro n tal que nG = O.
Exemplo: seja E23(1,1) e G=(9,7)
λ
n
x3
y3
1
nP
(9,7)
2
19
1
7
(1,7)
3
0
13
16
(13,16)
4
8
19
5
(19,5)
5
9
7
11
(7,11)
6
21
11
20
(11,20)
7
18
5
19
(5,19)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 21/42
Ordem de um elemento (2)
n
λ
x3
y3
nP
8
20
18
20
(18,20)
9
4
12
4
(12,4)
10
22
3
10
(13,10)
11
11
17
20
(17,20)
12
9
7
11
(7,11)
13
6
4
0
(4,0)
…
26
(9,16)
27P = 26P+P = (9,16)+(9,7) = O
Para E23(1,1) a ordem do ponto base (9,7) é 27
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 22/42
Ordem de um elemento (3)
• A multiplicação “espalha” os pontos no plano!
20
6
8
7
3
15
5
10
10
2
1
5
4
9
0
0
Prof RG Crespo
5
10
15
Software de Telecomunicações
20
Curvas elípticas : 23/42
Parâmetros de uma curva elíptica
• Curva elíptica sobre GF(p) definida por T(p,a,b,G,n,h)
–
–
–
–
–
p é número primo e função característica
a,b são coeficientes da curva base sobre reais
G=(x,y) é ponto base, que pertende a Ep(a,b)
n é ordem do ponto G, i.e. nG=O
h = #E(F(p))/n é o co-factor
• Curva elíptica sobre GF(2m) definida por
T(m,f(x),a,b,G,n,h)
– f(x) é polinómio binário irredutível, que gera F(2m)
Exemplo: Para E24 (g4,1) com g=x e polinómio irredutível f(x) =
x4+x3+1, #E=32 e n=16 [Nota: (g8,g0)=(b8,g15)] ∴ h=2
Nota: h deve ser <4, idealmente 1.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 24/42
Representação de elementos F2m (1)
Curiosidade, não faz parte da avaliação
Definição: Base é um conjunto de elementos {β0,β1, …,βm-1}
tais que, para cada A∈GF(2m), existe uma única
representação
(um vector de elementos ai∈Z2 ) tais que:
m −1
A = ∑ ai β i = am −1β m −1 + L + a1β1 + a0 β 0
i =0
T
A = aβ = β a
a = [a0
T
a1 L am−1 ], β = [β 0
β1 L β m −1 ]
Conhecidas duas bases de representação
1. Polinomial (0 e 1): mais intuitiva, operações aritméticas mais
simples.
2. Normal optimizada (ONB-”Optimal Normal Basis”): mais
eficiente para cálculo de quadrados/produtos/inversos, mas os
elementos βi não são independentes.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 25/42
Representação de elementos F2m (2)
Curiosidade, não faz parte da avaliação
1. Base polinomial 0: β=[ω0 ω1 … ωm-1]
(βi=ωi, ω∈ GF(2m) é raíz do polinómio irredutível)
Exemplo: seja GF(24) sobre polinómio irredutível: f(x) = x4 + x3 + 1
–
Elementos: []=O, [0]=1, [1], … , [3,2,1,0]
–
Adição: somar termos correspondentes, módulo 2
[2,1]+[3,1] = [3,2]
Multiplicação: Multiplicar termos e calcular resíduo (i.e., resto) do
polinómio irredutível
[3,1,0]*[3,0] = (x3+x+1)*(x3+1) mod f(x) =
(x6+x4+2x3+x+1) mod f(x) = (x6+x4+x+1) mod f(x) = [2,0]
(x6+x4+x+1)=(x4+x3+1)(x2+x)+(x2+1)
–
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 26/42
Representação de elementos F2m (3)
Curiosidade, não faz parte da avaliação
– Gerador: [1] é um possível ponto base
g0=g15=[0],g1= [1],g2=[2],g3=[3],g4=[3,0],g5=[3,1,0],g6=[3,2,1,0],
g7=[2,1,0],g8=[3,2,1],g9=[2,0],g10=[3,1],g11=[3,2,0],g12=[1,0],
g13=[2,1],g14=[3,2]
– Exponenciação: multiplicar sucessivamente
[1]2 = x*x mod f(x) = x2 mod f(x) = [2]
x2 = (x4+x3+1)0 + (x2)
[1]4= [2]2[2]2 = x2*x2 mod f(x) = [3,0]
x4 = (x4+x3+1)1+(x3+1)
[1]5 = [1]4[1] = (x3+1)*x mod f(x) = [3,1,0]
(x4+x) = (x4+x3+1)0+(x3+x+1)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 27/42
Representação de elementos F2m (4)
Curiosidade, não faz parte da avaliação
– Inverso multiplicativo: inverter a potência do número gerado
[1,0]-1 = (g12)-1 = g-12 = g3 [3] : -12 mod 15 = 3 mod 15
Nota: outro polinómio irredutível corresponde a um
isomorfismo.
Exemplo: seja f(x) = x4 + x + 1
[3,1,0]*[3,0] = (x3+x+1)*(x3+1) mod f(x) =
(x6+x4+2x3+x+1) mod f(x) = (x6+x4+x+1) mod f(x) = [3,2]
(x6+x5+x2+1)=(x4+x+1)(x2+1)+(x3+x2)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 28/42
Representação de elementos F2m (5)
Curiosidade, não faz parte da avaliação
2. Base polinomial 1: β=[ω ω2 … ωm]
(βi=ωi+1,ω∈GF(2m) é raíz do polinómio primitivo)
– Como representar 1 na base polinomial 1, uma vez que não faz
parte de βi?
Resposta: 1 é representado por f(x)+1 mod f(x).
Exemplo: seja GF(24) gerado por f(x) = x4 + x3 + 1.
f(x)+1=(x4 + x3 +1)+1=x4+x3. Logo, 1 é representado por [3,2]
Qual a representação de x3+1?
x3+1=x3+(x4+x3) = [2]+[3,2]=[3]
•
•
– Todas as operações (soma, multiplicação, inversão) são feitas na
mesma forma que na base polinomial 0.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 29/42
Representação de elementos F2m (6)
Curiosidade, não faz parte da avaliação
1
3. Base normal: β = [α α 2 … α 2
i
(βi = α2 ,α∈GF(2m))
m-1
] = [α α2 α4 α8…α2
m-1
]
O polinómio irredutível tem de ser primitivo, para gerar de GF*(2m)
i. Quadrado de um elemento de GF(2m)
m −1
m −1
A = (∑ a iα ) = ∑ ai2α 2
2i
2
[a
2
i =0
2
m −1
a
2
0
i +1
=
02=0, 12=1
i =0
L a
2
m−2
] = [a
m −1
a0 L a m−2 ]
Implementado em HW por uma simples rotação!
Prof RG Crespo
Software de Telecomunicações
a0
a1
am-1
Curvas elípticas : 30/42
Representação de elementos F2m (7)
Curiosidade, não faz parte da avaliação
ii. Produto de dois elemento de GF(2m)
m−1 m−1
C = A ⋅ B = ∑∑ ai b jα 2 α 2
i
j
i = 0 j =0
Normalizando o produto
i j
α2 α2
m−1
(k ) 2
para α α = ∑ M i , j x
2i
2j
k
k =0
ficamos com
m −1 m −1
ck = ∑ ∑ ai b j M i(,kj )
i =0 j =0
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 31/42
Representação de elementos F2m (8)
Curiosidade, não faz parte da avaliação
j
i
Cálculo de x2 x2 normalizado é simplificado elevando
ambos os lados à potência de 2-m
2i
2 j 2 −m
(α α )
=α
2i−m
α
2 j −m
m−1
= ∑M
2k
k =0
k =0
( 0)
( m)
M
=
M
i
−
m
,
j
−
m
i
,j
da igualdade tira-se que
i =0 j =0
Prof RG Crespo
Soma módulo m
m −1 m −1
m −1 m −1
c k = ∑∑ ai b j M
m−1
α = ∑ M i(,kj)α 2k −m
(k )
i −m, j −m
(0)
i −k , j −k
= ∑∑ ai + k b j + k M i(,0j)
i =0 j =0
Software de Telecomunicações
Curvas elípticas : 32/42
Representação de elementos F2m (9)
Curiosidade, não faz parte da avaliação
•
•
Para tornar o cálculo de ck o mais rápido possível, interessa que Mmatrix n × n de elementos de GF(2m)- tenha o maior número possível
de entradas nulas.
Teorema: valor mínimo de entradas não nulas é 2n-1
Dois tipos de matrizes M(0) óptimas: ONB1 e ONB2
Tabela
ONB1
ONB2
Condições
• m+1 é primo, e
• 2 é primitivo em GF(m+1)
• 2m+1 é primo, e
• 2 é primitivo em Z2m+1, ou 2(m+1)=3 mod 4
e 2 gera resíduos quadrátricos em Z2m+1
M(0)i,j = 1
• 2i + 2j = 1 mod (m+1), ou
• 2i + 2j = 0 mod (m+1)
• 2i + 2j = +1 mod (m+1), ou
• 2i + 2j = -1 mod (m+1), ou
• 2i - 2j = +1 mod (m+1), ou
• 2i - 2j = -1 mod (m+1)
Exemplos de m: 80,134,179,230,330,386
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 33/42
Representação de elementos F2m (10)
Curiosidade, não faz parte da avaliação
•
Exemplo: GF(24) permite representação ONB1
–
–
–
–
–
–
–
–
–
–
(20+20) mod 5 =2
(20+21) mod 5 =3
(20+22) mod 5 =0
(20+23) mod 5 =4
(21+21) mod 5 =4
(21+22) mod 5 =1
(21+23) mod 5 =0
(22+22) mod 5 =3
(22+23) mod 5 =2
(23+23) mod 5 =1
Prof RG Crespo
M(0)
0
1
2
3
0
0
0
1
0
1
0
0
1
1
2
1
1
0
0
3
0
1
0
1
Software de Telecomunicações
Curvas elípticas : 34/42
Representação de elementos F2m (11)
Curiosidade, não faz parte da avaliação
Produto implementado em HW a partir de rotações das
variáveis envolvidas!
a0 a1
am-1
b0 b1
Prof RG Crespo
bm-1
Função
lógica
Software de Telecomunicações
c0, c1, …, cm-1
Curvas elípticas : 35/42
Representação de elementos F2m (12)
Curiosidade, não faz parte da avaliação
c0=a0b2 + a1(b2 + b3) + a2 (b0 + b1) + a3(b1 + b3)
c1=a1b3 + a2(b3 + b0) + a3 (b1 + b2) + a0(b2 + b0)
c2=a2b0 + a3(b0 + b1) + a0 (b2 + b3) + a1(b3 + b1)
c3=a3b1 + a0(b1 + b2) + a1 (b3 + b0) + a2(b0 + b2)
Exemplo: multiplicar [1] por [3,1,0] (apenas a1 é positivo)
•
•
•
•
c0 = b2 + b3 = 1
c1 = b3 = 1
c2 = b3 + b1 = 1 + 1 = 0
c3 = b3 + b0 = 1 + 1 = 0
[1] * [3,1,0] = [1,0]
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 36/42
Representação de elementos F2m (13)
Curiosidade, não faz parte da avaliação
iii. Inverso de um elemento de GF(2m)
−1
a =a
2n −2
=a
2( 2n−1 −1)
Para calcular o inverso, primeiro calcula-se a(2
é elevado ao quadrado.
2 n −1 − 1 = (2
2
n −1
( n −1)
− 1 = 2( 2
2
+ 1)(2
( n−2)
2
( n −1)
+ 1)(2
2
n-1-1)
, que
− 1), n%2 = 1
( n−2)
2
− 1) + 1, n%2 = 0
(n-1)/2
-1
• Se n é ímpar, basta uma multiplicação depois de calcular a2
(n-2)/2
-1
• Se n é par, bastam duas multiplicações depois de calcular a2
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 37/42
Conversão entre bases (1)
• Dois sistemas distintos trabalham na mesma curva elíptica
e com a mesma chave, mas podem possuir representações
distintas.
• Vários mecanismos foram desenvolvidos para conversão
dos elementos de GF(2n).
Aqui descrevemos a conversão matricial
– Simples
– Exigente em memória: matriz ocupa O(n2)
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 38/42
Conversão entre bases (2)
• Pretende-se converter elemento representado em ONB1
para base polinomial 1, para GF(24) gerado por x4+x+1
α 8  1
 4 
α  = 1
α 2  0
  
 α  0
0
0
0
0
1 ω 4  •
 
0 ω 3 
⋅
0 ω 2 
   •
1  ω 
1
0
1
0
O problema reside na conversão dos
elementos de base com potências
superiores à da base destino.
Para 1, tem-se que ω é raíz do
polinómio primitivo ∴ ω4+ω+1=0.
α8 = x8 mod x4+x+1 = ω2+1 =
ω2+(ω4+ω)
Nota: α8 é dependente de α4, α2 e α
• ONB1 e base polinomial 1 são isomórficas para GF(24)
gerado por x4+x+1.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 39/42
Conversão entre bases (3)
ONB1
Base polinomial 1
[0]
w = [0]
[1]
w2 = [1]
[2]
w3 =
[3]
w4+w2+w
[2]
= [3,1,0]
[1,0]
[1]+[0] = [1,0]
[2,0]
[2]+[0] = [2,0]
[2,1]
[2]+[1] = [2,1]
[3,0]
[3,1,0]+[0] = [3,1]
[3,1]
[3,1,0]+[1] = [3,0]
[3,2]
[3,1,0]+[2] = [3,2,1,0]
[3,1,0]
[3,1,0]+[1]+[0] = [3]
[3,2,0]
[3,1,0]+[2]+[0] = [3,2,1]
[3,2,1]
[3,1,0]+[2]+[1] = [3,2,0]
[3,2,1,0]
• Para a base polinomial 0, a matriz de
conversão seria
α 8  0
 4 
α  = 0
α 2  0
  
 α  0
1 0 1 ω 3 
 
0 1 1 ω 2 
⋅
1 0 0  ω 
  
0 1 0  1 
• A não independência dos membros da
base de ONB1 leva a que a conversão
não seja homomórfica:
– [2] = w+1∴ [1,0]
– [3,1,0] = (w2+1)+(w2)+(w) ∴ [1,0]
• O elemento [3,2,1,0] corresponde ao
ponto do infinito na base polinomial 0
[3,1,0]+[2]+[1]+[0] = [3,2]
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 40/42
Problema logaritmo discreto (1)
Definição: O problema DLP (“Discrete Logarithm
Problem”) pretende determinar n tal que para um
par (x,y) se verifiqye y=xn.
O problema ECDLP (“Elliptic Curve Discrete
Logarithm Problem”) idêntico ao DLP sobre o
Grupo gerado por Ep(a,b).
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 41/42
Problema logaritmo discreto (2)
• Não são conhecidos algoritmos eficientes na
resolução do DLP.
– Procura exaustiva é proporcional à dimensão do Grupo
(i.e., exponencial os número de dígitos).
– Pollard ρ: resolve DLP em O(√n)
• Resolução do ECDLP considerada mais
“intratável” que o DLP, porque os algoritmos
mais potentes do DLP não podem ser transpostos
para o ECDLP.
Prof RG Crespo
Software de Telecomunicações
Curvas elípticas : 42/42
Download