Você está na página 1de 84

CRIPTOGRAFIA

SEGURANÇA DE DADOS
5

Routo Terada
www.ime.usp.br/~rt
Depto. de C. da Computação - USP

Segurança de dados - RT 1
Resumo
 Algoritmo ElGamal
 Assinatura ElGamal
 Assinatura DSS
 Curvas elípticas
 ElGamal sobre curvas elípticas
 Algoritmo MV - Menezes e Vanstone
 Curvas elípticas sobre GF2 m 
 Corpo finito de Galois

Segurança de dados - RT 2
O Algoritmo ElGamal de chave pública (pg.148)
 Um primo p  2, um gerador g do conj. Z p segredo da
Alice S : 1  S  p  2.
 x  Z p a ser criptografado por Beto.
 Conj. de chaves é K  p, g, S, T : T  g S mod p.
Perg.: O que protege S?
 p, g, e T são públicos; S é secreto conhecido só p/ Alice
Algoritmo de criptografia ElGamal
 Beto escolhe um no. NONCE k  Z p1 ,
k  1. Number-Used-Once
 x  Z p , calcula y  g k mod p; e z  xT k mod p. y, z  Z p :
por quê?
 y, z é enviado para Alice.
Segurança de dados - RT 3
Algoritmo de decriptografia ElGamal
 Alice efetua zy S  1 mod p  x
O Algoritmo ElGamal de assinatura (pg.203)
 O Algoritmo ElGamal de chave pública pode ser
ligeiramente modificado para um outro propósito que não
é o de esconder um x mas, sim,
- gerar uma assinatura não falsificável que pode ser
anexado ao x e
- ser verificável só com informação pública.
Um exemplo numérico (pg. 204)
Algoritmo para assinar x (pg. 203)
Errata: https://www.ime.usp.br/~rt/errata444.pdf
Segurança de dados - RT 4
 Para Alice assinar um x com a sua chave secreta S:
