main
main
3 Curvas Elípticas 16
3.1 A Regra Geométrica da Soma . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Estrutura de Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Regra Algébrica da Soma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1 Lei de Grupo para E/K : y 2 = x3 + ax + b, char(K) ̸= 2, 3 . . . . . 20
3.3.2 Lei de grupo para E/F2m não-supersingular: y 2 +xy = x3 +ax2 +b 23
3.3.3 Lei de grupo para E/F2m supersingular: y 2 + cy = x3 + ax + b . 24
3.4 Ordem do Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5 Estrutura do Grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 Representação por Coordenadas Homogêneas . . . . . . . . . . . . . . . . . 26
1
1 Introdução
Estas notas têm como objetivo apresentar uma introdução às curvas elípticas e à criptogra-
fia baseada nessas curvas, reunindo os principais conceitos necessários para compreender
seus fundamentos matemáticos e suas aplicações. Inicialmente, são revisados tópicos de
curvas algébricas, como curvas afins, o plano projetivo e resultados básicos da geometria
algébrica. Em seguida, são estudadas as curvas elípticas, destacando sua estrutura de
grupo, a lei de composição e diferentes representações. Na parte final, são introduzidos os
principais protocolos criptográficos baseados em curvas elípticas, bem como o problema
do logaritmo discreto e alguns algoritmos de ataque. Ao longo do texto, são apresen-
tados exemplos resolvidos que ilustram os conceitos e algoritmos discutidos, tornando o
conteúdo mais acessível ao leitor.
Embora o material tenha caráter introdutório, recomenda-se que o leitor possua conhe-
cimentos prévios de Álgebra, especialmente de estruturas algébricas, como grupos, anéis
e corpos. Familiaridade com teoria dos números e álgebra linear também é desejável, pois
esses tópicos constituem a base matemática necessária para o estudo das curvas elípticas
e de suas aplicações em criptografia.
2
2 Introdução as Curvas Algébricas e Suas Aplicações
Definição 1. Uma curva algébrica plana é o lugar dos pontos cujas coordenadas satisfa-
zem uma equação do tipo f (x, y) = 0, onde f é um polinômio não constante.
As curvas algébricas planas começaram a serem estudadas há mais de dois mil anos,
muito antes de usar o sistema de coordenadas em geometria. Elas eram estudadas de uma
maneira mais primitiva, como lugares geométricos.
Por exemplo,
2. A elipse é o lugar geométrico dos pontos de um plano cuja soma das distâncias a
dois pontos fixos, denominados focos, é constante.
No final do século 17, o método de Fermat e Descartes para descrever um lugar geomé-
trico no plano por meio de equações de duas variáveis já era bastante conhecido. Usando
métodos de cálculo diferencial as curvas algébricas reais apareceram para reformular vários
problemas
O estudo das curvas algébricas planas envolve relações muito interessantes entre várias
áreas da matemática, entre elas a Álgebra e a Geometria. Além disso, pode-se encontrar
curvas em diversas áreas Segue alguns exemplos de curvas que certamente são conhecidas.
3
Exemplo 1. A reta é um exemplo de uma curva.
4
Exemplo 3. A Parábola é uma curva.
Figura 4: Parábola
Fonte: [Link]
Fonte: Oliveira. T. C
5
Exemplo 4. Concoide de Nicomedes usada para resolver problema de cálculo de médias
proporcionais.
6
2.1 Curvas afins
Seja k um corpo e An = k × . . . × k = {(a1 , . . . , an ) / ai ∈ k, ∀ i}. An (k) ou simplesmente
An é chamado de espaço afim, ou n−espaço afim.
Para n = 1 temos a reta afim, para n = 2 temos o plano afim.
Seja k um corpo algebricamente fechado e f (x, y) um polinômio não nulo em k[x, y].
Denotamos por Vk (f ) o conjunto dos pontos em k 2 da curva algébrica plana afim, ou
simplesmente, curva algébrica, determinada por f (x, y), isto é,
C = Vk (f ) = {(x, y) ∈ k 2 / f (x, y) = 0}
Um polinômio é dito homogêneo quando todos os seus termos tem o mesmo grau.
Seja C é uma curva definida por f ∈ k[x, y]. Observe que f admite uma fatoração, pois
todo anel de polinômios sobre um corpo é domínio de fatoração única. Assim, podemos
escrever f da seguinte forma:
f = f1n1 · · · fknk ,
onde f ′ is São polinômios irredutíveis não-associados. Cada curva definida por fi é cha-
mada de uma componente de f .
7
Exemplo 8. Seja C definida por f (x, y) = x2 − y 2 = (x − y)(x + y). As componentes
aqui são f1 = x − y e f2 = x + y.
Exemplo 10. Seja C1 uma curva plana definida por f (x, y) = x2 − y 2 e C2 uma curva
plana definida por g(x, y) = (x − y)x. A interseção de C1 e C2 é finita? A resposta é não.
Observe que a interseção das curvas f e g é a reta x = y, ou seja, possui infinitos pontos
de interseção.
Figura 9: Inteseção de f e g
Exemplo 11. Podemos ver abaixo exemplos de curvas que se intersectam em uma quan-
tidade infinita de pontos, finita e caso que não se intersectam.
8
Figura 10: Interseção de duas retas
9
polinômios em y com coeficientes em k[x]:
f (x, y) = a0 y m + . . . + am , m ≥ 1 e g(x, y) = b0 y n + . . . + bn , n ≥ 1.
a0 . . . am 0 ... 0 0
0 a0 . . . am 0 ... 0
.. .. .. .. .. .. ..
. . . . . . .
R = Rf,g = 0 0 0 0 a0 . . . am
b0 ... bn 0 ... ... 0
.. .. .. .. .. .. ..
. . . . . . .
0 ... 0 0 b0 ... bn
f (x, y) = y 2 + 0 · y + (x2 − 4)
e
g(x, y) = xy − 1 = (x)y − 1.
Assim,
a0 = 1, a1 = 0, a2 = x2 − 4,
e
b0 = x, b1 = −1.
Como m = 2 e n = 1, a matriz é
1 0 x2 − 4
x −1 0 ,
0 x −1
10
Calculando o determinante pela primeira linha,
1 0 x2 − 4
Rf,g (x) = x −1 0
0 x −1
−1 0 x −1
=1 + (x2 − 4)
x −1 0 x
= 1 (−1)(−1) − 0 · x + (x2 − 4)(x2 )
= 1 + x2 (x2 − 4)
= x4 − 4x2 + 1.
Portanto,
Rf,g (x) = x4 − 4x2 + 1.
xy − 1 = 0
segue que
1
y= , x ̸= 0.
x
Substituindo em f (x, y) = 0, obtemos
1
+ x2 − 4 = 0.
x2
x4 − 4x2 + 1 = 0,
Proposição 2.2. O grau da resultante de duas curvas sem direção assintótica em comum
é
deg(Rf,g ) = deg(f ).deg(g).
11
Teorema 2.3. (Teorema de Bézout- Caso afim) Sejam C e D duas curvas algébricas
definidas por f e g de graus m e n respectivamente. Supondo que C e D não tem
componentes em comum, ou seja, f e g não possuem fatores em comum. Então C e D
têm no máximo mn pontos de interseção, isto é, #C ∩ D ≤ deg(C).deg(D).
12
intersectam no infinito.
φ(x, y) = φ(x′ , y ′ ).
Então,
(x : y : 1) = (x′ : y ′ : 1′ )
1 = λ · 1,
13
logo λ = 1. Consequentemente,
x = x′ e y = y′.
Assim,
(x, y) = (x′ , y ′ ),
e F é um polinômio homogêneo.
Ou ainda, uma curva plana projetiva C é uma classe de equivalência de polinômios
homogêneos não constantes, F ∈ k[x, y, z], módulo uma relação que identifica dois tais
polinômios, F, G, se um for múltiplo constante um do outro.
2. F (x, y, z) = z 3 + xyz
Exemplo 15. Duas curvas sempre se intersectam em P2 , inclusive duas retas paralelas.
14
Podemos ver os pontos no infinito nas pinturas artísticas e na construção, como mostras
as figuras 17, 18 e 19. O ponto no infinito nesses casos é chamado de fuga.
Figura 17: Santa ceia com ponto de fuga Figura 18: Santíssima Trindade com ponto
no olho esquerdo de Cristo de fuga nos pés da cruz
Fonte: Gonçalves. T. S
Teorema 2.8. Teorema de Bézout Se F e G são curvas planas projetivas sem com-
ponentes em comum, então o número de pontos na interseção F ∩ G, contados com
multiplicidade, é igual a deg(G).deg(F ). Isto é
#F ∩ G = deg(G).deg(F ).
15
3 Curvas Elípticas
Essa seção é baseada no livro [7] e tem como objetivo introduzir o estudo das curvas
elípticas, destacando a estrutura de grupo que elas apresentam.
Definição 6. Uma curva elíptica E sobre um corpo K é definida por uma equação
E : y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 (1)
E1 : y 2 = x3 − x
1 5
E 2 : y 2 = x3 + x +
4 4
definidas sobre o corpo R dos números reais. Os pontos E1 (R) \ {∞} e E2 (R) \ {∞} estão
representados na Figura a seguir.
E1 : y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
E2 : y 2 + ā1 xy + ā3 y = x3 + ā2 x2 + ā4 x + ā6
16
Figura 20: Exemplo de gráfico de Curvas Elípticas
E : y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 (4)
a2 a4 + a2
a3
(x, y) → a21 x + , a31 y + 1 3 3
a1 a1
transforma E na curva
y 2 + xy = x3 + ax2 + b (6)
17
Caso 2: a1 = 0
A mudança de variáveis admissível
(x, y) → (x + a2 , y)
transforma E na curva
y 2 + cy = x3 + ax + b (7)
y 2 = x3 + ax2 + b (8)
(x, y) → (x, y + a1 x + a3 )
transforma E na curva
y 2 = x3 + ax + b (9)
• Soma de pontos distintos (P ̸= Q): Traça-se uma reta s que passa pelos pontos
P e Q. Como a equação da curva possui grau 3, essa reta intersecta a curva em um
terceiro ponto T (onde T ∈ s ∩ E). Define-se a soma P + Q = R, sendo R o ponto
obtido pela reflexão de T em relação ao eixo x.
18
curva no ponto P . A reta tangente intersecta a curva em um ponto T . O resultado
2P é a reflexão de T em relação ao eixo x.
• Caso vertical: Se a reta s for perpendicular ao eixo x, não existe uma terceira
interseção finita com a curva. Convenciona-se, então, que P + Q = ∞, onde θ é
chamado de ponto no infinito.
1. Fechamento: Se P, Q ∈ E, então (P + Q) ∈ E.
19
Figura 22: Associativa
20
2P = (x3 , y3 ), onde:
2
3x21 + a 3x21 + a
x3 = − 2x1 e y3 = (x1 − x3 ) − y1 .
2y1 2y1
E : y 2 = x3 + 4x + 20
∞, (2, 6), (4, 19), (8, 10), (13, 23), (16, 2), (19, 16), (27, 2),
(0, 7), (2, 23), (5, 7), (8, 19), (14, 6), (16, 27), (20, 3), (27, 27),
(0, 22), (3, 1), (5, 22), (10, 4), (14, 23), (17, 10), (20, 26),
(1, 5), (3, 28), (6, 12), (10, 25), (15, 2), (17, 19), (24, 7),
(1, 24), (4, 10), (6, 17), (13, 6), (15, 27), (19, 13), (24, 22).
e
2(5, 22) = (14, 6).
Exemplo 19 (Corpo Binário ). F2m são corpos finitos binários de característica 2. Uma
maneira de construir F2m é com base polinomial. para essa construção, vamos considerar
os coeficientes em F2 = {0, 1} e o grau máximo m − 1.
Aritmética em F2m
(a)
21
I) Realizadas através da soma dos coeficientes módulo 2.
f (z) = z 4 + z + 1.
Os elementos de F24 podem ser representados pelos polinômios binários de grau inferior
a 4, isto é,
0 z2 z3 z3 + z2
1 z2 + 1 z3 + 1 z3 + z2 + 1
z z2 + z z3 + z z3 + z2 + z
z + 1 z 2 + z + 1 z 3 + z + 1 z 3 + z 2 + z + 1.
A seguir, apresentam-se alguns exemplos de operações em F24 .
1. Soma:
(z 3 + z 2 + 1) + (z 2 + z + 1) = z 3 + z.
2. Subtração:
(z 3 + z 2 + 1) − (z 2 + z + 1) = z 3 + z.
3. Multiplicação:
(z 3 + z 2 + 1)(z 2 + z + 1) = z 5 + z + 1.
z5 + z + 1 ≡ z2 + 1 (mod z 4 + z + 1).
Portanto,
(z 3 + z 2 + 1)(z 2 + z + 1) = z 2 + 1 em F24 .
22
4. Inverso multiplicativo:
(z 3 + z 2 + 1)−1 = z 2 ,
pois
(z 3 + z 2 + 1) z 2 ≡ 1 (mod z 4 + z + 1).
x3 = λ2 + λ + x1 + x2 + a e y3 = λ(x1 + x3 ) + x3 + y1
b
x3 = λ2 + λ + a = x21 + e y3 = x21 + λx3 + x3
x21
com λ = x1 + y1 /x1 .
Exemplo 21. (curva elíptica não-supersingular sobre F24 ) Considere o corpo finito F24
representado pelo polinômio de redução f (z) = z 4 + z + 1. Sejam a = z 3 , b = z 3 + 1, e
considere a curva elíptica não-supersingular
E : y 2 + xy = x3 + z 3 x2 + (z 3 + 1)
23
∞ (0011, 1100) (1000, 0001) (1100, 0000)
(0000, 1011) (0011, 1111) (1000, 1001) (1100, 1100)
(0001, 0000) (0101, 0000) (1001, 0110) (1111, 0100)
(0001, 0001) (0101, 0101) (1001, 1111) (1111, 1011)
(0010, 1101) (0111, 1011) (1011, 0010)
(0010, 1111) (0111, 1100) (1011, 1001)
Exemplos de adição em curvas elípticas são (0010, 1111) + (1100, 1100) = (0001, 0001), e
2(0010, 1111) = (1011, 0010).
√ √
q + 1 − 2 q ≤ #E(Fq ) ≤ q + 1 + 2 q
√ √
O intervalo [q + 1 − 2 q, q + 1 + 2 q] é conhecido como o intervalo de Hasse.
Exemplo 22 (Ordens de curvas elípticas sobre F37 ). Seja p = 37. A Tabela lista, para
√ √
cada número inteiro n no intervalo de Hasse [37 + 1 − 2 37, 37 + 1 + 2 37], os coeficientes
(a, b) de uma curva elíptica E : y 2 = x3 + ax + b definida sobre F37 com #E(F37 ) = n.
24
n (a, b) n (a, b) n (a, b) n (a, b) n (a, b)
26 (5, 0) 31 (2, 8) 36 (1, 0) 41 (1, 16) 46 (1, 11)
27 (0, 9) 32 (3, 6) 37 (0, 5) 42 (1, 9) 47 (3, 15)
28 (0, 6) 33 (1, 13) 38 (1, 5) 43 (2, 9) 48 (0, 1)
29 (1, 12) 34 (1, 18) 39 (0, 3) 44 (1, 7) 49 (0, 2)
30 (2, 2) 35 (1, 8) 40 (1, 2) 45 (2, 14) 50 (2, 0)
Tabela 1: Ordens de curvas elípticas sobre F37
Como n2 divide tanto n1 quanto q − 1, espera-se que E(Fq ) seja cíclico ou quase cíclico
para a maioria das curvas elípticas E sobre Fq .
Exemplo 23. A curva elíptica E : y 2 = x3 +4x+20 definida sobre F29 tem #E(F29 ) = 37.
Como 37 é primo, E(F29 ) é um grupo cíclico e qualquer ponto em E(F29 ), exceto por ∞,
é um gerador de E(F29 ). O que se segue mostra que os múltiplos do ponto P = (1, 5)
geram todos os pontos em E(F29 ).
0P =∞ 8P = (8, 10) 16P = (0, 22) 24P = (16, 2) 32P = (6, 17)
1P = (1, 5) 9P = (14, 23) 17P = (27, 2) 25P = (19, 16) 33P = (15, 2)
2P = (4, 19) 10P = (13, 23) 18P = (2, 23) 26P = (10, 4) 34P = (20, 26)
3P = (20, 3) 11P = (10, 25) 19P = (2, 6) 27P = (13, 6) 35P = (4, 10)
4P = (15, 27) 12P = (19, 13) 20P = (27, 27) 28P = (14, 6) 36P = (1, 24)
5P = (6, 12) 13P = (16, 27) 21P = (0, 7) 29P = (8, 19)
6P = (17, 19) 14P = (5, 22) 22P = (3, 28) 30P = (24, 7)
7P = (24, 22) 15P = (3, 1) 23P = (5, 7) 31P = (17, 10)
Exemplo 24. Considere F24 como representado pelo polinômio de redução f (z) = z 4 +z+
1. A curva elíptica E : y 2 +xy = x3 +z 3 x2 +(z 3 +1) definida sobre F24 tem #E(F24 ) = 22.
Como 22 não possui fatores repetidos, E(F24 ) é cíclico. O ponto P = (z 3 , 1) = (1000, 0001)
tem ordem 11; seus múltiplos são mostrados abaixo.
25
0P =∞ 1P = (1000, 0001) 2P = (1001, 1111)
3P = (1100, 0000) 4P = (1111, 1011) 5P = (1011, 0010)
6P = (1011, 1001) 7P = (1111, 0100) 8P = (1100, 1100)
9P = (1001, 0110) 10P = (1000, 1001)
• Isso significa que um ponto projetivo representa, na verdade, uma reta que passa
pela origem no espaço tridimensional.
• Mergulho Afim: Pontos comuns (x, y) são mapeados para o plano projetivo como
(x : y : 1) (onde Z = 1).
E : y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
definida sobre K é
Y 2 Z + a1 XY Z + a3 Y Z 2 = X 3 + a2 X 2 Z + a4 XZ 2 + a6 Z 3 .
O único ponto na linha no infinito que também reside em E é (0 : 1 : 0). Este ponto
projetivo corresponde ao ponto ∞.
26
4 Criptografia com Curvas elípticas
A criptografia de curvas elípticas (Elliptic Curve Cryptography – ECC) foi proposta
de forma independente, em 1985, pelos matemáticos Neal Koblitz, da Universidade de
Washington, e Victor Miller, da IBM. A principal contribuição desses pesquisadores foi
a utilização dos grupos de pontos de curvas elípticas definidas sobre corpos finitos como
alternativa aos grupos multiplicativos tradicionalmente empregados em sistemas de crip-
tografia de chave pública.
A segurança da ECC fundamenta-se no Problema do Logaritmo Discreto em Cur-
vas Elípticas (Elliptic Curve Discrete Logarithm Problem – ECDLP). As curvas elípticas
utilizadas são, em geral, descritas por equações da forma
y 2 = x3 + ax + b,
definidas sobre um corpo apropriado e sujeitas a condições que garantem sua não
singularidade.
Uma das principais vantagens da ECC em relação a sistemas criptográficos clássicos,
como o RSA, é que ela proporciona o mesmo nível de segurança utilizando chaves sig-
nificativamente menores. Por exemplo, uma chave ECC de 256 bits oferece um nível de
segurança comparável ao de uma chave RSA de 3072 bits. Essa característica reduz o
consumo de memória, o custo computacional e o tempo de processamento, tornando a
ECC especialmente adequada para dispositivos com recursos limitados, como smartpho-
nes, cartões inteligentes e dispositivos da Internet das Coisas (IoT).
É computacionalmente difícil.
27
3) Bob escolhe um inteiro secreto b, computa Pb = bP , e envia Pb para Alice.
6) Alice e Bob usa algum método aceito publicamente para extrair uma chave de abP .
4.2 Massey-Omura
A apresentação do método Massey-Omura e o exemplo desenvolvido nesta seção têm como
referência o trabalho de [8].
Suponhamos que Alice queira enviar uma mensagem para Bob. A mensagem é colo-
cada em um baú. Alice o fecha com seu cadeado e o envia para Bob. Como Bob não
pode remover o cadeado de Alice, ele apenas acrescenta o seu próprio cadeado e devolve
o baú. Alice então remove apenas o seu cadeado, deixando o cadeado de Bob, e envia
novamente o baú. Por fim, Bob remove seu cadeado e abre o baú. Assim, a mensagem
permanece protegida durante todo o processo, sem que Alice e Bob precisem compartilhar
suas chaves.
1) Alice e Bob escolhem uma curva elíptica E sobre um corpo finito Fq , tal que o
problema do logaritmo discreto é difícil em E(Fq ). Defina N = #E(Fq ).
28
2) Alice representa sua mensagem como um ponto M ∈ E(Fq ).
mensagem.
Escolha do ponto
Definição de Parâmetros:
• Calculamos f (x) = x3 + Ax + B em Fq .
29
Recuperação da Mensagem:
• Para extrair m a partir do ponto Pm = (x, y), aplica-se a função piso: m = ⌊x/t⌋.
Análise de Falha:
Parâmetros de Codificação:
Codificação da Letra A:
• Como a equação y 2 ≡ 452 (mod 751) não tem solução, tomamos x + 1 = 201, onde
f (201) ≡ 135 (mod 751) (também sem solução).
• PP = (501, 53), PR = (541, 104), PO = (485, 263), PV = (621, 324), PD = (261, 110),
PN = (460, 247), PT = (581, 283), PC = (241, 372).
30
• O usuário A escolhe o inteiro secreto mA = 5, com mdc(5, #E(F751 ) = 764) = 1.
M.C. = {(553, 147), (535, 214), (232, 634), (49, 553), (98, 16),
(553, 147), (627, 163), (49, 553), (529, 475), (49, 553),
(128, 233), (398, 743), (398, 743)}
Ação do Usuário B:
{(263, 658), (627, 163), (50, 509), (111, 745), (691, 589),
(263, 658), (569, 88), (111, 745), (238, 456), (111, 745),
(331, 64), (55, 696), (55, 696)}
{(324, 143), (261, 110), (10, 593), (237, 187), (140, 362),
(324, 143), (714, 725), (237, 187), (471, 374), (237, 187),
(173, 109), (353, 428), (353, 428)}
31
Esse problema consiste em encontrar o x na equação g x = h dentro de um grupo finito.
No contexto de curvas elípticas, tentamos encontrar o x tal que Q = xP .
É computacionalmente difícil.
Passo 1: Preparação de Bob no ECDLP Alice deseja enviar uma mensagem m
para Bob.
Algoritmo.
• M1 = aP
• M2 = m + aQ
• Este mapeamento permite que o texto seja tratado como dado matemático para as
operações na curva.
32
Exemplo 27. Para a palavra LNCC, primeiro identificamos os números de cada letra
antes de agrupá-las em blocos.
Passo 2: Agrupamento e Concatenação A mensagem é dividida em blocos de
duas letras (neste exemplo, LN e CC).
– A = 01 e B = 02.
– Valor concatenado: 0102 (ou 102).
Resultado Final O par de letras AB é mapeado para o ponto (3108, 1065) na curva
elíptica.
Passo 1: Configuração e Chave Pública de Bob Bob inicia o processo definindo
sua chave privada e os parâmetros da curva y 2 = x3 + 373x + 402 sobre F3697 :
33
2. Calcula a primeira parte do criptograma (M1 ):
Passo 3: Bob Recupera a Mensagem “LN” Bob recebe (M1 , M2 ) e usa sua chave
privada b = 919 para calcular m = M2 − bM1 :
34
Passo 5: Conclusão do Processo Bob recupera a string final repetindo a subtração:
• Cálculo de descriptografia:
E : y 2 = x3 + 4x + 20
G = (24, 7)
b = 28
Q = bG
Logo,
Q = 28(24, 7) = (10, 4)
Portanto:
• Chave privada: b = 28
35
Letra Número Ponto Letra Número Ponto
A 22 (17, 10) N 25 (13, 23)
B 34 (0, 7) O 30 (19, 13)
C 24 (27, 2) P 33 (14, 6)
D 4 (14, 23) Q 27 (15, 2)
E 23 (16, 2) R 21 (1, 5)
F 1 (24, 7) S 37 Neutro
G 15 (17, 19) T 11 (20, 26)
H 14 (16, 27) U 35 (5, 22)
I 20 (8, 10) V 8 (2, 23)
J 18 (3, 28) W 26 (20, 3)
K 17 (8, 19) X 6 (6, 17)
L 29 (2, 6) Y 28 (10, 4)
M 12 (13, 6) Z 7 (19, 16)
Pré-codificação da Mensagem
Antes da criptografia, cada letra da mensagem é associada a um ponto da curva elíptica
por meio de uma tabela de pré-codificação.
A mensagem utilizada foi:
CODIGO
Assim, a mensagem passa a ser representada por uma lista de pontos da curva elíptica.
Criptografia no ElGamal
Para criptografar a mensagem, escolhe-se um valor aleatório a e calcula-se:
M1 = aG
M1 = (1, 5)
M2 = P + aQ
onde:
36
• Q é a chave pública;
Tabela M2
C (8, 10)
O (20, 3)
D Elemento neutro
I (1, 24)
G (20, 26)
O (20, 3)
O destinatário utiliza sua chave privada b para recuperar cada ponto original da men-
sagem.
A recuperação é feita por meio da operação:
P = M2 − bM1
onde:
• b é a chave privada.
CODIGO
37
Algoritmo: Criptografando a Mensagem Para cifrar m = (x1 , x2 ), Bob realiza os
seguintes passos:
• y1 = c1 x1 (mod p).
• y2 = c2 x2 (mod p).
Exemplo 29. Exemplo Prático: Mensagem “MCT” Bob deseja enviar “MCT” para Alice
usando a curva Ω : y 2 = x3 + 67110x + 262147 sobre F2097421 .
• Parâmetros Públicos:
– P = (1355793, 621792).
– Q = sP = (949594, 812871), com chave privada s = 78771.
38
2. Calcula o segredo compartilhado kQ:
1. Alice calcula s · y0 :
Conclusão Ao final, Alice obtém m = (7767, 84), que convertido de volta para ASCII
resulta na mensagem original MCT.
4.5 Ataques
Nesta seção serão apresentados os principais tipos de ataques aplicáveis à Criptografia de
Curvas Elípticas (ECC). Serão discutidos os ataques matemáticos, descrevendo apenas a
ideia geral de seu funcionamento, incluindo força bruta, Baby-Step Giant-Step, Rho de
Pollard e Pohlig–Hellman e tem como referência o livro [7].
Força Bruta
39
Big-Step Giant-Step
Rho de Pollard
Pohlig-Hellman
Teorema 4.1 (Teorema Chinês do Resto). Se, para todo i ∈ {1, 2, . . . , k},
mdc(ai , mi ) = 1,
admite solução
x0 = c1 n1 ℓ1 + c2 n2 ℓ2 + · · · + ck nk ℓk ,
40
onde ci é solução de ai x ≡ bi (mod mi ), e ni x ≡ 1 (mod mi ). tem solução li .
li = z0 + z1 p + z2 p2 + · · · + ze−1 pe−1
2. Dígito z1 : Define-se Q1 = n
p2
(Q − z0 P ). Resolve-se Q1 = z1 P0 .
3. Generalização (zt ):
t−1
!
n X
Qt = Q− zj pj P = zt P0
pt+1 j=0
E : y 2 = x3 + 1001x + 75.
Seja
P = (4023, 6036) ∈ E(F7919 ).
A ordem de P é
n = 7889 = 73 · 23.
41
Seja
Q = (4135, 3169) ∈ ⟨P ⟩.
Desejamos determinar
l = logP Q.
1. Primeiro determinamos
l1 ≡ l (mod 73 ).
Escrevemos
l1 = z0 + z1 · 7 + z2 · 72
e calculamos
P0 = 72 · 23 P = (7801, 2071),
Q0 = 72 · 23 Q = (7801, 2071).
Em seguida, calculamos
Q1 = 7 · 23 (Q − P ) = (7285, 14)
e verificamos que
Q1 = 3P0 .
Logo,
z1 = 3.
Finalmente, calculamos
Q2 = 23 (Q − P − 3 · 7P ) = (7285, 7905)
e verificamos que
Q2 = 4P0 .
Assim,
z2 = 4.
Portanto,
l1 = 1 + 3 · 7 + 4 · 72 = 218.
2. Em seguida, determinamos
l2 ≡ l (mod 23).
42
Calculamos
P0 = 73 P = (7190, 7003),
Q0 = 73 Q = (2599, 759),
e verificamos que
Q0 = 10P0 .
Logo,
l2 = 10.
l ≡ 218 (mod 73 ),
l ≡ 10 (mod 23).
l = 4334.
Portanto,
logP Q = 4334.
E : y 2 = x3 + 1001x + 75,
P = (4023, 6036).
43
CHAVE Força Bruta Pohlig-Hellman BSGS
1000 999 1055 189
2000 1999 1037 200
3000 2999 996 211
4000 3999 978 222
5000 4999 937 234
6000 5999 919 245
7000 6999 878 256
E : y 2 = x3 + 5x − 3,
P = (154, 5).
44
Referências
[1] VAINSENCHER, I. Introdução às Curvas Algébricas Planas. Coleção Matemática
Universitária. 2. ed. Rio de Janeiro: IMPA, 2005.
[2] GARCIA, A.; LEQUAIN, Y. Elementos de Álgebra. 5. ed. Rio de Janeiro: IMPA,
2008.
[3] SALEHYAN, P. Curvas Algébricas: uma breve introdução. Minicurso da VII Semana
da Matemática da FEIS–UNESP, Ilha Solteira, 2008.
[6] SONG, Jimmy. Programming Bitcoin: Learn How to Program Bitcoin from Scratch.
Sebastopol: O’Reilly Media, 2019.
[7] HANKERSON, Darrel; MENEZES, Alfred J.; VANSTONE, Scott. Guide to Elliptic
Curve Cryptography. New York: Springer, 2004.
[8] MEIRELES, Tiago Aprigio Bezerra. Curvas Elípticas e Criptografia. 2023. Trabalho
de Conclusão de Curso (Bacharelado em Matemática) – Faculdade de Matemática,
Universidade Federal de Uberlândia, Uberlândia, 2023.
45