Documente Academic
Documente Profesional
Documente Cultură
Rio de Janeiro
2013
Rio de Janeiro
2013
2
Dedicatria
Resumo
Agradecimentos
Sumrio
INTRODUO.............................................................................................................................9
CAPTULO 1................................................................................................................................11
1.1 O CDIGO DE CSAR........................................................................................................11
1.2 A CIFRA INDECIFRVEL....................................................................................................15
1.3 MECANIZAO DO SIGILO..............................................................................................23
CAPTULO 2................................................................................................................................26
2.1 PRINCPIO DE INDUO E CONGRUNCIA .......................................................................26
2.2 NMEROS DE FERMAT E DE MERSENNE.........................................................................30
CAPTULO 3................................................................................................................................34
3.1 ALGORITMO PARA O CLCULO DE POTNCIAS...............................................................34
3.2 O PROBLEMA DO LOGARITMO DISCRETO .......................................................................40
3.3 PROTOCOLO DE DIFFIE-HELLMAN(PDH) CHAVE TROCADA...........................................45
3.4 O SISTEMA PBLICO DE CRIPTOGRAFIA ELGAMAL..........................................................48
CAPTULO 4................................................................................................................................50
4.1 PRELIMINARES.................................................................................................................50
4.1.2 ALGORITMO DE SOMA DE PONTOS NA CURVA ELIPTICA.....................................57
4.1.3 CURVAS ELIPTICAS SOBRE ..............................................................................60
4.2 O PROBLEMA DO LOGARITMO DISCRETO PARA CURVAS ELIPTICAS...............................62
4.2.1 ALGORITMO PARA CALCULAR MLTIPLOS DE UM PONTO ................................64
4.3 CRIPTOGRAFIA VIA CURVAS ELIPTICAS.............................................................................67
4.3.1 CHAVE TROCADA DIFFIE-HELLMAN SOBRE CURVAS ELIPTICAS.................. .........67
4.3.2 SISTEMA DE CRIPTOGRAFIA COM CHAVE PBLICA EL GAMAL.............................72
4.3.3 VARIANTE DE MENEZES E VANSTONE PARA ELGAMAL SOBRE CURVAS...............76
CAPTULO 5.................................................................................................................................83
5.1. ATIVIDADES ....................................................................................................................83
CONCLUSO...............................................................................................................................86
BIBLIOGRAFIA............................................................................................................................87
INTRODUO
10
CAPTULO 1
k l
m n o p q r
u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
11
g h i
k l
m n o
p q r
u v w x y z
V E J I C A N B L M R T D O W F K Q G Y Z H P S U X
Esse um exemplo de uma permutao das letras, obtendo uma nova cifra.
Sabemos que so muitas cifras possveis, mas podemos calcular o nmero exato. Se
aceitarmos que cada letra possa ser substituda por outra ou por ela mesma, mas sem
repetio de letras, ou seja, duas letras distintas no podem ser substitudas pela mesma
letra, ento podemos usar um raciocnio bem conhecido:
Para substituirmos a letra a existem 26 possibilidades e, para cada uma dessas,
existem 25 possibilidades para substituirmos a letra b (uma j foi usada pela letra a) e,
para cada modo de substituir a e b, h 24 substituies possveis para a letra c (j foram
usadas duas possibilidades, uma para a letra a e outra para a letra b), e assim por diante
at que para a letra z restar uma nica possibilidade. Pelo princpio multiplicativo,
chegamos ao nmero
26 . 25 . 24 2 .1 = 26 ! ( )
Com o auxlio de um computador encontramos
26! = 403.291.461.126.605.635.584 10
Observe que 26! um nmero gigantesco de cifras, mas neste clculo admitimos
que uma letra seja substituda por ela mesma, o que obviamente no uma boa ideia,
principalmente se isso ocorrer com vrias letras.
12
1
1
1
1
+ + + (1)
2! 3! 4! 5!
1
26!
= 148.362.637.348.470.135.821.287.825 148 10
Mesmo que algum conseguisse verificar uma cifra por segundo, seriam necessrios a
seguinte quantidade de anos para se verificar manualmente todas as cifras possveis
= 4.704.548.368.482.690.760 4 10
A simplicidade e a fora da cifra de substituio fizeram com que ela dominasse
a arte da escrita secreta durante o primeiro milnio. Os estudiosos achavam que as cifras
de substituio eram indecifrveis.
Os criptoanalistas rabes descobriram um mtodo para quebrar a cifra de
substituio monoalfabtica. Eles perceberam que algumas letras aparecem com mais
frequncia que outras. As letras a e i so as mais comuns no idioma rabe, enquanto
que a letra j aparece com uma frequncia dez vezes menor.
Embora no se saiba quem foi o primeiro a perceber que a frequncia das letras
podia ajudar a quebra de cdigos, a descrio mais antiga desta tcnica vem de um
cientista do sculo IX, Abu Yusef Yaqub ibn Is-haq ibn as-Sabbah ibn Omran ibn
Ismail al-Kindi, conhecido como o filsofo dos rabes.
13
Letra
Letra
Letra
14,64
1,3
5,05
4,34
1,04
1,28
10,73
4,64
3,88
6,18
2,52
1,70
4,10
0,40
1,20
0,21
12,57
2,78
6,53
0,47
1,02
4,75
7,81
muito maior que os usuais 0,47%. J o A aparece uma s vez, o que da uma
porcentagem de cerca de 7%; portanto abaixo dos 14% usuais.
14
diplomata
Francs
Blaise de Vigenre (1523-1596), se
destacou nessa tarefa, criando
uma cifra poderosa conhecida
como Le Chiffre Indchiffrable
(a cifra indecifrvel).
A ideia de Vigenre foi usar no apenas um, mas 26 alfabetos cifrados distintos.
Para isso criou uma tabela com o alfabeto real e mais 26 alfabetos cifrados, cada um
deslocando uma letra em relao ao alfabeto anterior.
15
Com o auxlio dessa tabela, cada letra pode ser cifrada usando qualquer uma das
26 linhas. Por exemplo, a letra G cifrada pela linha 16 se transforma na letra W e a letra
P cifrada pela linha 23 se transforma na letra M, conforme pode ser observado na tabela
a seguir.
evitando que uma determinada letra seja sempre substituda por uma mesma letra.
Para que o destinatrio possa decifrar a mensagem necessrio que ele saiba que
linha foi utilizada em cada posio da mensagem, exigindo um sistema previamente
combinado para a mudana entre as linhas. Para isso utilizava-se uma palavra chave,
que precisava ser compartilhada previamente entre o remetente e o destinatrio da
mensagem, o que muitas vezes era um problema, principalmente quando essas pessoas
no podiam se encontrar para combinar a chave.
16
Cada letra da palavra-chave identificava uma linha da tabela e cada linha era
identificada pela primeira letra sua direita:
17
18
bvio que qualquer pessoa que conhea a palavra-chave pode decifrar uma
mensagem cifrada pelo mtodo de Vigenre. Mas e sem essa chave? Voc conseguiria
decifrar as mensagens abaixo sem a palavra-chave?
TPICQFZCTUFSMQPUD
QOPVNVSERYNQFV
PJSWLZFVZJCUZXNYOPVCOI
RSOCAIPCZHSFUUNIB
UODTYXYHLGTRLPABSIXDU
LDVKOEOLEIAACBEONIEV
BPONPUFVZJCUZ
Que no preciso
No tem soluo
Podemos equacionar a criptografia e a descriptografia da cifra de Vigenre.
Como so 26 letras, podemos pensar em congruncia mdulo 26, ou seja, nos restos das
divises por 26. Assim teremos
=1
=2
=3
. ..
= 25
=0
Observe que o valor de cada letra na tabela de Vigenre cngruo soma dos
valores da linha e da coluna qual ela pertence, mdulo 26.
20
Se quisermos saber que letra se encontra na linha 17 e coluna 22, basta calcular
17 + 22 13 ( 26).
A letra que est nesta posio a letra representada pelo nmero 13, ou seja, a
letra N.
Portanto, para criptografar podemos somar o nmero que representa a letra que
queremos cifrar (coluna) com a letra da palavra-chave que ser utilizada (linha) e tomar
o resto da diviso dessa soma por 26. O valor desse resto a letra criptografada.
21
Z
25
E
4
W
22
S
18
K
10
T
19
Z
25
R
17
W
22
A
0
K
10
D
3
Z
25
O
14
25 + 4 3 ( 26)
10 + 19 3 ( 26)
22 + 0 22 ( 26)
25 + 14 13 ( 26)
3 25 22 ( 26)
3 10 7 ( 26)
22 22 0 ( 26)
13 25 12 ( 26)
22
de tentar decifrar as mensagens criptografadas por elas e passaram essa tarefa para os
Poloneses.
Somente em 1939 os segredos da Enigma foram completamente desvendados
pelos matemticos Polacos Marian Rejewski, Jerzy Rycki e Henryk Zygalski
apresentados abaixo:
Marian Rejewski
Com suas ideias, Turing finalizou, no incio de 1940, o projeto de uma mquina
capaz de quebrar as cifras da Enigma. Tal mquina tinha dois metros de altura, por dois
de comprimento e um metro de largura e recebeu o nome de Bomba de Turing.
24
25
CAPTULO 2
Simetria: ( )
Reflexiva: ( ) ( )
Transitiva: ( ) ( ) ( )
26
Soma:
+ = +
Produto: =
(Existncia do Inverso): , ; =
(Associativa): ( ) = ( ) , ,
Proposio:[ ] [ (, ) = 1 ]
Prova:
() invertvel ; = 1 1 ( ) 1 =
() + = 1. Como (, ) divide e , segue que (, ) = 1.
27
() mdc (a,m) = 1 , + = 1 1 = + = +
1 = em invertvel.
Denotaremos por
( ) = Conjunto dos elementos invertveis de
Um nmero primo um nmero inteiro maior do que 1, que s admite
como divisores positivos ele prprio e 1. Os demais inteiros maiores que 1
so chamados de nmeros compostos. Temos que ( ) = 1, 5, 7, 11 , isto ,
so os elementos de que so primos com 12.
Temos que ( , ) formado pelos elementos invertveis de formam um
grupo que ser utilizado no sistema RSA, onde o produto de dois nmeros primos
grandes.
O prximo resultado, conhecido por Pequeno Teorema de Fermat um
importante e bonito resultado da teoria dos nmeros, devido ao Jurista e Magistrado por
profisso, Pierre de Fermat (1601-1665) que dedicava matemtica seus momentos de
lazer. Atuou em diversas reas da Matemtica, como Clculo Infinitesimal, Teoria dos
Nmeros e Probabilidade.
Pequeno Teorema de Fermat (P.T.F):
Se primo e inteiro, ento ( )
Prova: Para provarmos o pequeno teorema de Fermat, vamos usar o fato de que se
(
)( (
))
!
primo, ento = !( )! =
com 1 1 so divisveis por
!
Vale para = 1 1 1 = 0 = 0.
De fato:
( + 1) = +
1+
1 + + 1 1
+1
= + + 1
28
1 = , em linguagem de congruncia,
do P.T.F, =
divide (
1), isto ,
1 ( ). De fato,
( )
1 ( ).
1 ( ), visto
que () = 1. Uma prova deste resultado pode ser encontrada no livro: Introduo
a Teoria dos Nmeros de Jos Plnio de Oliveira Santos na pgina 43.
29
30
+1=2
+ 1 no
(2) 641 = 2 . 5 + 1.
Substituindo em (1)
641 = 2 + 5 641 = 2 +
641 =
641 . 2
Assim, vemos que 2
2
=2 +
640
2
+ 640
2
= 2
+ 640
+ 640 0 ( 641) 2
2
2
A saber = 2
640
2
+ (1) 0 ( 641)
+ 1 0 ( 641)
+ 1 = . 641 para algum .
+ 1 = 641 . 6700417.
31
+ 1 = 274177 67280421310721
nmeros de Fermat
Fatorado em
1980
1990
1995
1988
+1=
Por
Brent e Pollard
Lenstra e Manasse
Brent
Brent e Morain
Em 1640, Mersenne afirmou que primo para = 13, 17, 19, 31, 67, 127 e
257; estava ele enganado em relao a 67 e 257; tambm no inclura 61, 89 e 107
(entre os nmeros inferiores a 257 ) que tambm fornecem nmeros de Mersenne
primos. Sua afirmao era extraordinria, em face da grandeza dos nmeros envolvidos.
Em relao aos nmeros de Mersenne, o problema que se apresenta
naturalmente, de saber se so primos ou compostos e, neste ultimo caso, determinar
seus fatores primos.
O seguinte resultado clssico sobre os fatores primos foi enunciado por Euler em
1750 e demonstrado por Lagrange em 1775 e ainda por Lucas em 1878: Se um
nmero primo e 3 ( 4) ento 2 + 1 divide se e somente se 2 + 1
primo; neste caso, se q > 3, ento composto.
Assim se = 11, 23, 83, 131, 179, 191, 239 ou 251 ento tem por fator
2 + 1 dado por 23, 47, 167, 263, 359, 383, 479 ou 503 respectivamente.
Exatamente como acontece com os nmeros de Fermat, ainda existem vrios
problemas em aberto sobre os nmeros de Mersenne:
33
CAPTULO 3
Neste captulo, veremos como possvel enviar mensagens por um meio
inseguro sem o contato prvio entre os participantes. Este avano da criptografia
baseado no princpio da troca de uma caixa com cadeados.
Suponha que Joozinho queira enviar uma caixa para Serginho por um meio
inseguro, de modo que apenas Serginho possa abri-la.
. ,
34
Quociente
Resto
83 2
41
=1
41 2
20
=1
20 2
10
=0
10 2
=0
52
=1
22
=0
12
=1
=7
= 7 . 7 . 7 . 7
Note que relativamente mais fcil calcular a sequncia de valores abaixo, visto
que, cada nmero o quadrado do anterior, conforme observado a seguir
7 , 7
= 7 ,
=7 ,
= 7 ,
= 7 ,
35
Alm disso, visto que s precisamos destes valores mdulo 2563, nunca
precisaremos armazenar mais do que 4 dgitos. A tabela abaixo lista as potncias de 7
mdulo 2563 at 7 .
0
7
7 ( 2563)
1
49
2
2401
3
614
4
235
5
6
1402 2346
7
955
8
2160
= 7 . 7 . 7 . 7
49 . 2346 . 955 . 2160 ( 2563 )
1772 ( 2563)
Note que o clculo do produto 49 . 2346 . 955 . 2160 , pode ser reduzido
mdulo 2563 a cada multiplicao, no necessitando lidar com nmeros muito grandes.
Exemplo 3.2: Determine 0 999 tal que 3
( 1000) .
Como primeiro passo, escrevemos 218 como soma de potncias de 2, dados por
218 = 2 + 2 + 2 + 2 + 2
Ento 3
torna-se
=3
= 3 . 3 . 3 . 3 . 3
= 3 , 3
= 3 ,
=3 ,
= 3 ,
=3
visto que, cada nmero da sequencia o quadrado do anterior. Alm disso, visto que s
precisamos destes valores mdulo 1000, nunca precisaremos armazenar mais do que 3
dgitos.
3 ( 1000)
Portanto: 3
0
3
1
9
= 3 . 3 . 3 . 3 . 3
2
81
3
561
4
721
5
841
6
281
7
961
489 ( 1000)
36
( )
3 ( 1000)
0
3
1
9
2
81
3
561
4
721
5
841
6
281
7
961
= () . ( ) .
( ) . ( ) . ( ) . ( )
( ) ( )
37
1 ( ) e tomando
1 ( 15.485.863)
1 ( )
( )
( )
( )
7814
1284 ( 17.449)
38
=2
4.136.685 ( 15.485.207)
( ) . (1) . ( )
Mas < , assim o fato de ser a menor potncia positiva inteira de que
congruente a 1 implica que = 0. Portanto, = , assim divide . Em particular
divide ( 1), pois pelo Pequeno Teorema de Fermat,
1 ( ).
39
= { , , , ,
, isto ,
= 1 } = < >
. Eles so os elementos de
tendo ordem 1.
40
Exemplo 3.7: 2 uma raiz primitiva de . Basta observar que todos os elementos
de so gerados por uma potncia de 2.
2 = 1
2 = 2
2 = 4
2 = 8
2 = 5
2 = 10
2 = 9
2 = 7
2 = 3
2 = 6
2 = 1
2 = 2
2 = 4
2 = 8
2 = 15
2 = 13
2 = 9
2 = 1
2 = 16
Exemplo 3.9: 3 uma raiz primitiva de . Basta observar que todos os elementos
de so gerados por uma potncia de 3.
3 = 1
3 = 3
3 = 4
3 = 10
3 = 13
3 = 5
3 = 15
3 = 11
3 = 16
3 = 14
3 = 8
3 = 7
3 = 4
3 = 12
3 = 2
3 = 6
3 = 1
Observao: Se grande ento tem vrias razes primitivas. A frmula precisa diz
que tem exatamente ( 1) razes primitivas onde a funo de Euler. Por
exemplo, podemos checar que a lista completa de razes primitivas de
dada por
41
1 ( ) . De fato
) 1 ( ).
, . . .
3 ( 11) , 2
3 ( 11) , de
Temos que log est bem definido a menos de mltiplos de ( 1). Desta
forma, restringimos o contradomnio de para
esteja
bem definida.
log
=
Em vrias situaes, nos referimos ao logaritmo discreto como o inteiro
situado entre 0 e 2 satisfazendo a congruncia ( ).
Exemplo 3.10: Por simplicidade, vamos considerar = 13 e a = 2.
( ) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
=
2 = 2, 2 = 4, 2 = 8, 2 = 3, 2 = 6, 2 = 12
2 = 11, 2 = 9, 2 = 5, 2 = 10, 2 = 7, 2 = 1
42
log
= ( )
1=2
0 = 12
2=2
3=2
4=2
5 = 2
6 = 2
12
7=2
11
8=2
9=2
10
10 = 2
10
11
11 = 2
12
12 = 2
Exemplo 3.11: O nmero = 56.509 primo, e podemos checar que a = 2 uma raiz
primitiva mdulo . Como iremos calcular o logaritmo discreto de = ? O
nico mtodo que imediatamente bvio, calcular
2, 2 , 2 , 2 , 2 , ( )
at encontrarmos alguma potncia que seja cngruo a = 38679 mdulo = 56509.
43
Seria difcil fazer a conta na mo, mas usando um computador, encontramos que
2
44
No terceiro passo, Joozinho envia o valor para Serginho que, por sua vez,
envia o valor para Joozinho. Note que Mnica comea a ver os valores de e ,
uma vez que eles so enviados atravs de um canal de comunicao inseguro.
Novamente, Joozinho e Serginho usam outra vez, seus inteiros secretos para calcular
( ) ( )
( )
45
( 941)
ento ela poder encontrar os valores e e, com isso, Mnica poder calcular a chave
secreta compartilhada ( ), que no foi transmitida em nenhum momento.
Aparentemente, Joozinho e Serginho esto seguros desde que Mnica seja
incapaz de resolver o PLD, mas isso no uma verdade absoluta. verdade que um
mtodo para encontrar o valor compartilhado entre os dois resolver o PLD, mas talvez
isso no seja necessrio. A segurana da chave compartilhada repousa sobre a
dificuldade de resolver o seguinte problema, potencialmente mais fcil.
46
Helman
47
Veremos agora como funciona a ideia de Elgamal para enviar mensagens com
segurana. Como esse mtodo utiliza clculos numricos, surge a necessidade de
substituir smbolos por nmeros. A tabela ASCII (Cdigo Padro Americano para o
Intercmbio de Informao) fornece uma opo de pr-codificao.
Vamos supor que Serginho queira mandar uma mensagem para Joozinho por
um canal inseguro de modo que ningum tenha acesso ao seu contedo. Digamos que
essa mensagem, quando pr-codificada pela tabela ASCII, fique representada pelo
nmero .
Primeiramente, Joozinho e Serginho combinam um nmero primo e uma raiz
primitiva . Joozinho utiliza uma chave secreta com a qual calcula
( ).
e depois envia para Serginho o nmero . Este escolhe uma chave provisria e
calcula:
( )
( )
Passo 1: Determina ( )
Passo 2: Determina
( ),
Passo 3: Calcula
( . )
. ( )
. ( )
.
. ( )
( )
Agora basta que Joozinho consulte a tabela ASCII para obter a mensagem original.
Exemplo 3.13: Joozinho usa o primo = 467, a raiz primitiva = 2, escolhe
= 153 para ser sua chave privada secreta e calcula sua chave pblica
2
224 ( 467)
57 (mod 467)
367
367 ( 467)
14
( 467)
Em 1985, Taher
ElGamal publicou um
artigo intitulado
A Criptografia de chave
pblica e um esquema
de assinatura com base
em logaritmos
discretos.
49
A utilizao de curvas
elpticas
em criptografia foi
sugerida por Neal Koblitz e
Victor S.Miller em 1985.
4.1. Preliminares
Uma curva elptica o lugar geomtrico dos pontos do plano cujas
coordenadas cartesianas satisfazem a uma equao do tipo
= + +
com e satisfazendo a condio 4 + 27 0. Esta desigualdade uma forma
de garantir que a curva no tenha singularidades, o que possibilitar determinar a reta
tangente em todos os pontos da curva, fato este, que ser verificado no decorrer do
texto.
Equaes
do
= + +
tipo
so chamadas de equaes de
Weierstrass, em homenagem ao
matemtico
alemo
Karl
Weierstrass (1815 1897).
50
y 2 x 3 3x 3
y 2 x3 6 x 5
51
52
53
54
3 +
.
2
= + + 2 = 3 + =
3 +
.
2
bvio que essa frmula est bem definida para diferente de zero. Se for
igual a zero e 3 + for diferente de zero, a frmula sugere que a reta tangente
perpendicular ao eixo horizontal. Esse caso ser discutido mais frente, antes
precisamos resolver outro problema. Note que nas duas curvas elpticas a seguir no
possvel determinar qual a reta tangente no ponto P.
: y 2 x3 3x 2
: y 2 x3
55
3 + = 0 = = .
3
3
0 + + 0
. ( + ) + 0
+ + 0
3
3
2
3
3
4
.
3
9
4
27
4 + 27 0.
56
= + =
= + =
Caso contrrio, escreva = ( , ) e = ( , )
Se = e = + =
Caso contrrio, defina por
Capitulo 5 =
se ou =
Ento = + = ( , ) onde
= = ( )
= + a reta onde ( ou = ) e
= ; o outro ponto de interseo entre a reta e a curva ,
podemos escrever:
( + ) = + + + ( 2) + = 0.
Como6) , , so as razes dessa equao, temos que a soma das razes
+ + = = .
Acabamos de obter uma frmula para a abscissa do ponto que a mesma
abscissa do ponto = + , logo = .
57
Agora vamos encontrar uma frmula para a ordenada . Isso fcil, basta
substituir = na equao da reta, mas antes vamos notar que = ( , )
tambm pertence reta = + , logo
= + = .
= + = + ( ) = ( ) +
consequentemente
= = ( )
Se e so pontos racionais de uma curva elptica sobre fcil ver que a
soma + tambm um ponto racional de . Em particular, dado um ponto racional
de , a lei de grupo permite construir NOVOS pontos racionais, a saber, os
mltiplos inteiros de
, 3, 2, , , , 2, 3,
Observe que os elementos desta lista, no precisam ser distintos. Por exemplo, se
= o elemento neutro, ento a lista acima s contem um elemento.
Desta forma, bastante natural perguntar se possvel encontrar um
CONJUNTO DE GERADORES { , , . . . , } para os pontos racionais de , de
modo que qualquer ponto racional de se escreve como combinao -linear de
, . . . , , isto
= + + ( )
Este precisamente o contedo de um resultado clssico da literatura, conhecido
como Teorema de Mordell-Weil que diz que dada uma curva elptica : = +
+ sobre , ou seja, , , mais um ponto no infinito, ento o conjunto ()
dos pontos racionais de um grupo finitamente gerado.
58
3 + 3 (1) + 0 3
=
= .
2
21
2
= =
= ( ) = 1
Segue que 2 = ( , ) =
(1) (1) =
1=
59
4
Agora vamos calcular as coordenadas do ponto 3P = P + 2P.
= =
(1)
= ( ) =
1=
Segue que
3 = ( , ) =
127 13175
,
.
441 9261
66113 36583777
,
.
80656 22906304
= (, ); , ; = + + {}
60
+ 1 + 2
0
1
2
3
4
5
6
7
8
9
10
11
12
0
1
4
9
3
12
10
10
12
3
9
4
1
0
1
2
3
4
5
6
7
8
9
10
11
12
+ 2 + 7
7
10
6
1
1
12
1
0
2
0
0
8
4
no polinmio
(, )
+ 2 + 7
(1,6), (1,7)
10
10
(5,5), (5,8)
12
12
(12,2), (12,11)
problema, pois estamos trabalhando mdulo 13. Neste momento surge uma pergunta
muito natural: Qual o significado de = ( 13) ? A resposta para isso
baseada no fato de que = a soluo da equao 7 = 3 . Portanto, basta
resolvermos a equao 7 3(13). No difcil verificar que = 6 a soluo
em . Agora podemos calcular explicitamente as coordenadas de = + =
( , ) = (6,12), conforme verificao a seguir:
= = 6 12 5 = 19 6 ( 13)
= ( ) = 6(5 6) 8 = 14 12 (13)
Se = = (1,6) , ento =
. Resolvendo a equao
= = 8 1 1 = 62 10 13
= ( ) = 8(1 10) 6 = 78 0 13.
62
= log ()
onde chamamos o Logaritmo Discreto Elptico de com respeito .
Lembre-se de que a lei de soma de pontos de uma curva elptica complicada,
por isso determinar o logaritmo discreto em uma curva elptica at mais difcil do que
em . Observando novamente a curva elptica E: = + 2 + 7 sobre , onde
temos que
( ) = {(1,6). (1,7), (3,1), (4,1), (6,1), (3,12), (4,12), (6,12)}
{(5,5), (, ), (7,0), (9,0), (10,0), (12,2), (12,11)} {}
Para o ponto = (3,1), usando o algoritmo, vemos que
2 = + = (6,1)
3 = 2 + = (6,1) + (3,1) = (4,12)
4 = 3 + = (4,12) + (3,1) = (10,0)
2 = (6,1)
3 = (4,12)
4 = (10,0)
5 = (4,1)
6 = (6,12)
7 = (3,12)
8 =
10 = 2
11 = 3
12 = 4
63
e assim por diante. Assim vemos que todos os pontos de ( ) que no esto nessa
lista de mltiplos de no possuem logaritmo na base = (3,1).
Claramente, temos para = (5,8) que o log no existe, pois no existe
tal que = . Alm disso, se existe um inteiro satisfazendo = , ento h
infinitos inteiros que tambm satisfazem. Para ver isto, primeiro note que existe um
inteiro tal que = . De fato, como finito, ento a sequncia infinita
(, 2, 3, 4, . . . ) possui elementos repetidos. Portanto, existem inteiros > tais
que = e podemos tomar = ( ) . O menor desses elementos 1
chamado de ordem de .
Se a ordem de e um inteiro qualquer tal que = ento as
solues para = so os inteiros = + . com . Isto significa que o
valor de log () um elemento /, isto , log () um inteiro mdulo s. onde s
a ordem de P. poderamos dizer que log () = , no entanto, a vantagem de se definir
os valores para estarem em /, que o Logaritmo Discreto Elptica satisfaz
log ( + ) = log + log
De fato, fazendo log = = e log = = podemos
escrever
+ = + = ( + ) log ( + ) = +
o que ratifica a propriedade.
64
onde {0,1}.
= 2
= 2
= 2
. Assim
= 2
Finalmente, computamos usando no mximo r somas
m = + + + +
Nos referimos adio de dois pontos em ( ) como uma operao de ponto.
Portanto o total de vezes para calcular no mximo 2 operaes de Ponto em
. Note que 2 . Por isso, no faremos mais do que 2 () operaes de
pontos para calcular . Isto faz com que seja possvel calcular , mesmo para
valores muito grandes de . Resumimos na tabela abaixo o algoritmo para calcular os
mltiplos de um ponto de uma curva elptica.
Entrada: Entre com o ponto e 1 inteiro
1. Seja = e = .
2. Enquanto > 0 faa:
I.
Se 1 2 ento
II.
Defina: = +
III.
Defina: = 2
IV.
Defina: =
V.
Se > 0 retorne ao passo 2
3. Sada: o ponto =
65
=+
947
= (6, 730)
473
(2521, 3601)
= (6, 730)
236 (par)
(2277, 502)
3 = (2149, 196)
118 (par)
(3375, 535)
3 = (2149, 196)
59
(1610, 1851)
3 = (2149, 196)
29
(1753, 2436)
19 = (2838, 2175)
14 (par)
(2005, 1764)
51 = (600, 2449)
(2425, 1791)
51 = (600, 2449)
(3529, 2158)
(2742, 3254)
10
(1814, 3480)
66
= (, ); , ; = + + {}.
Serginho
1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.
Passo
2:
Escolhe
secreto.
Passo 3: Calcula
Passo 3: Calcula
Passo 4: Envia
para Serginho
Recebe
e pblico
Recebe
Passo 5: Calcula
Passo 5: Calcula
67
Serginho
Passo
2:
Escolhe
= 1194 secreto.
Passo
2:
Escolhe
= 1759 secreto.
Passo 3: Calcula
Passo 3: Calcula
= = 1194
= = 1759
= (2067, 2178)
= (3684, 3125)
Recebe
Passo 5: Calcula
Passo 5: Calcula
= 1194(3684,1242)
= 1759(2067,2178)
= (3347,1242)
= (3347,1242)
68
Note que
(
(
)
)
( )
( )
( )
1( ) pelo P.T.F
=
( ) ,
( ) . Segue que
( ).
69
Serginho
= 3851
: = + 324 + 1287
uma curva elptica sobre
= (920,303) (
Passo 2: Escolhe =
2489 secreto.
Passo 2: Escolhe =
2286 secreto.
Passo 3: Calcula
Passo 3: Calcula
= 2489
= 2286
= (593, 719)
= (3681, 612)
= ( , )
= ( , )
Recebe =
Passo 5: Joozinho Calcula
= 3681
Na equao de
= + 324
+1287
= 3681 + 324.3681
+1287
= 997
e pblico
Recebe =
Passo 5: Serginho Calcula
= 593
Na equao de
= + 324
+1287
= 593 + 324.593
+1287
= 927
70
= 997(
= 927(
)/
)/
= 997
= 927
612 3851
3132 3851
= (3681,612)
= (593,3132)
que o de Serginho.
que no o de Joozinho.
= (3681,612)
= (593,719)
Passo 7: Calcula
Passo 7: Calcula
= 2489(3681,612)
= 2286 (593,3132)
= (509,1108)
= (509,2743)
71
fcil construir um anlogo ao ElGamal para o grupo das curvas elpticas sobre
corpos finitos. Porm, teremos que supor que a mensagem que Serginho deseja enviar
para Joozinho um ponto ( ) da curva elptica onde o primo e a curva
elptica sobre so previamente fixados por um canal no seguro de comunicao.
Alm disso, eles ainda compartilham um ponto ( ). Vamos descrever o
mtodo na tabela abaixo.
Joozinho
Serginho
1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.
Passo 3: Calcula
=
Passo 4: Envia
para Serginho
pblico
Recebe
72
Joozinho
Mnica
Serginho
(, ) pblico
73
Mnica-(parmetros Pblicos)
= 362,
Serginho
= (6, 730)
: = + 14 + 19
Passo 2: Chave secreta:
= 435
Passo 3:
calcula
Joozinho
= = (932, 1204)
Recebe
Passo
4:
Serginho
escolhe = 13 e a
mensagem
=
(2058, 3022)
Calcula
= =
(1330,144) = +
= (2940, 2636).
Passo 5: Serginho envia
para Joo a seguinte
mensagem (, )
Recebe (, )
(, ) pblico
74
+ = + 2
= ( , )
= ( , )
Caso 1: <
>
Caso 2: >
<
= 0 0 <
= 1 < <
e = ( , )
que as mensagens se tornam duas vezes maiores. A seguir, vamos apresentar a descrio
desse mtodo.
Serginho
1 primo grande
uma curva elptica sobre
um ponto de
Passo 2: Escolhe
secreto.
Passo 3: Calcula
=
Passo 4: Envia
para Serginho
pblico
Recebe
76
Joozinho
Mnica
Serginho
Passo 5: Escolhe e
calcula
=
= = ( , )
Passo 6: Calcula
=
A mensagem codificada
enviada para Joo ser a
trinca a seguir
(, , )
Recebe (, , )
(, , ) pblico
77
Joozinho
Mnica
Serginho
(parmetros Pblicos)
Passo 7: Para decifrar a
mensagem, Joo calcula
= = =
= = ( , )
Em seguida,
calcula
Joozinho
obtendo a mensagem de
Serginho:
78
79
Joozinho
Mnica - (parmetros
Pblicos)
Serginho
= 2097421
= (1355793,621792)
: = + 67110
+ 262147
Passo
2:
Escolhe
= 78771 secreto.
Passo 3: Calcula
=
= (949594,812871)
Passo 4: Envia para
Serginho.
pblico
Recebe
Passo
5:
Escolhe
= 23358 e calcula
=
= (1390038,1344654)
= = ( , )
= (647014,449701)
80
Joozinho
Mnica
Serginho
Passo 6: Sergio calcula:
= 647014 7767
2034443 ( 2097421)
= 449701 84
21306 2097421
A mensagem codificada e
enviada para Joo ser a trinca
(, , ) onde
= (1390038,1344654),
= 2034443
= 21306
Recebe (, , )
Passo 7: Para decifrar,
Joozinho calcula
= =
= = ( , )
Em seguida, calcula
=
7767 ( 2097421)
(, , ) pblico
= 84 ( 2097421)
Obtendo
a mensagem (7767,84).
Como o grupo formado pelos pontos de uma curva elptica tem uma estrutura
diferente dos grupos normalmente utilizados em outros sistemas de criptografia, os
ataques ao logaritmo discreto no funcionam to bem sobre curvas elpticas. Isto
acarreta uma diminuio do tamanho da chave usada sem perda de segurana,
permitindo a utilizao de um algoritmo mais rpido e mais leve.
Por essas razes, a criptografia sobre curvas elpticas est se tornando a principal
candidata a substituir o sistema RSA, que atualmente o sistema mais utilizado.
81
RSA
Razo ECC:RSA
163
1024
1:6
256
3072
1:12
384
7680
1:20
512
15360
1:30
82
CAPTULO 5
Atividades relativas ao Capitulo 1
1) Nesta atividade, a turma deve ser dividida em trs grupos: Grupo Remetente,
Grupo Destinatrio e Grupo Decifrador.
Grupo Remetente:
Cria uma cifra, baseada no mtodo de Csar, deslocando cada letra um certo
nmero de casas para a direita.
a b c d e f g h i j
k l
m n o p q r
s t
u v w x y z
Grupo Destinatrio:
Grupo Decifrador:
k l
m n o p q
r s t
u v w x y z Alfabeto
original
C E J I V A N X L M T R S O K F W Q G Y Z H P D U B Alfabeto
cifrado
83
5) Nesta atividade, a turma deve ser dividida em grupos. Um grupo ser chamado
de transmissor e os demais de receptores. O grupo transmissor divulgar uma
palavra chave e, utilizando o mtodo da cifra indecifrvel, dever codificar uma
mensagem e envi-la aos grupos receptores. O primeiro grupo receptor que
decodificar a mensagem ganhar um ponto. A atividade continua trocando, a
cada rodada, o grupo transmissor.
4)
5)
6)
Mostre que 52280 1 (mod 29). Sugesto: Use o pequeno teorema de Fermat.
Verifique se o subconjunto M ={1, 5} de = {0, 1, 2, 3, 4, 5} um grupo com
relao multiplicao.
Mostre que existem infinitos primos da forma 6 + 5.
84
157 2
78
39
19
mdulo 100.
3 mdulo 100
85
CONCLUSO
86
BIBLIOGRAFIA
87