Escolar Documentos
Profissional Documentos
Cultura Documentos
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 GF2 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 p1 ,
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 zy 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 p1 ; (mdck, p 1 1,
para garantir existência de k 1 modp 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 Syk 1 modp 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 hx no lugar de x,
- onde h é uma função espalhamento (‘hashing’,
Capítulo 7)
- como, por exemplo, uma função t.q. |hx| 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 modp 1.
Multiplicando-se os 2 lados desta por k tem-se:
Segurança de dados - RT 9
kz x Sy modp 1
x Sy kz modp 1
g x g Sykz modp1 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 modp 1 e
z 2 k 1 x 2 Sy modp 1.
- Então z 1 z 2 k x 1 x 2 modp 1.
- Se z 1 z 2 0, então
k z 1 z 2 1 x 1 x 2 modp 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 p1
e calcula y g mod p,
- mas terá dificuldade em calcular
z x Syk 1 modp 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 modp 1 (supondo que
x 1 modp 1 exista).
2. A seguir calcula z zu modp 1 e y tal que
y 1 yu mod p 1 e y 2 y mod p (das duas ,
y modpp 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 Syu y zu
g Syu g kzu
g Sykzu
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 p1 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 q1 , 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 hx no lugar de x,
* onde h é uma função espalhamento (‘hashing’)
Perg.: qual a vantagem?
* Por exemplo, a função SHA, tal que |hx| 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 SCk 1 mod q (ou
D hx SCk 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 hxD 1 mod q)
3. Se g e 1 T e 2 mod p mod q C, a assinatura é correta.
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 pq
(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 xSC D mod p mod q
1 mod q
g Dk mod q D mod p mod q
(pois D x SCk 1 mod q)
g k mod q mod p mod q
C
(pois C g k mod p mod q)
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 tx P x R y P onde
y Q y P
x Q x P se P Q
t 3x 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
-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:
p12
2 3 2 p1/4 2
(Note: p 11, y z z z 4 2
p12 p1 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
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,
2x 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 tx P x R y P y R
2 3, 2 10 10 2 3 3 6 10 3 6 2 1
12
3 3, 2 63
7 7 2 3 6 7 7 3 7 2 3
32
4 3, 2 73
3 3 2 3 7 10 3 3 10 2 10
102
5 3, 2 103
9 9 2 3 10 2 9 3 2 2 7
72
6 3, 2 23
6 6 2 3 2 9 6 3 9 2 6
62
7 3, 2 93
8 8 2 3 9 8 8 3 8 2 2
22
8 3, 2 83
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 tx P x R y P y R
92
9 3, 2 03
5 5 2 3 0 0 5 3 0 2 2
22
10 3, 2 03
0 0 2 3 0 8 0 3 8 2 9
92
11 3, 2 83
8 8 2 3 8 9 8 3 9 2 5
52
12 3, 2 93
6 6 2 3 9 2 6 3 2 2 4
42
13 3, 2 23
9 9 2 3 2 10 9 3 10 2 1
12
14 3, 2 103
3 3 2 3 10 7 3 3 7 2 8
82
15 3, 2 73
7 7 2 3 7 6 7 3 6 2 10
102
16 3, 2 63
10 10 2 3 6 3 10 3 3 2 9
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
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 tx P x R y P y R
2 2, 7 8 5 2
27
3 2, 7 52
2 2 2 2 5 8 2 2 8 7 3
37
4 2, 7 82
3 3 2 2 8 10 3 2 10 7 2
27
5 2, 7 102
9 9 2 2 10 3 9 2 3 7 6
67
6 2, 7 32
10 10 2 2 3 7 10 2 7 7 9
97
7 2, 7 72
7 7 2 2 7 7 7 2 7 7 2
27
8 2, 7 72
10 10 2 2 7 3 10 2 3 7 5
57
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
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
co1 ln p 1/3 ln ln p 2/3
problemas possuem tempo Oe
2 2 log 2 20000
Por ex.: 4. 973 0 fp 2 p
3 2 ln 20000 3 2 lnln20000 2
ln p 1/3 ln ln p 2/3
(linha preta) e fp 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 s3, 2 9, 5
3. Para criptografar um texto legível x E 1 : Alice sorteia
um k : 0 k 16 (NONCE) e calcula
y k3, 2, z x k9, 5;
Segurança de dados - RT 47
4. Para decriptografar, Beto calcula z s y
( x k9, 5 sk3, 2 x k9, 5 ks3, 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 )
Segurança de dados - RT 53
—————–
Segurança de dados - RT 54
ElGamal: curvas elípticas sobre GF2 m (pg. 170)
Curvas elípticas podem ser definidas sobre o corpo
GF2 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. GF2 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
GF2 m , sendo que deve-se ter c 0.
Como GF2 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 GF2 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 GF2 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 GF2 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
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 GF2 m com
m ímpar.
Vamos supor que os elementos de GF2 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 GF2 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 GF2 m .
Segurança de dados - RT 62
Corpo finito de Galois (pg 267 do livro-texto)
Inicialmente vamos definir alguns conceitos fundamentais.
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
qx fx
x 8 x 6 x 4 1
gxhx
Segurança de dados - RT 66
2.1 2x 5 x 3 x 2 x 2 mod 2
gh
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
gx hx
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
fx
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.
Segurança de dados - RT 68
Z p x/fx é um corpo (algébrico) se e só se fx é
irredutível.
O inverso de qualquer elemento de Z p x/fx, 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/fx é
muito importante, e é chamado Corpo Finito de Galois.
Vamos denotá-lo por GF2 m (de Galois Field) onde
m grauf. Diz-se que a característica de GF2 m é 2.
Os elementos não nulos de GF2 m com a multiplicação
formam um grupo cíclico chamado grupo multiplicativo
de GF2 m , de ordem m 1. Por exemplo, em GF2 6 :
Segurança de dados - RT 69
polinômio gx GF2 6 0x 5 1x 4 0x 3 1x 2 0x 1
representação binária 0 1 0 1 0 1
Segurança de dados - RT 71
0 0 0 0 0
1 0 1 x x1
0 1 x x1
x 0 x x2 xx 1
x1 0 x 1 xx 1 x 1 2
0 0 0 0
0 1 x x1
modx 2 x 1
0 x x2 xx 1
0 x 1 xx 1 x 1 2
0 0 0 0
0 1 x x1
0 x x 1 1
0 x1 1 x
Segurança de dados - RT 72
0 0 0 0
0 1 x x1
mod 2
0 x x 1 1
0 x1 1 x
0 0 0 0
0 1 x x1
0 x x1 1
0 x1 1 x
Segurança de dados - RT 73
mult 0 1 x x1
0 0 0 0 0
1 0 1 x x1
x 0 x x1 1
x1 0 x1 1 x
Segurança de dados - RT 74
0 1 x x1
1 2 x1 2x
x x1 2x 2x 1
x 1 2 x 2x 1 2x 2
0 1 x x1
1 2 x1 2x
mod 2
x x1 2x 2x 1
x 1 2 x 2x 1 2x 2
0 1 x x1
1 0 x1 x
x x1 0 1
x1 x 1 0
Segurança de dados - RT 75
soma 0 1 x x1
0 0 1 x x1
1 1 0 x1 x
x x x1 0 1
x1 x1 x 1 0
Segurança de dados - RT 78
2
m1
bj2 j1
j0
21 22 23 2 m1 2 m11m
b0 b1 b2 . . . b m2 b m1
2 m11 21 22 23 2 m1
b 1 b0 b1 b2 . . . b m11
m1
m
j0
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 183 mod 15 b 1 c 3 x 15 mod 15
b 2 c 0 x 15 mod 15 b 2 c 1 x 183 mod 15 b 2 c 2 x 249 mod 15 b 2 c 3 x 216 mod 15
b 3 c 0 x 12 b 3 c 1 x 15 mod 15 b 3 c 2 x 216 mod 15 b 3 c 3 x 183 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 01 mod 4 c 21 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 GF2 3 e fx x 3 x 1.
1. Prove que fx é irredutível.
2. Prove que os 2 3 polinômios de GF2 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 1x 2 x 1 mod fx x 2 x.
4. Construa a tabela de multiplicação de todos os elementos
de GF2 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 GF2 3 são
Segurança de dados - RT 83
gerados por x.
Segurança de dados - RT 84