1. Escolhe um aleatório k  Z p1 ; (mdck, p  1  1,
 para garantir existência de k 1 modp  1. (Qual
Teorema garante?)
 recomenda-se usar um k distinto para cada x a ser
assinado: NONCE number used once.
2. Calcula y  g k mod p.
3. Calcula z  x  Syk 1 modp  1.
4. y, z é a assinatura anexada a x.
 Exercício: Para os valores
p  17, g  7, x  12, S  9, k  9 calcular a assinatura
ElGamal sobre x. Resposta parcial: z  2.
 Alternativam/, p/ que a assinatura seja mais compacta,
Segurança de dados - RT 5
recomenda-se
- assinar hx no lugar de x,
- onde h é uma função espalhamento (‘hashing’,
Capítulo 7)
- como, por exemplo, uma função t.q. |hx| 256 bits
Qual a vantagem?

Segurança de dados - RT 6
Algoritmo para verificar assinatura y, z
(ver errata das pgs. 204, 205)
O algo. de verificação de uma assinatura é como segue:
1. Se y não satisfizer 1  y  p  1, então rejeitar a
assinatura.
2. Se T y y z  g x mod p, então a assinatura é correta (da
Alice verdadeira).
3. Senão, a assinatura é incorreta (falsa).
Demo. da verificação mais adiante nessa aula,
Qualquer pessoa pode verificar? Por quê?
Se x for alterado (um “cheque” ou contrato), o que ocorre?

Segurança de dados - RT 7
Exercício: Para os valores p  17, g  7, x  12, S  9, k  9
calcular a assinatura ElGamal sobre x. Resposta parcial: z  2.

Segurança de dados - RT 8
Observações sobre Assinatura ElGamal
1. Note que o algoritmo de assinatura demora menos que o
de verificação. Por quê?
2. Note também que a geração da assinatura exige o
conhecimento da chave secreta S, mas a verificação só
exige informação de conhecimento público: g, p e T.
Demonstração da verificação ElGamal
 A demo. de que a verificação é correta é simples:
- Inicialm/, tem-se que z  k 1 x  Sy modp  1.
Multiplicando-se os 2 lados desta  por k tem-se:

Segurança de dados - RT 9
kz  x  Sy modp  1
x  Sy  kz modp  1
g x  g Sykz modp1 mod p
g x  g S  y y z mod p
g x  T y y z mod p

Segurança de dados - RT 10
Segurança da assinatura ElGamal
 A recomendação de se usar um k distinto para cada x é
importante, pois
- se um mesmo k for usado para x 1 e x 2 distintos, então
z 1  k 1 x 1  Sy modp  1 e
z 2  k 1 x 2  Sy modp  1.
- Então z 1  z 2 k  x 1  x 2  modp  1.
- Se z 1  z 2  0, então
k  z 1  z 2  1 x 1  x 2  modp  1.
- E sabendo-se k, S é fácil de ser calculado. Como
calcular S?
 Se um intruso quiser falsificar uma assinatura de um
x   x do seu interesse,

Segurança de dados - RT 11
k
- ele define um valor k 
Z p1 
e calcula y  g mod p,
- mas terá dificuldade em calcular
z   x   Syk   1 modp  1, pois ele não conhece
S.
- No entanto a probabilidade de se adivinhar S é em
torno de 1/p,
- que é irrisória mesmo p/ p relativam/ curto; E.g.:
1/2 32  1  2. 3283  10 10 .
 A verificação 1  y  p  1 é importante,
- pois se não fosse feita e um intruso possuísse uma
assinatura válida da Alice,
- então ele poderia assinar um texto legível da sua
escolha da seguinte maneira:

Segurança de dados - RT 12
1. Supondo que y, z seja a assinatura válida sobre x da
Alice,
 o intruso seleciona um texto legível x  e
 calcula u  x  x 1 modp  1 (supondo que
x 1 modp  1 exista).
2. A seguir calcula z   zu modp  1 e y  tal que
y 1  yu mod p  1 e y 2  y mod p (das duas ,

y  modpp  1 pode ser sempre calculado pelo Teorema
Chinês do Resto, pg 247).
3. O par y  , z   seria uma assinatura aceita como válida se o
algoritmo não verificasse 1  y   p  1, pois

Segurança de dados - RT 13
y  z 
T y 
  g Syu y zu
 g Syu g kzu
 g Sykzu
 x 1 
 g xu  g xx  g x

Segurança de dados - RT 14
O Algoritmo DSS — Digital Signature Standard
 Este algoritmo foi adotado e publicado pelo NIST dos
EUA em dezembro de 1994
 Pode também ser generalizado para Corpo Finito de
Galois ou Curva Elíptica, como o Algoritmo ElGamal.
 Alice escolhe
- um primo p, público, e
- um primo q que divide p  1, público.
 A recomendação é
- de p ser de comprimento múltiplo de 64, entre 512 e
1024 inclusive, e
- de q ser de 160 bits.
- Em 1996 recomendou-se no mínimo 768 bits para p.

Segurança de dados - RT 15
- A seguir Alice calcula g  Z p uma q-ésima raiz de 1
mod p, pública (i.e., g q  1 mod p).
- Uma possibilidade para g é considerar t tal que
qt  p  1, um gerador  de Z p , e calcular
g   t mod p, pois g q   tq   p1  1 mod p pelo
Teorema de Euler (veja a Seção Teorema de Euler, pg
262).
- O conjunto de chaves é
K  p, q, g, S, T : T  g S mod p
onde T é público, e S é secreto, S  Z q1 , conhecido
apenas por Alice.
- Em resumo: p, q, g, T é público, e S é secreto.
- No algoritmo a seguir,

Segurança de dados - RT 16
* recomenda-se assinar hx no lugar de x,
* onde h é uma função espalhamento (‘hashing’)
Perg.: qual a vantagem?
* Por exemplo, a função SHA, tal que |hx| 256
(pg 229)

Segurança de dados - RT 17
Algoritmo para Alice assinar x  Z p
1. Escolher k um número aleatório secreto tal que
1  k  q  1 (NONCE.)
2. Calcular C  g k mod p mod q
3. Calcular D  x  SCk 1 mod q (ou
D  hx  SCk 1 mod q)
4. A assinatura é C, D que depende de x e k. Alice envia
para Beto x, C, D.
Algoritmo para Beto verificar a assinatura
 Sendo C, D a assinatura de x  Z p , a verificação é como
a seguir:
1. Se C e D não satisfizerem 0  C  q, 0  D  q, rejeitar
Segurança de dados - RT 18
a assinatura.
2. Beto calcula e 1  xD 1 mod q, e e 2  CD 1 mod q. (ou
e 1  hxD 1 mod q)
3. Se g e 1  T e 2 mod p mod q  C, a assinatura é correta.

 Pergunta: assinar demora mais ou menos do que verificar?


Por quê?

Segurança de dados - RT 19
Demonstração da verificação da assinatura
g e 1  T e 2 mod p mod q 
1 mod 1 mod
g xD q
 T CD q
mod pq 
(pois e 1  xD 1 modq, e e 2  CD 1 modq)
1 mod
g x T C  D q
p mod q 
1 mod q
g x g SC  D mod p mod q 
1 mod q
g xSC  D mod p mod q 
1 mod q
g Dk mod q  D mod p mod q 
(pois D  x  SCk 1 mod q)
g k mod q mod p mod q 
C
(pois C  g k mod p mod q)

Observações sobre DSS


 Note que o algoritmo de assinatura demora menos que o

Segurança de dados - RT 20
de verificação. Por quê?
 A assinatura DSS é menor que a assinatura ElGamal. Por
quê?
Segurança de DSS
1. Qual é o problema computacional difícil que protege k e
S?
2. Só a Alice verdadeira pode ter assinado x? Por quê?
3. Qualquer pessoa pode verificar se uma assinatura é
autêntica?
4. O que acontece se x for modificada, e a assinatura C, D
não for?
5. Qual a importância de k?

Segurança de dados - RT 21
—————– FIM —————–

Segurança de dados - RT 22
Curvas Elípticas (pg 158)
 Curvas elípticas aplicadas a criptografia foram sugeridas,
independentemente, por Vic Miller e Neal Koblitz, em
1985
 A sua segurança contra criptanálise é baseada na
dificuldade computacional de se resolver o PLD sobre
curvas elípticas
 Veremos também que o comprimento recomendado das
chaves é muito menor que o das chaves RSA, para um
nível de segurança equivalente
 No lugar de inteiros mod p, o ElGamal é sobre pontos
dessas curvas

Segurança de dados - RT 23
Definição (Curva Elíptica)
1. Seja um primo p  3 e sejam a, b em Z p tais que
4a 3  27b 2  0 mod p; (Esta última condição equivale a
exigir que x 3  ax  b mod p não contenha algum fator
repetido.)
2. Curva elíptica é o conjunto união de um ponto infinito
e as soluções x, y de y 2  x 3  ax  b mod p.

Segurança de dados - RT 24
8 -R
6
y4
Q
2

-6 -4 -2 00 2 x 4 6
-2
-4 R
P -6
-8

y 2  x 3  7x P  Q  R

Segurança de dados - RT 25
Obs.: na verdade são pontos discretos dessa curva.

Segurança de dados - RT 26
Definição Soma de dois pontos P  x P , y P , Q  x Q , y Q  de
uma curva elíptica é definida como R  P  Q  x R , y R  tal
que:
1. se x Q  x P , y Q  y P então x R , y R   ; ( simboliza
infinito)
2. senão, x R  t 2  x P  x Q , y R  tx P  x R   y P onde
y Q y P
x Q x P se P  Q
t 3x P  2 a
(t de reta tangente)
2y P
se P  Q

3. P    P  P. 
Com a soma definida, os pontos da curva constituem um grupo

Segurança de dados - RT 27
aditivo () comutativo tendo como elemento identidade.

Segurança de dados - RT 28
Definição Inverso de um ponto P  x, y de uma curva elíptica
é o ponto x, y que é denotado P  x, y.
8

6
P
y4 -2P
2

-2 -1 0 0 1 2 3 4
x
-2

-4
2P
-6

-8

y 2  x 3  7x (Tangente) 2P  P  P

Segurança de dados - RT 29
R
4

y 2
P

-2 -1 00 1 2
x

-2

tangente -4
-R

y 2  x 3  3x  5

Segurança de dados - RT 30
Exemplo Seja a curva na Figura E 1 : y 2  x 3  2x  4 sobre
Z 11

y
2

-1 -0.5 00 0.5 1 1.5 2 2.5


x
-2

-4

y 2  x 3  2x  4

Segurança de dados - RT 31
 Primeiro deve-se verificar para quais valores x  Z 11 o
valor z  y 2  x 3  2x  4 mod 11 é um resíduo
quadrático; são eles z  1, 3, 4, 5, 9. Perg.: lembra o que é
resíduo quadrático?
 Listamos a seguir todas as raízes quadradas de z mod 11:
p12
2 3 2 p1/4 2
 (Note: p  11, y  z   z   z 4  2 
p12 p1 2
z 2   z 2  z 2   z (T. Fermat).)

Segurança de dados - RT 32
x z  x 3  2x  4 mod 11 z é res.quadr.? y  z 3 mod 11
0 4 sim 4 3 mod 11  9, e 2
1 1 3  2  1  4 mod 11  7 não
2 2 3  2  2  4 mod 11  5 sim 5 3 mod 11  4, e 7
3 3 3  2  3  4 mod 11  4 sim 4 3 mod 11  9, e 2
4 4 3  2  4  4 mod 11  10 não
5 5 3  2  5  4 mod 11  7 não
6 6 3  2  6  4 mod 11  1 sim 1, e 10
7 7 3  2  7  4 mod 11  9 sim 9 3 mod 11  3, e 8
8 8 3  2  8  4 mod 11  4 sim 4 3 mod 11  9, e 2
9 9 3  2  9  4 mod 11  3 sim 3 3 mod 11  5, e 6
10 10 3  2  10  4 mod 11  1 sim 1, e 10

 Para cada x correspondem dois valores y na curva E 1 . Por


ex.: 4 e 7  p  4

Segurança de dados - RT 33
 Como são 8 valores x a serem considerados, tem-se 16
pares x, y na curva.
 Contando o ponto infinito tem-se o total de 17 pontos,
i.e., a ordem do grupo é 17.
 Qualquer grupo de ordem igual a um primo é cíclico.
Logo, os pontos de E 1 são isomórfos a Z 17 .
 Ademais, qualquer ponto distinto de é gerador dos
pontos de E 1 .
 Por exemplo, x P , y P   3, 2 é um gerador. Neste caso,
2x P , y P   x P , y P   x P , y P   x R , y R   6, 1
 Na tabela a seguir, na qual está subentendido o mod 11,
- calculamos todos os pontos gerados por 3, 2
- somando-o sucessivamente com j  3, 2 para
j  2, 3, 4, . . . 16.
Segurança de dados - RT 34
 Pela tabela comprovamos que 3, 2 é de fato um gerador
dos pontos de E 1 .
y Q y P
j  3, 2 t x Q x P t2  xP  xQ  xR tx P  x R   y P  y R
2  3, 2 10 10 2  3  3  6 10  3  6  2  1
12
3  3, 2 63
7 7 2  3  6  7 7  3  7  2  3
32
4  3, 2 73
 3 3 2  3  7  10 3  3  10  2  10
102
5  3, 2 103
 9 9 2  3  10  2 9  3  2  2  7
72
6  3, 2 23
6 6 2  3  2  9 6  3  9  2  6
62
7  3, 2 93
8 8 2  3  9  8 8  3  8  2  2
22
8  3, 2 83
0 0 2  3  8  0 0  3  0  2  9

Segurança de dados - RT 35
y Q y P
j  3, 2 t x Q x P t2  xP  xQ  xR tx P  x R   y P  y R
92
9  3, 2 03
5 5 2  3  0  0 5  3  0  2  2
22
10  3, 2 03
0 0 2  3  0  8 0  3  8  2  9
92
11  3, 2 83
8 8 2  3  8  9 8  3  9  2  5
52
12  3, 2 93
6 6 2  3  9  2 6  3  2  2  4
42
13  3, 2 23
 9 9 2  3  2  10 9  3  10  2  1
12
14  3, 2 103
 3 3 2  3  10  7 3  3  7  2  8
82
15  3, 2 73
7 7 2  3  7  6 7  3  6  2  10
102
16  3, 2 63
 10 10 2  3  6  3 10  3  3  2  9

Exemplo Seja uma outra curva E 2 : y 2  x 3  x  6 sobre Z 11

Segurança de dados - RT 36
8
6
y
4
2

-1 00 1 2 3 4
-2 x

-4
-6
-8

y2  x3  x  6
 Listamos a seguir todas as raízes quadradas de z que são
resíduos quadráticos em Z 11 :

Segurança de dados - RT 37
x z  x 3  x  6 mod 11 y  z 3 mod 11
2 5 4, 7
3 3 5, 6
5 4 2, 9
7 4 2, 9
8 9 3, 8
10 4 2, 9

 Para cada x correspondem dois valores y na curva E 1 .


 Como são 6 valores x a serem considerados, tem-se 12
pares x, y na curva.
 Contando o ponto infinito tem-se o total de 13 pontos.
 Consideremos o ponto x P , y P   2, 7. Neste caso,
2x P , y P   x P , y P   x P , y P   x R , y R   5, 2

Segurança de dados - RT 38
 Na tabela a seguir, na qual está subentendido o mod 11,
- calculamos todos os pontos gerados por 2, 7
- somando-o sucessivamente com j  2, 7 para
j  2, 3, 4, . . . 12.
 Pela tabela comprovamos que 2, 7 é de fato um gerador
dos pontos de E 2 .

Segurança de dados - RT 39
y Q y P
j  2, 7 t x Q x P t2  xP  xQ  xR tx P  x R   y P  y R
2  2, 7 8 5 2
27
3  2, 7 52
2 2 2  2  5  8 2  2  8  7  3
37
4  2, 7 82
 3 3 2  2  8  10 3  2  10  7  2
27
5  2, 7 102
 9 9 2  2  10  3 9  2  3  7  6
67
6  2, 7 32
 10 10 2  2  3  7 10  2  7  7  9
97
7  2, 7 72
7 7 2  2  7  7 7  2  7  7  2
27
8  2, 7 72
 10 10 2  2  7  3 10  2  3  7  5
57
9  2, 7  9 9 2  2  3  10 9  2  10  7  9
Segurança de dados - RT 40
Segurança de dados - RT 41
PLD sobre curvas elípticas – PLD-CE (pg 165)
 No conj. finito de pontos de uma curva elíptica
E : y 2  x 3  ax  b em Z p
o PLD - Problema do Log Discreto é
dados dois pontos Q, P em E
calcular s tal que Q  s  P  P  P . . . P (grupo aditivo)
s vezes

Exemplo Seja a curva


E 1 : y 2  x 3  2x  4
sobre Z 11 . Por exemplo, calcular S tal que
9, 5  s  3, 2

Segurança de dados - RT 42
Neste caso, s  11.
 A segurança de um criptossistema baseado em Curvas
Elípticas – CSCE - é baseada na dificuldade de se resolver
este problema PLD. (ECC - Elliptic Curve Cryptography -
em inglês)
 Analogamente aos casos do
- Problema da Fatoração em Primos e
- do PLD mod p,
- não se conhece algoritmo de tempo polinomial para
resolver o PLD sobre Curvas Elípticas.
 Acredita-se que este problema seja mais difícil que
- o Problema da Fatoração em Primos e
- o PLD sobre ints. mod p. (ElGamal)
 O algoritmo mais rápido para o PLD-CE que se conhece
Segurança de dados - RT 43
possui tempo de execução O p  (D. M. Gordon and K.
1
log 2 p 12
S. McCurley 1993). Note: p  p  2
2  , i.e.,
da exponenc. do comprimento, em bits, de p
 Mas os algoritmos mais rápidos para os outros dois
co1 ln p 1/3 ln ln p 2/3
problemas possuem tempo Oe 
2 2 log 2 20000
 Por ex.:  4. 973 0 fp  2 p
3 2 ln 20000 3 2 lnln20000  2
ln p 1/3 ln ln p 2/3
(linha preta) e fp  e (linha verm.)

Segurança de dados - RT 44
10
7.5
5
2.5
5 7.5 10 12.5 15

p
ln p 1/3 ln ln p 2/3
p (preto), e
 Baseado nestas condições,
- um sistema RSA ou DSS c/ chave de 1. 024 bits
- oferece nível de segurança equivalente a
Segurança de dados - RT 45
- um CS-CE com chave de 160 bits.

Segurança de dados - RT 46
Criptossistema ElGamal sobre curva elíptica (pg
166)
 Um criptossistema análogo ao ElGamal sobre inteiros
mod p
 Exemplo: sobre a curva elíptica E 1 : y 2  x 3  2x  4
sobre Z 11
1. Chave secreta do Beto: s  11;
2. Chave pública de Beto (2 pontos da curva):
ChavePub  3, 2, 9, 5 tal que s3, 2  9, 5
3. Para criptografar um texto legível x  E 1 : Alice sorteia
um k : 0  k  16 (NONCE) e calcula
y  k3, 2, z  x  k9, 5;

Segurança de dados - RT 47
4. Para decriptografar, Beto calcula z  s  y
( x  k9, 5  sk3, 2  x  k9, 5  ks3, 2  x)
Dificuldades práticas
Há várias dificuldades práticas em criptossistema como o
descrito acima:
1. O número de legíveis x fica restrito a aproximadamente p
(no. de pontos na curva).
2. Cada ilegível y, z é constituído de 4 elementos de Z p .
3. O conj. de legíveis x é restrito aos pontos da curva
elíptica e não se conhece um algoritmo eficiente de
geração destes pontos.
Veremos a seguir uma solução para algumas destas

Segurança de dados - RT 48
dificuldades.

Segurança de dados - RT 49
Criptossistema Menezes-Vanstone - MV (pg 167)
 Neste sistema uma curva elíptica é usada para “mascarar”
os pontos
 de tal forma que tanto o legível como o ilegível podem ser
pares ordenados arbitrários (1993).
Seja E uma curva elíptica sobre Z p com um primo p  3, tal
que E contém um grupo cíclico H no qual o PLD seja
computacionalmente difícil.
Nestas condições:
1. O conjunto de legíveis é Z p  Z p (2 ints.)
2. O conjunto de ilegíveis é E  Z p  Z p (4 ints.)
3. A chave pública é um par de pontos Q, P de E

Segurança de dados - RT 50
4. A chave secreta é s tal que Q  sP
5. Para criptografar X  x 1 , x 2   Z p  Z p escolher k  Z p
(NONCE) e calcular Y  y 0 , y 1 , y 2  da seguinte forma
(NONCE)
a. y 0  kP  E
b. calcular c 1 , c 2   kQ
c. y 1  c 1 x 1 mod p
d. y 2  c 2 x 2 mod p
Para decriptografar Y  y 0 , y 1 , y 2 :
1. calcular s  y 0  s  kP  k  sP  kQ  c 1 , c 2 
2. y 1 c 1  1 mod p  x 1 (pois
y 1 c 1  1 mod p  c 1 x 1 c 1  1  x 1 )
Segurança de dados - RT 51
3. y 2 c 2  1 mod p  x 2  (pois
y 2 c 2  1 mod p  c 2 x 2 c 2  1  x 2 )

Exemplo (Menezes-Vanstone) Seja a curva


E 1 : y 2  x 3  2x  4 sobre Z 11 .
1. A chave pública é um par de pontos
Q  9, 5, P  3, 2 de E 1
2. A chave secreta é s  11 tal que Q  sP
3. Para criptografar X  x 1  9, x 2  1  E 1 escolher
k  6 (NONCE) e calcular Y  y 0 , y 1 , y 2  da seguinte
forma
a. y 0  kP  6  3, 2  9, 6
Segurança de dados - RT 52
b. calcular c 1 , c 2   kQ  6  9, 5  6, 10
c. y 1  c 1 x 1 mod p  6  9 mod 11  10
d. y 2  c 2 x 2 mod p  10  1 mod 11  10
4. Para decriptografar Y  y 0 , y 1 , y 2 :
a. calcular s  y 0  11  9, 6  10, 10
b. y 1 c 1  1 mod p  10  6 1 mod 11  9 (pois
6 1 mod 11  2)
c. y 2 c 2  1 mod p  10  10 1 mod 11  1(pois
10 1 mod 11  10).
—————– FIM Menezes-Vanstone

Segurança de dados - RT 53
—————–

Segurança de dados - RT 54
ElGamal: curvas elípticas sobre GF2 m  (pg. 170)
 Curvas elípticas podem ser definidas sobre o corpo
GF2 m  para um inteiro m  1
 (i.e., Corpo Finito de Galois - Galois Field, definições
mais adiante)

Segurança de dados - RT 55
Évariste Galois (1811-1832)
 Os 2 m elementos do conj. GF2 m  são representados pelas
sequências de m bits. adequado para comput.
 Os elementos a, b, c usados a seguir devem pertencer a

Segurança de dados - RT 56
GF2 m , sendo que deve-se ter c  0.
 Como GF2 m  possui característica 2, a equação que
define a curva elíptica é ligeiramente alterada:
y 2  cy  x 3  ax 2  b mod 2 m
a, b, c, x, y  GF2 m , c  0
 A curva elíptica (supersingular) (Wikipedia: elliptic curve over a field of
characteristic p  0 with unusually large endomorphism rings.) é constituída por
todos os pontos x, y, x, y  GF2 m  que satisfazem esta
equação.
 O conjunto união do ponto infinito e os pontos desta
curva elíptica formam um grupo algébrico.
 É um grupo finito onde a operação é a soma, a ser
definida.
Segurança de dados - RT 57
Soma em curva eliptica (supersingular) sobre GF2 m 
 Seja P  x 1 , y 1  na curva elíptica.
 Então P  x 1 , y 1  c.
 Seja Q  x 2 , y 2  também na curva elíptica, Q  P.
 Então P  Q  x 3 , y 3  é como segue:
y 1 y 2 2
 x 1 x 2   x 1  x 2 se P  Q
1. x 3  x 41 a 2
c2
se P  Q

Segurança de dados - RT 58
y 1 y 2
 x 1 x 2 x 1  x 3   y 1  c se P  Q
2. y 3  x 21 a
c x 1  x 3   y 1  c se P  Q

 Para evitar a divisão, em geral adota-se c  1.


 Com c  1, existem exatamente 3 classes isomorfas de
curvas elípticas supersingulares sobre GF2 m , com m
ímpar.
 Uma curva representativa de cada uma das 3 classes é:
E1 : y2  y  x3
E2 : y2  y  x3  x
E3 : y2  y  x3  x  1

Segurança de dados - RT 59
Algoritmo Menezes-Vanstone sobre curvas
elípticas em Corpo Finito de Galois
 Seja E uma das curvas E 1 ou E 2 ou E 3 sobre GF2 m  com
m ímpar.
 Vamos supor que os elementos de GF2 m  são
representados em uma base normal.
Chaves
 Alice escolhe um ponto P em E, preferencialmente um
gerador de E, e torna P público.
 Alice escolhe aleatoriamente um inteiro s e calcula
Q  sP. A sua chave pública é Q, P enquanto s é a sua
chave secreta.
Algoritmo de criptografia
Segurança de dados - RT 60
 Seja M 1 , M 2  um par ordenado de elementos de GF2 m 
a serem criptografados.
Beto efetua os passos seguintes:
1. Escolhe aleatoriamente um inteiro k (NONCE) e calcula
os pontos kP e kQ  x, y
2. Para k aleatório, x  0 ou y  0 ocorre com baixíssima
probabilidade. Podemos supor então que x  0 e y  0,
Beto envia para Alice o ponto kP, e os elementos M 1 x e
M 2 y de GF2 m .

Beto  kP, M 1 x, M 2 y  Alice


Algoritmo de decriptografia
Ao receber kP, M 1 x e M 2 y, Alice efetua os seguintes passos:
Segurança de dados - RT 61
1. Multiplica a sua chave secreta s por kP obtendo x, y.
2. Recupera M 1 , M 2 dividindo M 1 x por x e M 2 y por y.

Segurança de dados - RT 62
Corpo finito de Galois (pg 267 do livro-texto)
Inicialmente vamos definir alguns conceitos fundamentais.

Definição. Para um inteiro p primo, seja Z p x o conjunto dos


polinômios
x m  f m1 x m1 . . . f 1 x  f 0
com coeficientes inteiros f j  Z p , com a soma e a multiplicação
usuais sobre polinômios. Nestas condições, para
fx, gx  Z p x
1. grauf é o maior expoente em termos de f
2. fx|gx (lê-se fx divide gx) se
qx : gx  qxfx
Segurança de dados - RT 63
3. gx  hx mod fx se fx|gx  hx

Por exemplo, em Z 2 x tem-se:


1. o polinômio fx  x 3  x  1 possui grau 3.
2. x 3  x  1 |x 5  x 2  x  1 , pois
fx gx
x 2  1 3
x  x  1 
qx fx
x5  x2  x  1 .
gx
3. x 8  x 4  x  x 6  x  1 mod x 3  x  1 pois
gx hx fx
3.1 gx  hx  x 8  x 4  x  x  x  1  6

Segurança de dados - RT 64
x 8  x 6  x 4  1
3.2 x 5  x 2  x  1 x 3  x  1 
qx fx
x 8  x 6  x 4  1
gxhx

Definição. Para fx, gx  Z p x com grauf  m:


1. se gx  qxfx  rx com graur  m, diz-se que
g é congruente a r mod f. qx é chamado quociente
e rx é o resto.
2. Z p x/fx é o conjunto dos polinômios em Z p x com
grau  m  1.
É chamado anel mod fx, e existem p m destes polinômios.
Segurança de dados - RT 65
A soma  e a multiplicação  são como em Z p só que
com mod fx, i.e.
2.1 gx  hx  gx  hx mod p
2.2 gx  hx  gxhx mod fx mod p.

Por exemplo, em Z 2 x,


1. gx  x 7  x 4  x 3  x  1 
x 3  x  1 x 4  x 2   x 2  x  1 .
qx fx rx
2. x 5  x 3  x  1  x  x 2  1
5

gx hx
2x 5  x 3  x 2  x  2,

Segurança de dados - RT 66
2.1 2x 5  x 3  x 2  x  2 mod 2 
gh
x 3  x 2  x.
2.2 Logo, x 5  x 3  x  1  x 5  x 2  1 
x 3  x 2  x.
3. x 5  x 2  x  1 x 3  x  1 
gx hx
x 8  x 6  2x 5  x  2x 3  2x 2  2x  1,
4

3.1 x 8  x 6  2x 5  x 4  2x 3  2x 2  2x  1
g.h
mod x 8  x 3  x 2  x  1 
fx

x 6  2x 5  x 4  x 3  x 2  x,

Segurança de dados - RT 67
3.2 x 6  2x 5  x 4  x 3  x 2  x mod 2 
gh mod f
x 6  x 4  x 3  x 2  x.
3.3 Logo, x 5  x 2  x  1  x 3  x  1 
x 6  x 4  x 3  x 2  x.

Definição. fx  Z p x é irredutível (ou primo) se não existem


polinômios f 1 , f 2  em Z p x tais que
grauf 1   0, grauf 2   0 e fx  f 1 xf 2 x.
Por exemplo, em Z 2 x o polinômio fx  x 2  x  1 é
irredutível.

Segurança de dados - RT 68
 Z p x/fx é um corpo (algébrico) se e só se fx é
irredutível.
 O inverso de qualquer elemento de Z p x/fx, exceto o
zero, existe e é calculável pelo Algoritmo de Euclides
estendido para polinômios.
 Em criptografia o caso particular do corpo Z 2 x/fx é
muito importante, e é chamado Corpo Finito de Galois.
 Vamos denotá-lo por GF2 m  (de Galois Field) onde
m  grauf. Diz-se que a característica de GF2 m  é 2.
Os elementos não nulos de GF2 m  com a multiplicação
formam um grupo cíclico chamado grupo multiplicativo
de GF2 m , de ordem m  1. Por exemplo, em GF2 6 :
Segurança de dados - RT 69
polinômio gx  GF2 6  0x 5 1x 4 0x 3 1x 2 0x 1
representação binária 0 1 0 1 0 1

 Pode-se provar que corpos finitos GFp m  com p m


elementos, p primo e m  1, são isomorfos entre si.
 Notamos que a soma de dois polinômios de GF2 m  é
simplesmente o ou-exclusivo (XOR) dos coeficientes dos
polinômios. Por exemplo:
gx  0x 5 1x 4 0x 3 1x 2 0x 1
hx  1x 5 1x 4 1x 3 1x 2 1x 0
g  h  1x 5 0x 4 1x 3 0x 2 1x 1

Propriedade. Para gx, hx  GF2 m ,


g  h 2  g 2  h 2 
Segurança de dados - RT 70
Exemplo 1. Em GF2 2 , fx  x 2  x  1 é o único polinômio
irredutível. Em Z 2 a tabela de multiplicação e soma são:
mult 0 1 soma 0 1
0 0 0 0 0 1
1 0 1 1 1 0

 Os elementos de GF2 2  são 0, 1, x, x  1. O produto


x 2 modx 2  x  1 mod 2  x  1 mod 2  x  1
 A tabela completa de multiplicação em GF2 2  é
calculada a seguir:

Segurança de dados - RT 71
0 0 0 0 0
1 0 1 x x1
0 1 x x1 
x 0 x x2 xx  1
x1 0 x  1 xx  1 x  1 2

0 0 0 0
0 1 x x1
modx 2  x  1 
0 x x2 xx  1
0 x  1 xx  1 x  1 2

0 0 0 0
0 1 x x1
0 x x  1 1
0 x1 1 x

Segurança de dados - RT 72
0 0 0 0
0 1 x x1
mod 2 
0 x x  1 1
0 x1 1 x

0 0 0 0
0 1 x x1
0 x x1 1
0 x1 1 x

 A tabela de multiplicação é então:

Segurança de dados - RT 73
mult  0 1 x x1
0 0 0 0 0
1 0 1 x x1
x 0 x x1 1
x1 0 x1 1 x

 A tabela completa da soma em GF2 2  é calculada a


seguir:
0 0 0 0 0 1 x x1
1 1 1 1 0 1 x x1
 
x x x x 0 1 x x1
x1 x1 x1 x1 0 1 x x1

Segurança de dados - RT 74
0 1 x x1
1 2 x1 2x
x x1 2x 2x  1
x  1 2  x 2x  1 2x  2

0 1 x x1
1 2 x1 2x
mod 2 
x x1 2x 2x  1
x  1 2  x 2x  1 2x  2

0 1 x x1
1 0 x1 x
x x1 0 1
x1 x 1 0

 A tabela de soma é então:

Segurança de dados - RT 75
soma  0 1 x x1
0 0 1 x x1
1 1 0 x1 x
x x x1 0 1
x1 x1 x 1 0

Exemplo 2 de GF2 4  : fx  x 4  x  1 é irredutível. Vamos


representar o polinômio b 3 x 3  b 2 x 2  b 1 x  b 0 em
GF2 m   GF2 4  (pois m  4) pelo vetor b 3 b 2 b 1 b 0 .
1. 1011  1001  0010.
2. 1101  1001  1111, pois
x 3  x 2  1x 3  1  x 6  x 5  x 2  1  x 3  x 2  x  1 mod
3. GF2 m   0 forma um grupo multiplicativo de ordem
15; g  0010 é um gerador deste grupo:
Segurança de dados - RT 76
g 1  0010, g 2  0100, g 3  1000, g 4  0011,
g 5  0110, g 6  1100, g 7  1011, g 8  0101,
g 9  1010, g 10  0111, g 11  1110, g 12  1111,
g 13  1101, g 14  1001, g 15  0001
 O corpo GF2 m  pode ser visto como espaço vetorial de
dimensão m sobre Z 2 .
 Existem muitas bases para este espaço vetorial, e há uma
representação dos elementos do corpo para cada base
adotada.
 Algumas bases podem propiciar implementações das
operações de forma mais eficiente do que outras.
 A dificuldade computacional do PLD sobre GF2 m  não
depende da base adotada.
 Uma base normal para GF2 m  sobre Z 2 é uma base da
Segurança de dados - RT 77
forma:
2 m1
,  2 ,  2 , . . .  2 
onde   GF2 m . Notamos que  2m  .
 Seja
m1
   j0 b j   GF2   b 0   b 1  . . . b m1  .
2j m 20 21 2 m1

 A representação vetorial de  é b 0 , b 1 , . . . b m1 .


 Como elevação ao quadrado é linear em GF2 m , tem-se

Segurança de dados - RT 78
2 
m1
 bj2 j1

j0
21 22 23 2 m1 2 m11m
b0  b1  b2 . . . b m2   b m1  
2 m11 21 22 23 2 m1
b 1   b0  b1  b2 . . . b m11  
 m1
m

j0

(onde aplica-se mod m aos índices) ou seja, elevação ao


quadrado de um elemento é um simples deslocamento circular
de uma posição para a *direita*.
Segurança de dados - RT 79
Exemplo Vamos de novo considerar GF2 4  e
fx  x 4  x  1, com m  2 4  16
 Existem duas bases normais para
GF2 m   GF2 16 ,   x 3
3 6 12 9 2 j0
1. A  x , x , x , x  pois   1  x3 e
3 2 j1 6 3 2 j2
j  1 : x   x , j  2 : x   x 12 , j  3 :
3 2 j3
x   x 3  8  x 24 modm1  x 24 mod 15  x 9
2. B  x 7 , x 14 , x 13 , x 11 
 Cada uma destas bases possui vantagens relativas.
 Vamos considerar a base A.
 Suponha b 0 , b 1 , b 2 , b 3   GF2 m16  e
c 0 , c 1 , c 2 , c 3   GF2 m16  representados na base A.

Segurança de dados - RT 80
 Vamos ver como multiplicar estes dois elementos:
1. Seja b 0 , b 1 , b 2 , b 3 . c 0 , c 1 , c 2 , c 3   d 0 , d 1 , d 2 , d 3 
2. b 0 x 3  b 1 x 6  b 2 x 12  b 3 x 9 c 0 x 3  c 1 x 6  c 2 x 12  c 3 x 9  
b 0 c 0 x 6  b 0 c 1 x 9  b 0 c 2 x 15 mod 15  b 0 c 3 x 12 
b 1 c 0 x 9  b 1 c 1 x 12  b 1 c 2 x 183 mod 15  b 1 c 3 x 15 mod 15 
b 2 c 0 x 15 mod 15  b 2 c 1 x 183 mod 15  b 2 c 2 x 249 mod 15  b 2 c 3 x 216 mod 15
b 3 c 0 x 12  b 3 c 1 x 15 mod 15  b 3 c 2 x 216 mod 15  b 3 c 3 x 183 mod 15
3. Como m  1  15,
x 15  x 15 mod 15  x 0  1111 2  x 3  x 6  x 12  x 9 ,
x 18  x 18 mod 15  x 3 , x 21  x 21 mod 15  x 6 e
Segurança de dados - RT 81
x 24  x 24 mod 15  x 9
d0  b0c2  b1c2x3  b1c3  b2c0  b2c1x3  b3c1  b3c3x3
d1  b0c0x6  b0c2  b1c3  b2c0  b2c3x6  b3c1  b3c2x6
d 2  b 0 c 2  b 0 c 3 x 12  b 1 c 1 x 12  b 1 c 3  b 2 c 0  b 3 c 0 x 12  b 3 c 1
d3  b0c1x9  b0c2  b1c0 x9  b1c3  b2c0  b2c2x9  b3c1
4. Note que cada d j possui exatamente 7 termos;
5. Note que os índices dos termos de d 0 acrescidos de
1 mod 4 são iguais aos índices dos termos de d 1 ; E.g.,
b 0 c 2  b 01 mod 4 c 21 mod 4   b 1 c 3
6. Note que de forma análoga os índices de d 0 acrescidos de
2 mod 4 são os índices de d 2 ;

Segurança de dados - RT 82
7. E os índices de d 0 acrescidos de 3 mod 4 são os índices de
d3.
Exercícios
Considere GF2 3  e fx  x 3  x  1.
1. Prove que fx é irredutível.
2. Prove que os 2 3 polinômios de GF2 3  são:
0, 1, x, x  1, x 2 , x 2  1, x 2  x, x 2  x  1.
3. Prove que x 2  1x 2  x  1 mod fx  x 2  x.
4. Construa a tabela de multiplicação de todos os elementos
de GF2 3  representando cada polinômio b 2 x 2  b 1 x  b 0
por b 2 b 1 b 0 .
5. Prove que os 7 polinômios não nulos de GF2 3  são

Segurança de dados - RT 83
gerados por x.

Segurança de dados - RT 84

Você também pode gostar