Sei sulla pagina 1di 45

UNIVERSIDADE FEDERAL DO PARAN

SETOR DE TECNOLOGIA
DEPARTAMENTO DE ELETRICIDADE
MESTRADO EM TELECOMUNICAES












Comunicao de Dados

Criptografia Baseada nas Curvas Elpticas



Ccero Hildenberg Lima de Oliveira











CURITIBA PR Outubro 2001

UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
2


Por







Ccero Hildenberg Lima de Oliveira




Avaliao apresentada ao Prof. Dr.
Eduardo Parente Ribeiro, como
requisito avaliativo para a
disciplina TE727 Comunicao de
Dados.












CURITIBAPR SETEMBRO 2001
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
3





















.... very little do we have and inclose which we can call our own in the deep sense of the
word. We all have to accept and learn, either from our predecessors or from our
contemporaries. Even the greatest genius would not have achieved much if he had wished
to extract everything from inside himself. But there are many good people, who do not
understand this, and spend half their lives wondering in darkness with their dreams of
originality. I have known artists who were proud of not having followed any teacher and of
owing everything only to their own genius. Such fools!
[Goethe, Conversations with Eckermann, 17.2.1832]


















C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
4















































C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
5
Introduo

A historia da Criptografia longa e fascinante. A criptografia uma das profisses
mais antigas, com cerca de 4000 anos. Os egpcios j utilizavam a criptografia para cifrar
alguns de seus hierglifos, Os romanos utilizavam cdigos secretos para comunicar planos
de batalha. O mais interessante que a tecnologia de criptografia no mudou muito at
meados deste sculo, existe tambm o barro de Phaistos (1600 a.c) que ainda no foi
decifrado. Depois da Segunda Guerra Mundial, com a inveno do computador, a rea
realmente floresceu incorporando complexos algoritmos matemticos. Durante a guerra, os
ingleses ficaram conhecidos por seus esforos para decifrao de cdigos. Na verdade, esse
trabalho criptogrfico formou a base para a cincia da computao moderna.
A proliferao de computadores e sistemas de comunicaes nos anos 60 trouxe
com isto uma demanda do setor privado para meios de proteger informaes que circulam
em forma digital e para promover os servios de segurana. Comeando com o trabalho de
Feistel a IBM em meados dos anos 70 e culminando em 1977 com a adoo como um
Padro de processamento de informao Federal norte-americano por codificar informao
no classificada, DES (Data Encryption Standard), os Dados Padro de Encriptao, o
mecanismo mais mais famoso criptao da histria. Permanece os meios standards por
afianar comrcio eletrnico para muitas instituies financeiras ao redor do mundo.
Themost desenvolvimento notvel na histria de cryptographycame em 1976whenDiffie e
Hellman publicou Direes.
Com o aumento vertiginoso das redes de computadores e seu proporcional uso por
organizaes para viabilizar e controlar os seus negcios e principalmente a afirmao cada
vez mais da Internet, ao mesmo tempo se criou a suprema necessidade de proteger melhor
as informaes, pois no mercado competitivo, elas so muito valiosas, melhorando os
mecanismos para implantar e proporcionar meios de segurana mais edificveis e
confiveis.
Uma forma de proteger e com isso evitar o acesso imprprio s informaes
sigilosas por meio da codificao ou cifragem da informao, conhecida como
criptografia, fazendo com que apenas as pessoas s quais estas informaes so destinadas,
consigam compreend-las. A criptografia fornece tcnicas para codificar e decodificar
dados, tais que os mesmos possam ser armazenados, transmitidos e recuperados sem sua
alterao ou exposio. Em outras palavras, tcnicas de criptografia podem ser usadas
como um meio efetivo de proteo de informaes suscetveis a ataques, estejam elas
armazenadas em um computador ou sendo transmitidas pela rede. Seu principal objetivo
prover uma comunicao segura, garantindo servios bsicos de autenticao, privacidade e
integridade dos dados.
A palavra criptografia tem origem grega (Gr. krypts, oculto + graph, r. de
graphein, escrever, grafia) e define a arte ou cincia de escrever em cifras ou em cdigos,
utilizando um conjunto de tcnicas que torna uma mensagem incompreensvel, chamada
comumente de texto cifrado, atravs de um processo chamado cifragem, permitindo que
apenas o destinatrio desejado consiga decodificar e ler a mensagem com clareza, no
processo inverso, a decifragem.
Criptografia a arte de escrever em cifra ou em cdigo, composto de tcnicas que
permitem tornar incompreensvel, com observncia e normas especiais consignadas numa
cifra ou num cdigo, o texto e uma mensagem escrita com clareza. A definio mais clara
para criptografia, em nosso tempo moderno, o estudo de tcnicas matemticas relacionado
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
6
a aspectos de informao segurana como confidncia, integridade de dados, autenticao
de entidade, e origem de dados autenticao.
Com o advento da informtica, com a sua alta velocidade de processamento, as
funes de criptografia ficaram mais complexas.


Encriptao e Desencriptao

Dados que podem ser lidos e compreendidos sem qualquer medida especial
chamado Texto plano ou texto limpo. O mtodo de disfarar o texto de tal modo que se
esconda a sua substncia lgica chamada encriptao. O resultado do texto quando o
mesmo cifrado uma geringona ilegvel chamado texto Encriptado ou texto cifrado.
Usamos a encriptao para assegurar o contedo da informao. O processo de reverter o
texto encriptado para o texto normal chamado decriptao.



There are two kinds of cryptography in this world: cryptography that will stop your kid
sister from reading your files, and cryptography that will stop major governments from
reading your files. This book is about the latter.
--Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C.


Exemplo:

Suponha que marcos S. e Suzana L. so dois agentes secretos que querem se
comunicar usando um cdigo, pois suspeitam que seus telefones esto grampeados e que
suas cartas esto sendo interceptadas. Em particular, Marcos quer mandar a seguinte
mensagem para Suzana.
ENCONTRO AMANH
Usando o esquema de substituio dado acima, Marcos envia a seguinte mensagem:
5 14 3 15 14 20 18 15 1 13 1 14 8
1 14
(Onde o foi substitudo por AN). Um cdigo desse tipo pode ser quebrado sem muita
dificuldade por uma srie de tcnicas, incluindo a anlise de freqncia de letras. Para
dificultar a quebra do cdigo, os agentes procedem seguinte maneira: em primeiro lugar, ao
aceitar a misso, eles escolheram uma matriz 3x3,
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
7

=
2 1 0
2 1 1
3 2 1
A
Marcos, ento, separa a mensagem em cinco vetores (caso isso no fosse possvel,
adicional letras extras).
3
R
Temos, ento, os vetores
.
14
1
8
,
14
1
13
,
1
15
18
,
20
14
15
,
3
14
5


Marcos, agora, usa a transformao linear dada por , de modo que a
mensagem fica:
3 3
: R R L Ax x L = ) (

=
54
69
103
20
14
15
,
20
25
42
3
14
5
A A

=
29
42
57
14
1
13
,
17
35
51
1
15
18
A A

Portanto, Marcos envia a mensagem

42 25 20 103 69 54 51 35 17 57 42 29 52
37 29

Suponha, agora, que Marcos recebe a seguinte mensagem de Suzana:

43 30 14 101 67 53 96 61 55 83 58 43 40
25 24 90 56 53

que ele quer decodificar com a matriz A dada acima. Para decodifica-la, Marcos divide a
mensagem em seis vetores em :
3
R

53
56
90
,
24
25
40
,
43
58
83
,
55
61
96
,
53
67
101
,
14
30
43

e resolvendo a equao
1 1
14
30
43
) ( Ax x L =

=
para . Como A invertvel,
1
x
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
8

1
12
16
14
30
43

1 1 1
1 2 2
1 1 0
14
30
43
1
1
A x
Analogamente,

=


19
14
1
52
53
86
,
12
16
8
40
48
76
,
20
15
6
55
61
96
,
19
15
14
53
67
101
1
5
1
4
1
3
1
2
A x A x
A x A x

Usando a correspondncia entre letras e nmeros, Marcos recebeu a seguinte mensagem:

Planos Fotogrficos


Criptoanlise

A Criptoanlise, do grego: "krypts" (oculto) e "analyein" (desfazer), a cincia
que abrange os princpios, mtodos e meios para se chegar a decriptao de um
criptograma, sem prvio conhecimento dos cdigos ou cifras empregados na produo do
texto cifrado. A Criptografia e a Criptoanlise, compem a Criptologia ("krypts" + "lgos"
palavra).
Existem vrias tcnicas de criptoanlise que podem ser usadas para quebrar sistemas
criptografados. Uma delas, o ataque da fora bruta (busca exaustiva da chave), consiste na
mdia do teste da metade de todas as chaves possveis de serem usadas.
Outra tcnica a criptoanlise diferencial uma potente tcnica de criptoanlise. A
idia bsica consiste em estipular textos planos e criptograf-los. Ela analisa o efeito de
diferenas particulares em pares de textos planos com as diferenas de pares de textos
cifrados resultantes. Estas diferenas usam probabilidades para s possveis chaves, de
forma a localizar a chave mais provvel.
As mensagens que legveis so chamadas de texto plano ou limpo. E as ilegveis,
so chamadas de texto cifrado.
Encriptar significa que a mensagem legvel (texto plano) ser transformada em uma
mensagem ilegvel (texto cifrado). A funo de decriptar o processo inverso da
encriptao, a partir de um texto cifrado, obtm-se o texto plano. Para a criptografia de
textos planos, utiliza-se uma chave(senha), que junto com o algoritmo de criptografia, ir
codificar e decodificar os textos. A mesma chave simtrica serve para criptografar e
decriptografar.
A criptografia utiliza conceitos matemticos para a construo de seus algoritmos
criptogrficos. Assim, na figura acima esto representados os smbolos matemticos que
so adotados.
Um texto cifrado fica representado da seguinte maneira:
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
9
Y = E
K
(X), ou seja um texto plano (X) encriptado por um algoritmo que contm uma
chave (senha) K;
X = D
K
(Y), para a obteno do texto plano inicial, deve-se submeter o texto cifrado (Y) ao
mesmo algoritmo e a mesma chave (K).

Onde:
X - Texto Plano
Y - Texto Cifrado
E - Encriptar
D - Decriptar
K - Chave
Y = E
K
(X)
X = D
K
(Y)

Um sistema para afianar um mnimo de segurana, ele deve fornecer os seguintes servios:

Confidencialidade ou sigilo: garantia de que somente as pessoas ou organizaes
envolvidas na comunicao possam ler e utilizar as informaes transmitidas de forma
eletrnica pela rede;
Integridade: garantia de que o contedo de uma mensagem ou resultado de uma consulta
no ser alterado durante seu trfego;
Autenticao: garantia de identificao das pessoas ou organizaes envolvidas na
comunicao;
No-Repdio (No recusa): garantia que o emissor de uma mensagem ou a pessoa que
executou determinada transao de forma eletrnica, no poder, posteriormente negar sua
autoria.

Mtodos

O mtodo de Esteganografia consiste na existncia de uma mensagem escondida
dentro de outra mensagem. Por exemplo, uma seqncia de letras de cada palavra pode
formar a palavra de uma mensagem escondida.
Algumas formas de esteganografia:
Marcao de caracteres: utilizao de uma tinta com composto diferente que ao coloca-la
defronte a luz estes caracteres ficam de forma diferente, compondo a mensagem secreta.
Tinta invisvel: pode-se utilizar uma tinta invisvel para a escrita da mensagem em cima de
outra pr-existente, aonde, somente com produtos qumicos poderamos obter o contedo.
Outra forma seria a utilizao de furos no papel em letras selecionadas, habitualmente
visvel somente quando colocada defronte uma lmpada.
A moderna Esteganografia utiliza o uso de bits no significativos que so
concatenados a mensagem original e faz uso tambm de rea no usada.
O princpio de Kerckhofss consiste em retirar o segredo do algoritmo e passar para
uma chave. Essa chave programa o algoritmo. ela de seleciona qual das possveis
transformaes ser usada.

C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
10
Sistemas Criptogrficos

Criptossistemas podem ser tanto quando assimtricos. Num criptossistema simtrico
a encriptao e a decriptao so feitas com uma nica chave, ou seja, tanto o remetente
quanto o destinatrio usam a mesma chave. Num sistema assimtrico, ao contrrio, duas
chaves so empregadas. Em criptossistemas de uma chave, como por exemplo o DES (Data
Encription Standart), ocorre o chamado "problema de distribuio de chaves". A chave tem
de ser enviada para todos os usuarios autorizados antes que mensagens possam ser trocadas.
Isso resulta num atraso de tempo e possibilita que a chave chegue a pessoas no
autorizadas.
Criptossistemas assimtricos, ou de dua chaves, contormam o problema da
distribuio de chaves atravs do uso de chaves pblicas. A criptografia de chaves pblicas
foi inventada em 1976 por Whitfield diffie e Martin Hellman a fim de resolver o problema
da distribuio de chaves. No novo sistema, cada pessoa tem um par de chaves chamadas :
chave pblica e chave privada. A chave pblica divulgada enquanto que a chave privada e
deixada em segredo. Para mandar uma mensagem privada, o transmissor encripta a
mensagem usando a chave pblicado destinatrio pretendido.

Segue um exemplo de como o sistema funciona.
Quando Ana quer mandar uma mensagem para Carlos, ela procura a chave pblica
dele em um diretrio, a usa para encriptar a mensagem, e a envia. Carlos ento usa a sua
chave privada para decriptar a mensagem e l-la. Este sistema tambm permite a
autenticao digital de mensagens , ou seja possvel prover certeza ao receptor sobre a
identidade do transmissor e sobre a integridade da mensagem. Quando uma mensagem
encriptada com uma chave privada, ao invs da chave pblica; o resultado uma assinatura
digital, ou seja, uma mensagem que s uma pessoa poderia produzir, mas que todos possam
verificar. Normalmente autenticao se refere ao uso de assinaturas digitais : a assinatura
um conjunto inforjvel de dados assegurando o nome do autor ou funcionando como uma
assinatura de documentos , ou seja, que determinada pessoa concordou com o que estava
escrito. Isso tambm evita que a pessoa que assinou a mensagem depois possa se livrar de
responsabilidades, alegando que a mensagem foi forjada. Um exemplo de criptossistema de
chave pblica o RSA (Rivest-Shamir-Adelman) . Sua maior desvantagem a sua
capacidade de canal limitada, ou seja, o nmero de bits de mensagem que ele pode
transmitir por segundo. Enquanto um chip que implementa o algortmo de uma chave DES
pode processar informao em alguns milhes de bits por segundo, um chip RSA consegue
apenas na ordem de mil bits por segundo.
Ento vejamos , sistemas de uma chave so bem mais rpidos, e sistemas de duas
chaves so bem mais seguros. Uma possvel soluo combinar as duas, fornecendo assim
um misto de velocidade e segurana. Simplesmente usa-se a encriptao de uma chave
para encriptar a mensagem, e a chave secreta transmitida usando a chave pblica do
destinatrio. importante no confundir chave privada com chave secreta.A primeira
mantida em segredo, enquanto que a segunda enviada para as pessoas que efetivaro a
comunicao

Criptografia Convencional

C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
11
Tcnicas Clssicas

O elemento fundamental da criptografia so as Chaves simtricas para criptografar
textos, sendo elas utilizadas para fornecer segurana {Burwick99}.
A prtica de uma chave (segredo) tem como utilizao a criptao e a descriptao,
sendo que ela mesma deve ser de poderio tanto do emissor quanto do receptor da mesma.
Em cifradores simtricos, o algoritmo de criptografia e decriptografia so os mesmos,
muda-se apenas a forma como so utilizadas as chaves.
Na corrente tcnica existe duas chaves, sendo que so as mesmas, que servem para
criptografar e decriptografar o texto, que, por conseguinte, as mesmas devem ser de
conhecimento tanto do emissor quanto de receptor na qual a mensagem se direciona. Os
cifradores simtricos possuem o seu algoritmo de criptografia e decriptografia iguais,
invertendo somente como as mesmas so usadas em funo da chave.






Criptografia forte

PGP tambm sobre o tipo posterior de criptografia.
Criptografia pode ser forte ou fraca, como explicado acima. A fora da Criptografia
medida pelo tempo e recursos exigidos para recuperar o texto. O resultado de criptografia
forte um texto encriptado de difcil decifrao, sem posse da ferramenta de decodificao
apropriada, quase impossvel a desencriptao. Dado todo o poder da computao que
temos hoje em dia, e se tivssemos a nossa disponibilidade um bilho de computadores
para fazerem um bilho de checagens por segundo ainda no possveis decifrar o
resultado da criptografia forte antes do fim do universo. A pessoa pensaria, ento, aquela
criptografia forte se atrasaria bastante bem contra at mesmo um extremamente
determinado cryptanalyst. Quem realmente dizer? No a pessoa provou que o encryption
mais forte alcanvel hoje se atrasar debaixo do poder de computao de amanh. Porm,
a criptografia forte empregado por PGP o melhor disponvel hoje. Vigilncia e
conservantismo vo porm, proteja voc melhora que reivindicaes de impenetrabilidade.

Como criptografia trabalha?

Um algoritmo de criptografia, uma funo matemtica usada dentro do processo de
encriptao e desencriptao. Um algoritmo de criptografia trabalha dentro de combinaes
com as palavras e da chave em conjunto com um nmero. O mesmo texto codifica o texto
encriptado de diferente modos com chaves diferentes. A segurana dos dados codificados
so completamente dependente de duas coisas: a fora do algoritmo de criptografia e o
segredo da chave. Um algoritmo de criptografia, junto a todas as possveis chaves e todos
os protocolos que faa trabalhar esta includo em um sistema de criptografia. PGP um
exemplo de criptografia.
A mensagem enviada encriptada por Alice, com uma chave K que de seu
conhecimento. A mensagem enviada para Bob atravs de algum meio eletrnico. Porm
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
12
para Bob conseguir decifrar esta mensagem, ele deve ter a mesma chave K utilizada por
Alice. Esta chave K ento enviada por um canal seguro para Bob. Com este modelo pode-
se garantir a confidencialidade da mensagem, porque somente Alice e Bob tm
conhecimento da chave K.
A criptoanlise tentar descobrir qual foi chave utilizada para cifrar a mensagem e
qual a mensagem cifrada.
O texto cifrado no sofre alterao quanto ao seu tamanho. importante salientar
tambm que o texto cifrado no contm qualquer parte da chave.
Uma encriptao dita computacionalmente segura se atende estes dois critrios:
O custo para quebrar o cifrador excede ao valor da informao encriptada.
O tempo requerido para quebrar o cifrador excede o tempo de vida til da
informao.

Criptografia Convencional - Tcnicas Modernas

Os principais modos de criptografia convencional moderna so:

DES Simplificado
Princpios dos Cifradores de BlocoDES
Criptanlise Diferencial e Linear
Projeto dos Cifradores de Bloco
Modos de Operao
Funes Bent



As tcnicas de Encriptao mais usadas

DES ("Data Encryption Standard")

O DES um mecanismo de cifragem tradicional ("simtrico) desenvolvido nos anos
setenta, utiliza uma chave de 56 bits que aplicada a blocos de dados com 64 bits, o
objectivo destes algoritmos que seja muito dificil calcular a chave K, mesmo conhecendo
o algoritmo DES, uma mensagem cifrada C e uma mensagem original M: C = DES(K,M)
O algoritmo usado algo complexo:
A mensagem de 64 bits dividida em duas partes de 32 bits cada.
A chave de 56 bits usada para gerar 16 chaves de 18 bits cada.
aplicado sucessivamente 16 vezes um algorimo, usando as chaves geradas.
Devido as suas caracteristicas pequenas alteraes na mensagem original provocam
grandes alteraes na mensagem cifrada, isto dificulta as tentativas de conhecer a chave,
mesmo que se possa cifrar aquilo que se pretende.
Embora seja dificil de implementar em "software" de uma forma eficinte, foi
desenvolvido "hardware" capaz de implementar este algoritmo de forma eficinte.
A aplicao de "fora bruta" para descobrir a chave, obriga a aplicar o algoritmo um
mximo de 2
56
vezes, ou seja cerca de 72 000 000 000 000 000 vezes.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
13
Este nmero no contudo demasiado tranquilizante, este algoritmo
implementado de forma mais eficiente em "hardware", para "quebrar" uma chave DES usa-
se um "chip" apropriado que pode ser montado de forma a trabalhar em paralelo com outros
semelhantes. O custo depende do tempo em que se pretende quebrar a chave, em 1993 por
1 milho de dolares podia-se montar uma mquina capaz de descobrir chaves DES em 3
horas e meia. O documento "Efficient DES key search" contm planos detalhados para a
implementao desse tipo de mquina.
Para fortalecer o DES seria necessrio aumentar o nmero de bits da chave, contudo
o algoritmo exige um valor fixo de 56 bits, a aplicao sucessiva de duas chaves no
soluo pois apenas duplica o nmero de aplicaes do algoritmo necessrias para quebrar
a chave (tcnica "meet-in-the middle"), corresponde por isso a aumentar apenas um bit.
O triplo DES utiliza duas chaves, mas o algoritmo aplicado trs vezes segundo a
seguinte equao:
C = DES( K1 , DES
-1
( K2 , DES( K1 , M ) ) ), onde DES
-1
( representa o algoritmo
inverso (decifragem).
O triplo DES corresponde utilio de uma chave de 90 bits, tem ainda a vantagem
de poder ser usado para DES simples, basta que K1=K2.
Alm da "fora bruta", existem outras abordagem para descobrir chaves:

Cripto-anlise diferencial
Para usar esta tcnica necessrio que se possa cifrar as mensagens que se pretende,
em funo de alteraes nessas mensagens e resultados na mensagem cifrada, no caso do
DES simples possivel reduzir as chaves a 2
47
.

Cripto-anlise linear
Tenta definir a chave por aproximao linear em funo da informao recolhida de
pares (M,C), no caso do DES simples reduz o nmero de chaves a 2
43
.

RC5
O RC5 uma tcnica mais recente e mais flexivel, tal como o DES uma tcnica de
criptao simtrica (a mesma chave usada para cifrar e para decifrar), tambm uma
tecnica de blocos, mas ao contrrio do DES no est limitada a blocos de dimenso fixa,
igualmente a chave no tem uma dimenso fixa.
Tal como o DES utiliza a aplicao sucessiva de um algoritmo, contudo o nmero
de aplicaes no fixo, deste modo pode obter-se um maior grau de segurana usando um
maior nmero de aplicaes.
O RC5 como se pode deduzir muito flexivel, estando sujeito a uma serie de
parmetros que devem ser ajustados s necessidades particulares de cada caso.
A mensagem original fornecida ao algoritmo sob a forma de dois blocos de w bits,
correspondendo ao alinhamento mais conveniente para o sistema em causa, os valores
tipicos para w so: 16, 32 e 64. A mensagem cifrada possui forma idntica.
Outro parmetro importante o nmero de aplicaes do algoritmo (r), pode variar
de 1 a 255. Para aplicar r vezes o algoritmo, vai ser gerada apartir da chave uma tabela com
t = 2.(r+1) blocos de w bits.
A chave especificada pelos parmetros b e k, b especifica o nmero de bytes
(octetos) que constitui a chave e k a chave propriamente dita.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
14
habitual usar a notao RC5-w/r/b para especificar uma implementao particular
RC5. Podemos dizer que o RC5-32/16/7 equivalente ao DES.
O documento "The RC5 Encryption Algorithm" contm grandes detalhes sobre o
RC5, incluido uma implementao em C.

Aplicao das tcnicas de cifragem em bloco
As tcnicas de cifragem em bloco (Ex: DES e RC5) podem ser aplicadas de
diversos modos a mensagens de comprimento diferente do tamanho de bloco.
A tcnica mais simples conhecida por ECB ("Electronic Code Book"), consiste em
dividir a mensagem em blocos de tamanho adequado, cifrar os blocos em separado e
concatenar os blocos cifrados na mesma ordem. O grande inconveniente desta tcnica que
blocos de mensagem original idnticos vo produzir blocos cifrados idnticos, isso pode
no ser desejvel.
A tcnica CBC ("Cipher Block Chaining") evita este inconveniente, realiza a
operao xor entre o bloco a cifrar M
i
e o bloco anteriormente cifrado C
i
, s depois aplica
o algoritmo de cifragem:

C
i
= cifragem( chave, M
i
xor C
(i-1)
)



Na decifragem obtm-se M
i
xor C
(i-1)
, como xor
-1
= xor, utiliza-se:
M
i
= decifragem( chave, C
i
) xor C
(i-1)

Como para o primeiro bloco no existe mensagem anterior, utiliza-se um bloco
aleatrio conhecido por IV ("Initialization Vector").
Esta tcnica pouco favorvel sob o ponto de vista da propagao de erros, uma vez
que um erro na transmisso de um bloco cifrado C
i
vai inutilizar tanto o bloco M
i
como o
seguinte M
(i+1)
.
Nas tcnicas CFB ("Cipher FeedBack") e OFB ("Output FeedBack") a
mensagem no directamente cifrada, existe um vector de inicial (IV) ao qual aplicado o
algoritmo de cifragem, aplica-se ento a operao xor entre o vector cifrado e a mensagem.
A operao xor entre o vector cifrado e a mensagem realizada do seguinte modo:
Pegam-se nos n bits da esquerda do vector cifrado e realiza-se a operao xor com os n
seguintes da mensagem.
Realiza-se o "shift" para a esquerda de n bits do vector cifrado.
Injectam-se n bits no vector original, realizando o "shift" para a esquerda.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
15
No caso do CFB utilizam-se os n bits resultantes da operao xor.
No caso do OFB utilizam-se os n bits retirados do vector cifrado.
Quando esgotam os bits do vector cifrado aplica-se novamente o algoritmo de cifragem ao
vector original.

As figuras seguintes ilustram as duas tcnicas: CFB ( esquerda) e OFB ( direita):



Os valores mais comuns para n so 1, 8 ou 64. Devido ao seu funcionamento a
tecnica OFB, tambm conhecida por OFM ("Output Feedback Mode") apenas produz um
bloco de mensagem errado quando ocorre um erro na transmisso de um bloco cifrado.
Quando o comprimento da mensagem no multiplo do tamanho do bloco
necessrio recorrer a tcnicas de enchimento ("padding"), uma tcnica habitual adicionar
um bit 1 seguido dos bits 0 necessrios.

Distribuio de chaves
O DES e o RC5 so cifragens simtricas: bsicamente a decifragem o inverso da
cifragem, usando a mesma chave que por razes obvias deve ser secreta, isto apenas do
conhecimento da entidade de origem e entidade de destino.
O primeiro problema levantado pela criptografia de chave secreta a distribuio de
chaves, poderiam ser enviadas por um sistema paralelo como correio ou "fax", mas o mais
conveniente seria usar a rede de comunicao, para tal a chave deveria ser cifrada usando
uma chave anterior.
Para estabelecer uma comunicao segura entre uma aplicao cliente e uma
aplicao servidora, o ideal seria que o servidor e o cliente trocassem entre s as chaves na
altura do estabelecimento da conexo.
Para se conseguir uma situao deste tipo existem duas solues:
Manter a criptografia de chave secreta e usar uma tcnica especial para enviar a chave, por
exemplo "puzzles".
Utilizar criptografia de chave pblica que veio alterar radicalmente o modo de ver a
criptografia.



"Puzzles"
Para fornecer a chave secreta enviado um conjunto de "puzzles", geralmente na
ordem das dezenas de milhar. Tomando o exemplo DES, cada "puzzle" constituido por
120 bits zero, seguido do nmero do "puzzle" com 16 bits e finalmente uma chave, DES de
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
16
56 bits. Todos os "puzzles" so cifrados com chaves DES em que os ltimos 22 bits so
zero.
O cliente escolhe um "puzzle" sorte e quebra a cifra usando fora bruta, tem de
tentar "apenas" 2
34
chaves, quando obtm 120 zeros no inicio sabe que consegui decifrar o
"puzzle" e portanto possiu j a chave DES que escolheu (ltimos 56 bits do "puzzle"
decifrado). Tem agora de indicar qual o "puzzle" que escolheu, envia ento uma mensagem
com o nmero do "puzzle" cifrado com a chave DES escolhida, destinatrio (ex.:servidor)
conhece as chaves que iam nos "puzzles" e o respectivo nmero de "puzzle" e pode
facilmente descobrir qual foi a chave escolhida.
O tempo mdio que um intruso necessita para descobrir a chave situa-se na ordem
dos anos e pode ser ajustado por variao do nmero de "puzzles" em jogo.

Criptografia de chave pblica
A criptografia de chave pblica utiliza algoritmos de cifragem e decifragem que no
esto diretamente relacionados, passam a existir duas chaves, uma de cifragem e outra de
decifragem.
Tipicamente a chave de cifragem pblica ( divulgada a todos os utilizadores), a
chave de decifragem secreta. Quando uma entidade A pretende enviar entidade B uma
mensagem cifra-a com a chave pblica de B antes do envio. Ninguem, nem sequer a
entidade A capaz de decifrar, apenas a entidade B que possui a chave secreta adequada.
Alm de resolver definitivamente o problema da distribuio de chaves, a
criptografia de chave pblica facilita significativamente a implementao de mecanismos
de autenticao de mensagens e assinatura digital.
Embora tenham sido propostos outros algoritmos, actualmente o RSA o mais
slido, o algoritmo "Merkle-Hellman Knapsacks" demorou quatro anos a ser quebrado por
Adi Shamir, uma segunda verso, supostamente mais slida, demorou dois anos a ser
quebrada.

RSA
Este algoritmo devido a Ron Rivest, Adi Shamir e Len Adleman (RSA), baseina-
se no seguinte: simples arranjar dois nmeros primos grandes, mas muito
complicado (moroso) factorizar o seu produto. O RSA tem aguentado todas as investidas
dos cripto-analistas, contudo temos que atender ao facto de ser um problema matemtico,
existe sempre o risco de descoberta de uma tcnica para resolver o problema de forma
eficinte.
Gerao das chaves:
Escolhem-se dois nmero primos grandes a e b.
Calcula-se n = a x b.
Calcula-se (n) = (a-1) x (b-1).
Escolhe-se um nmero pequeno p que seja primo relativo de (n) e < (n), calcula-
se s tal que (p x s) mod (n) = 1, onde mod o operador "resto da diviso inteira"
(aritmtica modulo (n)).
(Dois nmeros so primos relativos se o maior divisor comum 1)
O par (n,p) constitui a chave pblica, d a chave secreta.
Aplicao:
Cifragem: C = M
p
mod n
Decifragem: M = C
s
mod n
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
17
, onde M e C so respectivamente a mensagem original e mensagem cifrada, ambas com
valores possiveis de zero a n-1.
Uma propriedade interessante do RSA a possibilidade de inverso das chaves,
pode-se cifrar uma mensagem com a chave s, para decifrar ser agora necessria a chave
pblica: utilizvel para autenticao e assinatura digital.
Para efeitos de exemplificao tomem-se os nmeros primos a=7 e b=17:
n = a x b = 119
(n) = (a-1) x (b-1) = 96
como primo relativo de (n) podemos escolher p=5
ento para obter p x s mod 96 = 1, podemos usar s = 77
pois 5 x 77 = 385, 385 mod 96 = 1
A chave pblica (5;119) e a chave secreta 77
Exemplos de aplicao:
Para evitar perdas de dados torna-se necessrio aplicar a seguinte propriedade da aritmtica
modular:
(a x b) mod n = ((a mod n) x (b mod n)) mod n

Para cifrar o nmero 2 com a chave pblica temos C = 2
5
mod 119 = 32 mod 119 = 32
Para decifrar utiliza-se M = 32
77
mod 119
, para usar uma calculadora, sem perder dados podemos usar 11 parcelas:
((32
7
mod 119) x ... x (32
7
mod 119)) mod 119
, obtemos ento 25
11
mod 119, podemos agora aplicar ((5
11
mod 119) x (5
11
mod 119)) mod
119 , obtemos agora 45
2
mod 119 = 2
Tambm se pode cifrar o nmero 2 com a chave secreta temos C = 2
77
mod 119
, para usar uma calculadora, sem perder dados podemos usar 11 parcelas:
((2
7
mod 119) x ... x (2
7
mod 119)) mod 119 = 9
11
mod 119 = 32
Para decifrar utiliza-se M = 32
5
mod 119 = 2

Para cifrar o nmero 3 com a chave pblica temos C = 3
5
mod 119 = 243 mod 119 = 5
Para decifrar utiliza-se M = 5
77
mod 119
, para usar uma calculadora, sem perder dados podemos usar 7 parcelas:
((5
11
mod 119) x ... x (5
11
mod 119)) mod 119
, obtemos ento 45
7
mod 119 = 3

Como se pode verificar as operaes a realizar na decifragem no so simples,
especialemente se atendermos a que os nmeros a e b devem ser grandes.
Para os valores 0 e 1 a messagem e o resultado da cifragem coincidem, contudo isto
no muito grave, os valores usados para n so muito elevados (na ordem de 10
200
), o
tamanho mais comum para as mensagens a cifrar (M) de 512 bits (que representa
nmeros at mais de 10
154
), para este nmero de bits no so vulgares os valores 0 e 1, de
qualquer modo isto pode ser resolvido pela adio de duas unidades a M antes de entrar no
algoritmo de cifragem e subtrao de duas unidades depois de sair do algoritmo de
decifragem.
Gerar chaves RSA no uma operao simples, o primeiro problema arranjar dois
nmeros primos a e b com uma ordem de grandeza de 10
100
, usar os algoritmos tradicionais
de gerao de nmeros primos impossivel, a soluo usar testes eliminatrios, estes
testes permitem saber se um nmero no primo, ou qual a probabilidade de ser primo, se
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
18
um dado nmero depois de testado intensivamente no eliminado ser adoptado. A
segunda questo prende-se com a determinao de um primo relativo de (n), p ou s e de
seguida necessrio determinar outro nmero para verificar a relao (p x s) mod (n) = 1.
O algoritmo RSA serve de base a muitos sistemas de segurana actuais, tais como o PGP
("Pretty Good Privacy").
Sob o ponto de vista de cripto-anlise e devido ao nmero de bits das chaves a
aplicao de fora bruta (tentar todas as chaves secretas possveis) est excluida. A
abordagem tentar obter os dois factores primos de n. Contudo tal extremamente
complexo para a ordem de grandeza usada para n, o tempo necessrio cresce
exponencialmente com o valor de n.

Distribuio de chaves pblicas
Embora a criptografia de chave pblica resolva o problema da distribuio de
chaves existe ainda a questo do modo como as chaves pblicas sero obtidas por quem
delas necessita.
As chaves pblicas destinam-se a ser divulgadas, mas esta divulgao deve ser
realizada de tal modo que no possa ser forjada por terceiros, as consequncias seriam
obvias.
O correio electrnico ou sistemas de news no so de todo adequados, uma melhor
soluo ser a sua colocao na pgina WWW pessoal.
Uma opo mais segura definir uma autoridade de chaves pblicas, quando A
pretende enviar uma mensagem a B realiza as seguintes operaes: contacta a autoridade C
enviando-lhe um pedido com etiqueta temporal C responde enviando uma mensagem
cifrada com a sua chave secreta (assim A sabe que a mensagem veio de C), onde consta
chave pblica de B e a mensagem original. Quando B recebe a primeira mensagem de A
ter de realizar o mesmo procedimento para obter a chave de B e lhe poder responder.
Apesar de mais seguro a existencia de autoridades de chave pblica coloca alguns
problemas em termos de quantidade de comunicaes necessrias, uma alternativa a
emisso de "certificados de chave pblica". Cada entidade contacta a autoridade de chave
pblica que lhe fornece um certificado contendo: uma etiqueta temporal; a identificao da
entidade; a chave pblica da entidade. O certificado encontra-se cifrado com a chave
secreta da autoridade, este facto atesta a sua origem. As diversas entidades podem agora
trocar directamente entre si estes certificados, o facto de estarem cifrados pela autoridade
atesta a sua veracidade.

Distribuio de chaves secretas (criptografia simtrica)
A criptografia de chave pblica pode ser usada para obviar um dos grandes
problemas da criptografia tradicional: a distribuio de chaves secretas. A motivao o
facto de a criptografia tradicional ser substancialmente mais rpida nas operaes de
cifragem e decifragem, proporcionando assim dbitos de dados mais elevados.



A utilizao mais direta consistiria no seguinte:
A aplicao A envia aplicao B uma mensagem com a chave publica da A.
A aplicao B gera uma chave secreta convencional (simtrica) e envia-a a A
cifrada com a respectiva chave publica.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
19
A aplicao A decifra a mensagem com a sua chave secreta e obtm a chave secreta
convencional.
Este mecanismo pode ser contudo furado por uma entidade C com controlo sob as
transmisses:
C captura a primeira mensagem de A e fica a conhecer a chave pblica de A.
C envia para B uma cpia da mensagem de A, mas substitui a chave pblica pela
sua.
C captura a resposta de B e fica a conhecer a chave secreta convencional.
para que A no note nada C envia a A a resposta que recebeu de B, cifrada com a chave
publica de A.
C passa ento a actuar de modo passivo, limitando-se a decifrar a conversao entre
A e B.
O problema pode ser resolvido se previamente for usado um mecanismo seguro de
distribuo de chaves publicas e forem tomadas diversas precaues quanto a
confidencialidade e autenticao:
A envia a B uma mensagem com a sua identificao e um identificador de transao
I
1
(nmero que identifica a transao em curso), cifrada com a chave pblica de B.
B enviar a A uma mensagem com I
1
e um novo identificador I
2
, cifrada com a chave
pblica de A.
A tem a certeza que a mensagem veio de B devido presena de I
1
, envia ento a B
I
2
, cifrado com a chave pblica de B.
A gera a chave secreta convencional, cifra-a com a sua chave secreta e de A, cifra-a
com a chave pblica de B, e envia-a a B.
B recebe a mensagem e decifra-a aplicando primeiro a sua chave secreta e de seguida a
chave publica de A.

Algoritmos

Algoritmos de Chave nica ou Secretas (Simtricos)
O exemplo mais difundido de cifrador computacional de chave nica o DES (Data
Encryption Standard), desenvolvido pela IBM e adotado como padro nos EUA em 1977.
O DES cifra blocos de 64 bits (8 caracteres) usando uma chave de 56 bits mais 8 bits de
paridade (o que soma 64 bits).O algoritmo inicia realizando uma transposio inicial sobre
os 64 bits da mensagem, seguida de 16 passos de ciftagem e conclui realizando uma
transposio final, que a inversa da transposio inicial.Para os 16 passos de ciftagem
usam-se 16 sub-chaves, todas derivadas da chave original atravs de deslocamentos e
transposies.
Um passo de cifragem do DES, tem dois objetivos bsicos: a difuso e a confuso.
A difuso visa eliminar a redundncia existente na mensagem original, distribuindo-a pela
mensagem cifrada. O propsito da confuso tomar a relao entre a mensagem e a chave
to complexa quanto possvel.O DES pode ser quebrado pelo mtodo da fora bruta,
tentando-se todas as combinaes possveis de chave. Como a chave tem 56 bits, tem-se um
total de 2 exp 56 chaves possveis.
Existem diversos algoritmos de cifragem de blocos de chave nica, entre eles:
Triple-DES: O DES aplicado 3 vezes, com sequncias de cifragem e decifragem,
combinando a utilizao de 2 chaves.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
20
WLucifer: precursor do DES.
Madryga: trabalha com 8 bits, usando ou-exclusivo e deslocamento de bits.
NewDES: blocos de 64 bits e chave de 120 bits.
FEAL-N: baseado no DES, pode-se especificar o nmero de passos da cifragem,
fraco se utiliza-se menos de 8 passos.
LOKI: bloco e chave de 64 bits.
Khufu e Khafre: trabalham de forma semelhante ao DES, usam tabelas de
substituio de 256 posies de 32 bits - contra as de 6 posies de 4 bits do DES -
usam chaves de 512 bits e um nmero de passos flexveis, mltiplo de 8.
IDEA: blocos de 64 bits com chave de 128 bits.
MMB: blocos e chave de 128 bits.
Skipjack: chave de 80 bits e 32 passos de processamento.

Estes e outros algoritmos podem ser encontrados em :
ftp://ftp.funet.fi:/pub/crypt/cryptography/symmetric

Algortmos de Chave Pblica (Assimtricos)
A chave de ciframento pblicada ou tornada acessvel aos usurios, sem que haja
quebra na segurana. Dessa forma cada usurio tem uma chave de ciframento, de
conhecimento pblico, e outra de deciframento, secreta. Se um usurio A deseja mandar
uma mensagem para um usurio B, ele utiliza a chave de ciframento pblica PB e envia a
mensagem para B, este de posse de sua chave de deciframento secreta SB decodifica a
mensagem.
Um exemplo desse sistema o RSA, anacronico de seus autores Rivest, Shamir e
Adleman. Sua seguranca baseia-se na intrabilidade da fatoraao de produtos de dois
primos. Um usurio B para determinar seu par (PB,SB), procede da seguinte maneira:
escolhe ao acaso dois primos grandes "p" e "q" e computa o seu produto (n=p*q), e o
nmero f(n)=(p-1)*(q-1); B escolhe ao acaso um nmero "c" relativamente primo com f(n)
(ou seja, c e f(n) no possuem fatores em comum) e determinara "d" tal que c*d (mdulo
f(n)). Finalmente, o usurio B pblica sua chave pblica PB(c,n) e mantm secretos p, q,
f(n) e d. A chave secreta SB(d,n) deve ser mantida em sigilo completo.

Cifragem de Blocos
Um algoritmo que realiza cifragem sobre blocos pode operar de diversas maneiras
distintas. As mais conhecidas so:
1 - Modo do livro de Cdigos (Electronic Code Book - ECB)
Cada bloco da mensagem original individual e independentemente cifrado para
produzir os blocos da mensagem cifrada. O bloco tpico tem 64 bits, o que produz um livro
de cdigos de 2 exp 64 entradas. E note-se que para cada chave possvel existe um livro de
cdigos diferentes. A vantagem do mtodo sua simplicidade e a independncia entre os
blocos. A desvantagem que um criptoanalista pode comear a compilar um livro de
cdigos, mesmo sem conhecer a chave. Um problema mais grave a chamada repetio de
bloco, onde um atacante ativo pode alterar parte de uma mensagem criptografada sem saber
a chave e nem mesmo o contedo que foi modificado. Pode-se por exemplo interceptar uma
transao bancria de transferncia de saldo de qualquer pessoa, a seguir pode-se realizar
uma transferncia de saldo de uma conta para a conta do atacante e interceptar a mensagem,
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
21
assim pode-se identificar os blocos correspondentes ao destinatrio e dessa forma substituir
em todas as mensagens o destinatrio pelo atacante.

2 - Modo de Encadeamento de Blocos (Cipher Block Chaining - CBC)
CBC realimenta a cifragem do bloco atual com o resultado das cifragens dos blocos
anteriores. A operao mais utilizada o ou-exclusivo com o bloco anterior, dessa forma os
blocos iguais serao normalmente cifrados de forma diferente, desde que no mnimo um dos
blocos anteriores seja diferente da mensagem. Entretanto 2 mensagens iguais serao
mapeadas para os mesmos blocos. E duas mensagens com incio igual sero cifradas da
mesma forma at que ocorra a diferena. A maneira empregada para evitar esse problema
a utilizacao de um vetor de inicializaao distinto para cada mensagem.

3 - Modo da Realimentao de Cifra (Cipher Feedback - CFB)
Quando h necessidade de enviar-se mensagens que possuem tamanho menor que
um bloco usa-se o mtodo CFB, que trabalha com grupos (8 bits por exemplo - 1 caracter),
neste caso a realimentacao feita sobre o grupo, utilizando-se tambm o ou-exclusivo.

4 - Cifras de Substituio
Troca cada caracter ou grupo de caracteres por outro, de acordo com uma tabela de
substituio.Pode-se quebrar este mtodo analisando-se a frequncia de cada caracter no
texto cifrado e comparando-se estas frequncias com aquelas que normalmente aparecem
em um determinado idioma.As vogais tm maior frequncia que as consoantes e alguns
caracteres possuem frequncia baixssima em relao aos demais. Para amenizar a
frequncia de caracteres, podemos utilizar vrias tabelas para a cifragem de um texto. Para
uma substituio monoalfabtica podemos ter 261 Tabelas de Substituio. Tem-se uma
chave que diz qual das tabelas ser usada para cada letra do texto original. Portanto, quanto
maior a chave mais seguro o mtodo. Entretanto, suficiente descobrir o tamanho da
chave k e analisar blocos de k caracteres no texto, verificando a frequncia de repetio dos
caracteres.

4.1 - Substituio Monoalfabtica
Cada letra do texto original trocada por outra de acordo com uma tabela e
com sua posio no texto. A Substituio de Csar um exemplo de substituio
monoalfabtica que consiste em trocar cada letra por outra que est 3 letras adiante
na ordem alfabtica. Ex: A=D. Pode-se usar outros valores ao invs de 3, o que
constitui a chave de ciframento. Existem apenas 26 chaves, por isso um mtodo
que visa proteger textos com pequeno grau de sigilo.

4.2 - Substituio por Deslocamentos
A chave indica quantas posies deve-se avanar no alfabeto para substituir
cada letra. Diferente da substituio de Csar, as letras no so trocadas sempre por
uma letra n posies a frente no alfabeto. Ex: Chave:020813, A primeira letra
trocada pela letra que est 2 posies a frente no alfabeto, a segunda pela que est 8
posies a frente, e assim por diante, repetindo a chave se necessrio. (P AI=RIV).

4.3 - Substituio Monofnica
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
22
Como a anterior, mas agora cada caracter pode ser mapeado para um ou
vrios caracteres na mensagem cifrada. Isso evita a linearidade da substituio.


4.4 - Substituio Polialfabtica
A combinao no uso de vrias substituies monoalfabticas, usadas em
rotao de acordo com um critrio ou chave. Por exemplo, poderiam ser utilizadas 4
tabelas, usadas em alternncia a cada 4 caracteres. Substituio por Polgramos:
utiliza grupo de caracteres ao invs de um caracter individual. Se fossem
considerados trigramas, por exemplo, ABA poderia ser substitudo por RTQ ou
KXS,

5 - Cifras de Transposio
Troca-se a posio dos caracteres na mensagem. Por exemplo, pode-se rescrever o
texto percorrendo-o por colunas. Ou ento definir o tamanho para um vetor de trocas e
tambm uma ordem em que as trocas sero feitas. Pode-se usar chave para isso. Ex: em um
vetor de tamanho 6 pode-se trocar o primeiro caracter pelo terceiro, o segundo pelo quinto e
o quarto pelo sexto.Se a frequncia dos caracteres for a mesma do idioma, temos
substituio por transposio. Se for diferente, temos por substituio.Tambm possvel
combinar substituio e transposio, ou vice-versa.

6 - Mquinas de Cifragem
Um cdigo trabalha com grupos de caracteres de tamanho varivel, ao contrrio da
cifra. Cada palavra substituida por outra. Quebrar um cdigo equivale a quebrar uma
gigantesca substituio monoalfabtica onde as unidades so as palavras e no os
caracteres. Para isso deve-se usar a gramtica da lngua e analisar a estrutura das frases.
Mquinas de cifragem baseiam-se em engrenagens que tem tamanhos diferentes e que
giram a velocidades diferentes, obtendo um substituio polialfabtica com chave de 26n,
onde n o nmero de engrenagens.

Chaves secretas

Funes Unidirecionais
Podemos dizer que uma uma funo unidirecional se for vivel comput-la e
computacionalmente invivel computar a sua inversa. Imagine que temos dois nmeros
primos da ordem de 10 exp lOO: multiplic-los uma questo de segundos com a
tecnologia atual, no entanto, dado o seu produto da ordem de 10 exp 200, o melhor
algoritmo conhecido leva hoje l bilho de anos para fatorar o produto dado. Assim a funo
produto de dois primos unidirecional. Uma funcao unidirecional com segredo se existe
uma informao que torna a computao da sua inversa possvel. A funao produto de dois
primos unidirecional sem segredo.
H casos em que uma funo unidirecional sem segredo til, um exemplo tpico
na proteo de senhas, apresenta as senhas cifradas por uma funo unidirecional sem
segredo (e de invivel deciframento). Quando o usurio inicia sua sesso, fornece a senha
que ento ciftada e comparada com a senha cifrada armazenada. Desta maneira, exige-se
apenas a integridade do arquivo de senhas, no mais exigindo controle de acesso ao
arquivo.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
23
Ao selecionar uma funo unidirecional como funo de ciframento, o projetista
deve supor que:
o algoritmo de ciframento de domnio pblico;
o espio, atravs de escuta, tem acesso ao texto cifrado.
Diz-se ento que a criptoanlise de texto cifrado conhecido.

Protocolo para a Distribuio de Chaves Secretas
Quando se adota o mtodo de chaves secretas, recomendvel no utilizar por
muito tempo a mesma. Quando ideal a cada nova sesso uma nova chave seja
estabelecida. Mas como estabelecer a chave ao incio de cada sesso? Como evitar as
escutas? Cifrar a mensagem? Com que chave? Aqui apresenta-se uma soluo para ilustrar
o conceito de funes unidirecionais. A funo a ser usada a exponencial mdulo de um
nmero, isto , dados os inteiros 'a', 'x' e 'n', seja ~x)=aAx mod n (n>O, x>=O). Assim, ftx)
o resto da diviso de aAx por n. O clculo desta funo vivel. O procedimento abaixo
mostra uma maneira de calcular esta funo :
Procedimento expomod (a,x,n,r:inteiro); {r possui o resultado da funo}
declare y, c : tipo inteiro
inicio
r:= l;
y:=x;
c:=a mod n;

enquanto y>O faa inicio
se mpar(y) ento
r=r*c mod n;
y=y div 2;
C=C 2 mod n;
fim;
fim;
Suponha que dois usurios A e B desejam manter uma conversa sigilosa atravs de chave
secreta. As duas partes escolheram um nmero primo grande , p' da ordem de 10A 100, e j
concordaram tambm em utilizar uma base , a'. Preferivelmente deve ser uma raiz primitiva
de p, de modo que ffx)=aAx mod p uma b~eo sobre o conjunto 1..p-l dos naturais x tais
que l<=x<=p-l. Para iniciar o estabelecimento da chave, A gera ao acaso um expoente x no
intervalo 1..p- l e B gera outro, y Usando expomod, A calcula ffx) e B ffy). Ento A envia
pela rede ffx) e B envia ffy). De posse de y e ffx), B calcula, usando
expomod :
K = [(ffx)]Ay mod p = (aAx mod p)Ay mod p = aA(xy) mod p = K.
Da mesma forma, A usa expomod e de posse de x e ffy) calcula:
k = [(ffy)]AX mod p = (aAy mod p)AX mod p = aA(xy) mod p - - K.
Assim A e B chegam a um nmero comum K, que ser a chave de ciframento para
as mensagens.
Suponha um espio bem informado que obtenha os valores de a e p e, atravs de
escuta, os valores de f(f(x)) e de f(f(y)). Para determinar K, ele precisa determinar a funo
logaritmo mdulo p, que intratvel. Mesmo A no capaz de determinar o valor de y e B
o valor de x. A funo expomod unidirecional sem segredo, permite a A e B trocarem
uma chave secreta utilizando a prpria rede.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
24

Assinatura Digital
Nos sistemas com chave pblica, qualquer pessoa pode cifrar uma mensagem, mas
somente o destinatrio da mensagem pode decifr-la. Invertendo-se o uso das chaves
podemos ter uma que s pode ser cifrada por uma pessoa e decifrada por qualquer um,
obtendo-se assim umefeito de personalizao do documento, semelhante a uma assinatura.
Um sistema desse tipo denominado assinatura digital. Assim para personalizar uma
mensagem, um determinado usurio A codifica uma mensagem utilizando sua chave
secreta e a envia para o destinatrio. Somente a chave pblica de A permitir a
decodificao sua chave secreta e a envia para o da mensagem, portanto a prova de que A
enviou a mensagem. A mensagem assim pode ser decodificada por qualquer um que tenha
a chave pblica de A. Para garantir o sigilo deve-se a primeira utilizando a prpria chave
secreta (para fazer a criptografia duas vezes a mensagem: a chave pblica do destinatrio,
para que somente este possa ler a mensagem.
Propriedades
1 - a assinatura autntica: quando um usurio usa a chave pblica de A para decifrar uma
mensagem, ele confirma que foi A e somente A quem enviou a mensagem;
2 - a assinatura no pode ser forjada: somente A conhece sua chave secreta:
3 - o documento assinado no pode ser alterado : se houver qualquer alterao no texto
criptografado este no poder ser restaurado com o uso da chave pblica de A;
4 - a assinatura no reutilizvel: a assinatura uma funo do documento e no pode ser
transferida para outro documento;
5 - a assinatura no pode ser repudiada: o usurio B no precisa de nenhuma ajuda de A
para reconhecer sua assinatura e A no pode negar ter assinado o documento.


Certificado digital
Certificado de Identidade Digital, tambm conhecido como Certificado Digital,
associa a identidade de um titular a um par de chaves eletrnicas (uma pblica e outra
privada) que, usadas em conjunto, fomecem a comprovao da identidade. uma verso
eletrnica (digital) de algo parecido a uma Cdula de Identidade - serve como prova de
identidade, reconhecida diante de qualquer situao onde seja necessria a comprovao de
identidade. Certificado Digital pode ser usado em uma grande variedade de aplicaes,
como comrcio eletrnico, groupware (Intranet's e Internet) e transferncia eletrnica de
fundos (veja o exemplo recente do Banco Bradesco S.A. na implantao do seu servio
Internet - o BradescoNet). Dessa forma, um cliente que compre em um shopping virtual,
utilizando um Servidor Seguro, solicitar o Certificado de Identidade Digital deste Servidor
para verificar, a identidade do vendedor e o contedo do Certificado por ele apresentado.
De forma inversa, o servidor poder solicitar ao comprador seu Certificado de Identidade
Digital, para identific-lo com segurana e preciso. Caso qualquer um dos dois apresente
um Certificado de Identidade Digital adulterado, ele ser avisado do fato, e a comunicao
com segurana no ser estabelecida. O Certificado de Identidade Digital emitido e
assinado (chancelado) por uma Autoridade Certificadora Digital(Certificate Authority),
como a Thawte (certificadora da ArtNET), que emite o Certificado. Para tanto, esta
autoridade usa as mais avanadas tcnicas de criptografia disponveis e de padres
internacionais (norma ISO X.509 para Certitncados Digitais), para a emisso e chancela
digital dos Certificados de Identidade Digital.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
25
Um certificado contem trs elementos:

1 - Informao de atributo
Esta a informao sobre o objeto que certificado. No caso de uma pessoa, isto
pode incluir seu nome, nacionalidade e endereo e-mail, sua organizao e o departamento
desta organizao onde trabalha.
2 - Chave de informao pblica
Esta a chave pblicada entidade certificada. O certificado atua para associar a
chave pblica informao de atributo, descrita acima. A chave pblica pode ser qualquer
chave assimtrica, mas usualmente uma chave RSA.
3 - Assinatura da Autoridade em Certificao (CA)
A CA assina os dois primeiros elementos e, ento, adiciona credibilidade ao
certificado.Quem recebe o certificado verifica a assinatura e acreditar na informao de
atributo e chave pblicaassociadas se acreditar na Autoridade em Certificao.

Selo Cronolgico Digital
O Servico de Selo Cronolgico Digital gera selos cronolgicos que associam a data
e a hora a um documento digital em uma forma de criptografia forte. O selo cronolgico
digital pode ser usado futuramente para provar que um documento eletrnico existia na data
alegada por seu selo cronolgico.
Por exemplo, um fsico que tenha uma idia brilhante pode descrev-la usando um
processador de textos e selar este documento com o selo cronolgico digital.O selo
cronolgico e o documento, juntos, podem mais tarde comprovar que este cientista o
merecedor do Prmio Nobel, mesmo que um rival publique essa idia primeiro.
Exemplo de uso do sistema: suponha que Paulo assine um documento e queira sel-
lo cronologicamente. Ele calcula o resumo da mensagem usando uma funo de hashing
seguro e, ento, envia este resumo (no o documento) para o DTS, que enviar de volta um
seio cronolgico digital consistindo do resumo da mensagem, da data e da hora em que foi
recebida pelo DTS e da assinatura do DTS. Como o resumo da mensagem no revela
qualquer informao a respeito do contedo do documento, o DTS no tem condies de
saber o contedo do documento que recebeu o selo cronolgico digital. Mais tarde, Paulo
pode apresentar o documento e o selo cronolgico, juntos, para provar a data em que este
foi escrito. Aquele que vai comprovar a autenticidade do documento calcula o resumo da
mensagem, verifica se as mensagens calculada e apresentada so iguais, e observa ento a
assinatura do DTS no selo cronolgico. Para ser confivel, o selo cronolgico no pode ser
falsificvel. Considere os requisitos para um DTS como descrito a seguir.
O DTS deve ser proprietrio de uma chave longa (1.024 bits), se este desejar que os
selos cronolgicos sejam seguros por muitas dcadas. A chave privativa do DTS deve ser
armazenada em um local de mxima segurana, como, por exemplo, um cofre inviolvel
em um local seguro. A data e a hora vm de um relgio que no possa ser alterado, (NIST)
Deve ser impossvel criar selos cronolgicos sem usar um mecanismo que s aceite este
relgio.
O uso do DTS parece ser extremamente importante, se no essencial, para manter a
validade de documentos atravs dos anos. Suponha um contrato de leasing de vinte anos
entre um proprietrio de terras e um arrendatrio. As chaves pblicas usadas para assinar o
contrato expiram aps um ano. Solues, como reafirmar as chaves ou reassinar o contrato
a cada ano, com novas chaves, requerem a cooperao de ambas as partes durante vrios
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
26
anos enquanto durar o contrato. Se uma das partes se torna insatisfeita com o contrato, ela
pode recusar-se a cooperar. A soluo registrar o contrato com o DTS na data da primeira
assinatura deste. Ambas as partes recebem ento uma cpia do selo cronolgico, que pode
ser usada anos mais tarde para comprovar a autenticidade do contrato original.
No futuro, o provvel que o DTS ser usado para tudo, desde a assinatura de
contratos a longo prazo at dirios pessoais e cartas. Hoje, se um historiador descobrir
algum manuscrito e atribu-lo a um escritor famoso (j falecido), sua autenticidade poder
ser comprovada por meios fsicos. Mas, se um achado semelhante ocorrer adqui a 100 anos,
provavelmente ser em arquivos de computador (disquetes ou fitas). Talvez a nica forma
de comprovar sua autenticidade seja atravs do selo cronolgico digital.

Site seguro
Um site seguro constitudo por programas de computador que so executados em
um servidor seguro para atender solicitaes feitas pelos usurios finais, atravs de seus
prprios programas (clientes seguros). Dotado de caractersticas que tornam as transaes
eletrnicas confidenciais, mediante criptografia, o servidor seguro utiliza-se de um
protocolo especial de comunicao que o SSL ((" Secure Socket Layer" - desenvolvido
originalmente pela Netscape), que utiliza criptografia de chave assimtrica, tornando a
comunicao entre as partes virtualmente inviolvel. Desta forma, se houver interceptao
das informaes trafegadas entre o cliente e o servidor por parte de pessoas no
autorizadas, estas informaes sero de utilidade zero, j que seria necessrio o
conhecimento prvio das chaves privadas de criptografia.
Para que o sigilo e a inviolabilidade da comunicao realmente existam,
necessrio um Certificado de Identidade Digital vlido.

Formas de Pagamento Virtual
ara se comprar coisas pela internet necessrio arranjar uma forma adequada de
efectuar o pagamento. No mundo real existem muitas maneiras de de pagar: dinheiro,
cartes bancrios, cartes de crdito, cheque, senhas, etc... Da mesma forma na internet
foram criados vrios sistemas de pagamento.

Cartes de Crdito
Uma das primeiras formas de pagamento na internet foi o uso de cartes de crdito.
Trata-se de um sistema que j existe no mundo real, que usado por milhes de pessoas e
que permite efetuar compras em qualquer parte do mundo, desde que seja aceite pelo
comerciante. Existem vrios tipos de cartes, mas todos funcionam da mesma forma: o
possuidor do carto efetua um pagamento, as informaes do carto sao dadas e o dinheiro
movimentado do possuidor para o fornecedor dos servios.
Assim o seu uso na internet simples: basta ter um carto de crdito, este ser aceite
pelo fornecedor de servios e enviar informaes sobre o carto para o fornecedor. O
problema reside em questes de segurana : como garantir que o comprador mesmo o
dono do carto? Para contornar este obstculo existem vrias formas. Uns usam sistemas de
criptografia e autorizaao do carto online. Outros preferem o uso da confirmao pelo
telefone ou e-mail.

Dinheiro Virtual
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
27
Como pagar para quem no possui ou no gosta de usar cartes de crdito? A
resposta reside no dinheiro virtual. O dinheiro foi uma invenco espantosa pois antes todo
sistema comercial se baseava em trocas. Para obter um bem era necessrio troc-lo por
outro bem, o que tinha e nmeros inconvenientes. No entanto o dinheiro s tem valor
porque se lhe reconhecido esse valor (pelo estado, entidades bancrias, ...). No incio
muitas pessoas prefiriam continuar com o sistema de trocas. Levou algum tempo para que
os mais precavidos reconhececem o valor do dinheiro. Foram as vantagens deste (menor
peso e volume) assim como uma interveno por parte da entidade emissora que
conduziram ao seu uso generalisado .
A criao de dinheiro virtual torna-se o passo seguinte nesta evoluo financeira. O
dinheiro virtual tem muitas vantagens: no ocupa espao, no tem custos de emisso , no
se desgasta e no se pode perder Mas para ser bem sucedido o dinheiro virtual precisa de
ser seguro, rpido e simples de usar vrios sistemas de dinheiro virtual foram criados, cada
um tem as suas vantagens e no claro qual ser aceito. Como exemplo destes sistemas
temos o NetCash, o Netbill, o Netchex, o Netcheque, o Netmarket e o Magic Money.

ecash
De momento o candidato mais provvel o ecash da empresa holandesa Digicash.
Existe um banco emissor que d o ecash aos utilizadores em troca de dinheiro real. O
utilizador gasta quanto ecash quiser. Mais tarde o fornecedor de servios pode trocar o
ecash (se o quiser) depois (no tal banco) por dinheiro. Mais tarde o fomecedor de O
dinheiro real. Em cada transao so usadas assinaturas digitais pblicas para manter
segurana. software cliente, usado pelos clientes para encriptar a transao, gratuito e
garante anonimato.Somente as lojas e servios participantes tm de pagar uma pequena
taxa e declarar todas transaes (para evitar fugas ao fisco ou lavagem de dinheiro). Devido
a ser um sistema simples o ecash tem bastantes probabilidades de ser bem sucedido.

NetCheque
O NetCheque, desenvolvido pela Universidade da Califrnia do Sul , usa-se da
mesma forma que os cheques tradicionais. Os NetCheques so e-mails assinados pelo
pagador autorizado com uma assinatura eletrnica (cdigo criptogrfico) e enviados para o
receptor. Este processo protegido pelo sistema de kerberos. A assinatura do utilizador cria
o cheque enquanto que o endosso da pessoa a quem se paga o transforma numa ordem para
o computador do banco.

LETSystem
Trata-se de um sistema mais ambicioso e complexo. Funciona na base de dinheiro
local, tipos de unidades monetrias vagas e usadas em certas comunidades. Como exemplo
desta unidades temos o Stroud, xxxx e pedras. Um utilizador nunca passa a dever dinheiro
mas fica antes comprometido, i.e., devendo um servio comunidade. Este tipo de sistema
depende bastante da confiana de todos que o usam.


PGP
PGP um criptsistema hbrido que combina algortmos de chaves pblicas
(assimtricas) com algortmos convencionais (simtricos), com a vantagem de utilizar a
velocidade da criptografia convencional e a seguranca da criptografia por chaves pblicas.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
28
As chaves pblicas so mantidas em arquivos que contm a identificao do usurio (i.e. o
nome da pessoa), a hora (timestamp) da gerao do par de chaves e as chaves propriamente
ditas. So usados dois arquivos (key rings) diferentes, um para chaves pblicas e outro para
as secretas, que podem conter uma ou mais chaves cada um.
As chaves pblicas so internamente referenciadas por uma Key JD, que uma
abreviao dessa chave (os 64 bits menos significativos). Enquanto muitas chaves podem
ter a mesma identificao do usurio (User JD), nenhuma chave pode ter a mesma Key JD.
PGP faz uso de "message digest para realizar as assinaturas. "Message digest o nome que
se d a um conjunto de 128 bits fortemente cifrados, funo da mensagem. algo anlogo
ao checksum ou ao CRC, que um cdigo verificador de erros, e representa
compactamente a mensagem, usada para detectar mudanas em seu contedo.
Diferentemente do CRC, entretanto, computacionalmente impraticvel a qualquer pessoa
descobrir uma outra mensagem que produza uma mesma " message digest", que ainda
criptografada pela chave secreta para formar a assinatura digital.
Os documentos so autenticados por um prefixo que contm o Key JD da chave
secreta que foi usada para assin-lo, o " message digest" do documento devidamente
criptografado pela chave secreta doremetente e a hora (timestamp) de quando foi realizada
a assinatura. O Key ID utilizado pelo destinatrio para relacion-lo com a chave
pblicado remetente, afim de checar a assinatura. O software automaticamente procura a
chave pblica e a identificao do usurio remetente no arquivo de chaves pblicas.
Arquivos cifrados so prefixados pelo Key ID da chave pblica usada para cifr-la.
O receptor usa essa informao para relacionar a correspondente chave secreta que decifra
a mensagem. Da mesma forma, o software do destinatrio automaticamente localiza essa
chave secreta no arquivo de chaves secretas.Esses dois tipos de arquivos so o principal
mtodo de armazenamento e gerenciamento das chaves pblicas e privadas.


Vulnerabilidades
Nenhum sistema de segurana impenetrvel. PGP pode ser enganado de vrias
formas diferentes. Em qualquer sistema de segurana, temos que nos perguntar se a
informao que escondemos mais valiosa para um eventual agressor do que o custo que
este teria para burlar o sistema de proteo. Isto ajudaria a nos proteger de ataques de baixo
custo sem nos preocuparmos com meios mais sofisticados e caros de espionagem.

l - Comprometimento da passphrase e chave secreta:
Provavelmente o modo mais simples de quebrar o sistema escrever em algum
lugar sua passphrase. Se algum a achar e tambm conseguir copiar seu arquivo de chave
secreta, pode tranquilamente ler suas mensagens e enviar outras tantas com a sua
assinatura, fazendo com que todos pensem que foi voc o autor das tais mensagens.
No usar passwords simples que possam ser facilmente descobertas como os nomes
de esposa ou filhos j ajuda. Se voc fizer de sua passphrase uma nica palavra (tornando-
se uma pas,S.word), ela poder ser descoberta por um computador que teste todas as
palavras do dicionrio. Por isso uma passphrase melhor do que uma password claro que
um agressor mais sofisticado poderia ter em seu computador um banco de dados com frases
famosas para tentar achar sua passphrase. Uma passphrase fcil de lembrar e difcil de se
descobrir poderia ser construda por alguns dizeres criativos sem sentido algum ou
referncias literrias obscuras.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
29

2 - Falsificao da chave pblica:
Este pode ser o ponto mais vulnervel de um criptossistema de chave pblica,
principalmente porque a maioria dos novatos na rea no percebem a falsificao
imediatamente. Quando voc usar a chave pblicade de algum, esteja certo de que no foi
falsificada. S podemos confiar na chave pblica de uma pessoa se a obtivermos
diretamente dessa pessoa, ou se a recebemos em uma mensagem assinada por algum em
quem confiamos. Mantenha um controle fisico de seus arquivos de chave pblica e secreta,
mais preferivelmente em seu computador pessoal do que naqueles ligados em rede com
acesso remoto.Tenha sempre uma cpia de ambos os arquivos.

3 - Arquivos no apagados completamente do disco:
Outro problema potencial causado pelo modo de deleo de arquivos da maioria
dos sistemas operacionais. Quando voc criptografa um arquivo e apaga o texto original, o
sistema operacional no destri fisicamente o contedo do texto original. Ele apenas marca
que aqueles blocos foram apagados do disco, permitindo que esse espao seja reutilizado
posteriormente. Esses blocos marcados ainda contm o texto original que queramos
destruir, e que ser realmente apagado apenas quando outros dados forem gravados por
cima. Se o agressor tiver acesso aos blocos marcados antes que eles sejam regravados, ele
pode recuperar o texto original ou pelo menos parte dele, o que pode ser facilmente
realizado com programas especializados.
De fato isto poderia at acontecer acidentalmente, se por alguma razo alguma coisa
der errado na estrutura lgica de armazenamento de dados do disco e alguns arquivos forem
acidentalmente apagados ou corrompidos. Programas de recuperao podem ser utilizados
para tentar reaver os arquivos danificados, mas isto frequentemente faz com que arquivos
previamente deletados sejam ressucitados junto com os arquivos que realmente interessam.
Da, aquele arquivo confidencial que voc achava ter sumido para todo o sempre pode
reaparecer e ser lido pela pessoa que estava tentando consertar seu disco. Mesmo quando
voc est escrevendo sua mensagem com um processador de textos,o editor estar gerando
vrias cpias temporrias do seu texto no disco, apenas porque texto ele trabalha
internamente. Essas cpias temporrias so apagadas pelo prprio assim processador
quando o finalizamos, mas os seus fragmentos ficam no disco, em algum lugar.
A nica forma de se ter certeza que nossos textos originais no reaparecero de uma
hora pra outra, , de algum jeito, apagar fisicamente do disco o contedo da mensagem. A
menos que voc tenha certeza de que todos os blocos marcados como apagados sero
reutilizados brevemente, pode-se tomar providncias para reescrev-los, e assim, destruir
qualquer vestgio do texto sigiloso deixado pelo seu editor de textos favorito. Pode-se faz-
lo utilizando qualquer programa especializado disponvel no mercado, como por exemplo o
Norton Utilities para DOS (WIPEINFO.EXE).
Mesmo tomadas todas as providncias descritas acima, tavez ainda seja possvel
recuperar o conteUdo original do texto por algum cheio de recursos. Resduos magnticos
dos dados originais ficam no disco mesmo aps serem regravados. Algum hardware
sofisticado de recuperao de dados pode algumas vezes ter utilidade para reaver os dados
(mais a j demais).

4 - Vroses e Cavalo de Tria:
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
30
Outro tipo de ataque poderia envolver um vrus especial que infectaria o PGP ou o
seu sistema operacional. Este vrus hipottico seria projetado para capturar sua passphrase
ou chave secreta, e grav-la em algum arquivo no disco ou envi-la via rede para o
'proprietrio' do referido vrus. Ele poderia at alterar o comportamento do PGP para que as
assinaturas no sejam checadas corretamente, por exemplo.
Defender-se desse tipo de ataque nada mais do que evitar contaminao por virus
em geral. PGP no tem defesas contra vrus, ele assume que a sua mquina est livre de
vermes, o que pode ser pelo menos tentado por verses atualizadas de produtos anti-vrus
disponveis no mercado. Se por acaso um vrus especial contra PGP aparecer, esperamos
que todos tomemos conhecimento logo.
Outra forma de espionagem envolveria uma cpia do PGP parecida visualmente
com a original, mas alterada para que no ftlncionasse a contento. Por exemplo, algum
poderia deliberadamente alter-lo para que no checasse as assinaturas corretamente,
permitindo a falsificao das mesmas. Esta verso tipo "Cavalo de Tria" no seria difcil
de ser desenvolvida, pois o cdigo fonte do PGP amplamente divulgado. Para evitar tais
problemas, deve-se confiar na fonte de onde foi adquirida a cpia do PGP, ou peg-la de
vrias fontes independentes e compar-las com um utilitrio destinado para esse fim.

5 - Falha de segurana fsica:
Uma descuido do prprio usurio poderia permitir a algum adquirir seus arquivos
originais ou mensagens impressas. Um oponente determinado poderia utilizar meios tais
como roubo, vasculhamento de lixo, sequestro, suborno, chantagem ou infiltrao entre os
funcionrios.
No se iluda com a falsa sensao de segurana s porque voc tem uma ferramenta
de criptografia. As tcnicas criptogrficas protegem a informao somente quando elas
esto criptografadas, violaes fisicas de segurana podem compromet-las.

6 - Espionagem "Tempest".
Outra forma de espionagem tem sido utilizada por oponentes muito bem equipados
que conseguem detectar os sinais eletromagnticos emitidos pelo computador. Este tipo de
ataque caro e de intensa monitorao pode ser realizado por um caminho suprido da
maquinaria necessria, estacionado prximo ao seu local de trabalho e remotamente
captando todos os seus toques de teclado, assim como os textos jogados na tela, podendo
comprometer seus passwords, mensagens, etc. Este tipo de ataque, conhecido como
tempest, poderia ser evitado blindando-se computadores e cabos de rede, de modo que
esses sinais no sejam mais emitidos.

7 - Anlise de trfico :
Mesmo que no seja possvel ler o contedo das mensagens criptografadas, alguma
informao til ainda poderia ser deduzida observando-se de onde as mensagens chegam e
para onde elas vo, o tamanho das mesmas e a hora em que foram enviadas. a mesma
coisa que olhar para uma conta telefnica de longa distncia e ver para onde voc ligou,
quando e por quanto tempo ficou conversando, mesmo que o contedo da conversa seja
desconhecido para um possvel espio. A isto chamamos de anlise de trfico. Para resolver
este tipo de problema, precisaramos de protocolos de comunicao especialmente
desenvolvidos para reduzir exposio dessas anlises, possivelmente com alguma
assistncia criptogrfica.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
31

8 - Exposio em sistemas multi-usurio:
PGP foi originalmente projetado para rodar em mquinas MSDOS mono-usurias,
sob seu controle fsico direto. Mas agora exitem verses do PGP que tambm rodam em
sistemas multi-usurios como UNIX e VAXlVMS. Nesses sistemas, os riscos de
descobrirem seus passwords, chaves secretas ou mensagens so maiores. Um intruso
esperto o suficiente ou o prprio administrador de rede poderiam ter acesso aos seus
arquivos originais, ou talvez utilizar-se de algum programinha especial para monitorar
constantemente a digitao ou ver o que est aparecendo em sua tela. Os riscos reais de
segurana dependem de cada situao em particular Alguns sistemas multi-usurios podem
ser considerados seguros porque todos os usurios so confiveis, ou porque no h
interesse suficiente em espionar algum. De qualquer modo, recomenda-se rodar o PGP de
uma mquina isolada, em um sistema mono-usurio, diretamente sob seu controle fsico.

Sistemas Criptogrficos baseados em Curvas Elpticas

Introduo

Em 1985, Koblitz [1] e Miller [2] sugeriram, independentemente, que curvas
elpticas poderiam ser usadas para esquemas de criptografia de chave pblica. Desde ento
um grande esforo tem sido feito em busca de caminhos que tornem eficiente a sua
computao. A matemtica associada a curvas elpticas, entretanto, mais antiga. H mais
de 100 anos esta matria vem sendo estudada em teoria dos nmeros e geometria algbrica.
Pretende-se, neste trabalho, abordar, de maneira introdutria, sistemas baseados em curvas
elpticas e demonstrar que estes sistemas proporcionam blocos de tamanho relativamente
pequenos, permitem implementaes em hardware e software de alta velocidade e oferecem
a maior resistncia a ataques por bit de chave (strength-per-key-bit) dentre os esquemas
conhecidos de chave pblica.

Curvas Elpticas sobre Nmeros Reais
Para melhor entendimento do conceito matemtico das curvas elpticas, iniciemos
nosso estudo no campo dos reais. A equao abaixo mostra a forma de Weierstrass de
uma curva elptica:
(1)
As variveis x e y situam-se no plano. Na verdade, x e y podem ser complexos,
reais, inteiros, base polinomial, base cannica ou qualquer outro tipo de elemento de corpo.
Mas, consideremos nmeros reais sobre o plano dos reais, que nos mais familiar. Uma
forma simples da equao (1) :
(2)
Como exemplo, vamos representar o grfico da curva para a
4
= -7, a
6
= 5 com x e y
no conjunto dos nmeros reais:
nmeros reais:
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
32




Figura 1 - Grfico da curva elptica y
2
=x
3
-7x+5
Nossa inteno definir uma lgebra para curvas elpticas. Assim, devemos
encontrar uma maneira de definir adio de dois pontos da curva, cuja soma seja outro
ponto da curva. Alm disso, devemos definir o elemento identidade da soma O, ponto que
somado com qualquer outro da curva, resulte no prprio ponto:
P + O = P (3)
Este ponto tambm chamado de ponto no infinito.
Para a lgebra funcionar, o negativo do ponto de interseo definido como a
soma elptica (veja figura 2). Matematicamente:
R = P + Q(4)




Figura 2 Adio de pontos de uma curva elptica sobre nmeros reais
Adicionar um ponto a ele mesmo um caso especial. A linha usada a tangente curva no
ponto considerado.


Curvas Elpticas sobre Corpos Finitos Primos

C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
33


Para utilizao em criptografia interessa-nos estudar a matemtica de curvas
elpticas aplicadas a corpos finitos. Analisaremos, inicialmente, corpos finitos gerados por
grandes primos. Ou seja, analisaremos curvas elpticas sobre Zp, p primo maior que 3.
Uma curva elptica E sobre Zp pode ser definida pela mesma equao (2) estudada
no item anterior:

onde a
4
, a
6
Zp e 4a
4
3
+ 27a
6
2
0. O conjunto E(Zp) composto, ento, por todos os
pontos (x,y), xZp, yZp, que satisfazem a equao de definio, juntamente com o ponto
no infinito O.
Por exemplo: seja p = 23 e considere a curva elptica E: y
2
= x
3
+ x + 1, definida
sobre Z
23
. Note que 4a
4
3
+ 27a
6
2
= 4 + 4 = 8 0, ento E uma curva elptica. Os pontos
em E(Z

23
) so O e os seguintes:
(0, 1) (0, 22) (1, 7) (1, 16) (3, 10) (3, 13) (4, 0) (5, 4) (5, 19)
(6, 4) (6, 19) (7, 11) (7, 12) (9, 7) (9, 16) (11, 3) (11, 20) (12, 4)
(12, 19) (13, 7) (13, 16) (17, 3) (17, 20) (18, 3) (18, 20) (19, 5) (19, 18)
Vejamos a regra para adicionar dois pontos em uma curva elptica E(Zp) para
resultar em um terceiro ponto da curva. Junto com esta operao de adio, o conjunto de
pontos E(Zp) forma um grupo, com O servindo como sua identidade. este grupo que
utilizado na construo de sistemas de criptografia baseados em curvas elpticas. A regra de
adio apresentada abaixo como uma seqncia de frmulas algbricas:


1. P + O = O + P = P para todo P E(Zp)
2. Se P = (x, y) E(Zp), ento (x, y) + (x, -y) =O. (O ponto (x, -y) representado por
P e chamado negativo de P. Observe que P , tambm, um ponto na curva.)
3. Seja P = (x
1
,y
1
) E(Zp) e Q = (x
2
,y
2
) E(Zp), onde P -Q. Ento P + Q = (x
3
,y
3
),
onde:
(5)
(6)
e







C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
34

(7)
(8)

Vamos ver um exemplo de adio de curva elptica. Considere a curva elptica
definida no exemplo anterior.
1. Seja P = (3, 10) e Q = (9, 7). Ento P + Q = (x
3
, y
3
) calculado como segue:

x
3
= 112 - 3 - 9 = 6 - 3 - 9 = -6 17 (mod 23), e
y
3
= 11(3 - (-6)) -10 = 11(9) -10 = 89 20 (mod 23).
Portanto, P + Q = (17,20).

2. Seja P = (3,10). Ento 2P = P + P = (x
3
, y
3
) calculado como segue:


x
3
= 62 - 6 = 30 7 (mod 23), e
y
3
= 6 (3 -7) -10 = -24 -10 = -11 12 (mod 23).
Portanto, 2P = (7,12).

Curvas Elpticas sobre Corpos Finitos de Caracterstica Dois.


Os corpos finitos de caracterstica dois, GF(2
m
), interessam especialmente, pois
permitem implementaes eficientes da aritmtica de curvas elpticas. Neste caso, as
constantes so nmeros de base polinomial ou cannica. No podemos, neste caso, utilizar
a verso simplificada da equao (1).
Menezes [3] afirma que necessrio uma das duas verses abaixo:
(9)
(10)

A equao (9) da forma supersingular e, embora possa ser computada
rapidamente, suas propriedades no a tornam indicadas para o uso em criptografia.
As curvas da equao (10) so chamadas nonsupersingular. No existe nenhum mtodo
de ataque conhecido de complexidade menor que exponencial para estas curvas.
Certamente, a escolha dos coeficientes fundamental, a fim de que se obtenha a mxima
vantagem da segurana.
Para que a equao (10) seja vlida, a
6
precisa ser diferente de 0. Contudo, a
2
pode ser 0.
Valem aqui as mesmas regras de adio vistas para corpos primos. As frmulas, contudo,
so um pouco diferentes para adio de dois pontos sobre GF(2
n
), segundo Schroeppel et
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
35
al.[4]:

Se P Q:


(12)
(13)
(11)





Se P = Q:

(14)
(15)
(16)



Multiplicao sobre Curvas Elpticas
A multiplicao sobre curvas elpticas se refere, ao contrrio da idia intuitiva de se
multiplicar dois pontos da curva, ao produto de um escalar por um ponto da curva:
Q = kP (17)
Onde Q e P so pontos sobre uma curva elptica e k um inteiro. O que a multiplicao
realmente significa a soma de Pa ele mesmo k vezes. Como a prpria curva elptica isto
, os pontos sobre ela forma um corpo, o inteiro k no deve ser maior que a ordem do
ponto P. Caso no se saiba a ordem do ponto, o clculo no ser to eficiente quanto
poderia ser.
Exemplo: suponha que desejamos calcular Q = 15P. Podemos expandir como:
Q = 15P = P + 2(P + 2(P + 2P))
Observe que este o mesmo algoritmo utilizado para exponenciao modular.
Outro mtodo para o clculo da multiplicao a expanso balanceada, proposta
por Koblitz [5]. O algoritmo converte uma string de bits 1 em uma string de bits 0
seguido de 1. Por exemplo, calculemos Q = 15P:

15P = (16-1)P
11112P = (1000-1)2P
Q = (2P)2 * 2 * 2 - P
Temos, assim cinco operaes, ao invs de seis, como no caso anterior.
Outro exemplo: Q = 10045P = 100111001111012P. O ltimo bit na cadeia de 1
substitudo por 1, todos os outros bits so substitudos por 0 e o primeiro 0
substitudo por 1. Assim, a representao balanceada fica:
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
36
10100-101000-101
Q = (((((2P * 2 + P)2 * 2 * 2 P)2 * 2 + P)2 * 2 * 2 *2 P)2 * 2 + P

Ordem da Curva
O nmero de pontos de uma curva elptica sobre um corpo finito deve satisfazer o
teorema de Hasse. Dado um campo, GF(q), a ordem da curva N dever satisfazer esta
equao:
(18)
Ou, de outra forma:
(19)
Ento, o nmero de pontos de uma curva , aproximadamente, o tamanho do corpo.

Criptografia
Uma vez introduzida a matemtica de curvas elpticas sobre corpos finitos,
analisaremos como aplic-la criptografia. A idia bsica para a implementao de
sistemas de criptografia de chaves secretas e pblicas converter dados em pontos da
curva.
Duas questes fundamentais a serem respondidas por quem pretende utilizar curvas
elpticas em criptografia so:
Quantos bits so necessrios?
Quanto trabalho deve ser realizado?
A deciso sobre a primeira questo determina quanto tempo se leva para computar
uma chave secreta de curva elptica. Pode-se considerar, de forma emprica, que o tempo da
computao proporcional ao cubo do nmero de bits. Assim, se dobrarmos o nmero de
bits, levaremos, aproximadamente, 8 vezes mais tempo calculando.

Escolha da Curva
A segunda deciso determina como deve ser escolhida a curva elptica. O primeiro
passo certificar-se de que h mais bits no corpo finito que o comprimento dos dados que
desejamos esconder. Para a mxima segurana, uma boa prtica tomar-se 2,5 vezes a
quantidade de bits que se deseja embutir. O fator 2 vem da habilidade de se quebrar curvas
elpticas usando a raiz quadrada da ordem do ponto base. O fator 0,5 deve ser usado se no
se conhece a ordem do ponto base. Por exemplo, suponha que queiramos usar uma chave
secreta de 64 bits. O tamanho de corpo mais prximo para uma base cannica estaria entre
130 e 148 bits.
Como foi citado anteriormente, devem ser evitadas curvas supersingulares porque o
problema do logaritmo discreto pode ser reduzido ao problema do logaritmo discreto sobre
um corpo extenso de grau menor.
J vimos, da equao (10), que uma curva nonsupersingular tem a forma:

para corpos GF(2
n
). Quando a
2
diferente de zero, a curva chamada twist. Por exemplo
y
2
+ xy = x
3
+ x
2
+ 1, onde corpos de tamanho 101, 107, 109, 113 e 163 tem ordem 2 vezes
um primo muito grande. Para uma curva "nontwist", por exemplo y
2
+ xy = x
3
+ 1, os
corpos 103, 107 e 131 todos tem ordem 4 vezes um primo muito grande. As tabelas 1 e 2, a
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
37
seguir, apresentam a lista de fatores para estas curvas. O smbolo#E representa a ordem de
uma curva elptica.













Tamanho
do Corpo
#E
101 2 x 1 26765 06002 28230 88614 28085 08011
107 2 x 81 12963 84146 06692 18285 10322 12511
109 2 x 324 51855 36584 26701 4874486564 61467
113 2 x 5192 29685 85348 27627 89670 38334 67507
163
2 x 5846 00654 93236 11672 81474 17535 98448
34832 91185 74063

Tabela 1 E: y
2
+ xy = x
3
+ x
2
+ 1

Tamanho
do Corpo
#E
103 4 x 2 53530 12004 56459 53586 25300 67069
107 4 x 40 56481 92073 03335 60436 34890 37809
131
4 x 6805 64733 84187 69269 32320 12949 34099
85129

Tabela 2 E: y
2
+ xy = x
3
+ 1

Para se obter alta segurana, curvas de ordem conhecida e de difcil ataque, como as
apresentadas, so necessrias. Para uma segurana moderada, entretanto, curvas aleatrias
so perfeitamente adequadas.

Embutindo Dados numa Curva
Antes de computarmos somas e multiplicaes sobre curvas elpticas, precisamos
colocar os dados sobre a curva. Se tomarmos valores aleatoriamente, devemos nos certificar
que o valor de x que tomamos satisfaz, de fato, a equao da curva. Vamos reescrever a
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
38
equao (10), convertendo o lado direito para uma forma simples, f(x), e trazendo-o para o
lado esquerdo:
(20)
Esta uma equao quadrtica simples. O primeiro passo para resolv-la eliminar
x. Seja y = xz na equao (20). Isto nos d:
(21)
Multiplicando a equao por x
-2
, temos:

(22)
onde c = f(x).x
-2
. A equao (22) tem soluo quando o Trao de c 0. A funo Trao
mapeia GF(2
m
)emGF(2). O resultado um bit. Ela definida por:

(23)
Por exemplo, seja c = 10110 em GF(25).
Logo,
Tr(10110) = 10110 + 01101 +11010 + 10101 + 01011
A operao XOR de todas as colunas d o mesmo resultado:

Tr(10110) = 1
Uma vez que o Tr(c) = 0, podemos resolver a equao para z. Conhecidoz, temos
que z+1 tambm uma soluo para a equao (22). Ento, colocando z ez+1na equaoy
= zx teremos as duas solues para a equao quadrtica e os dados estaro embutidos na
curva. Com os dados na curva podemos comear a manipular estes dados de uma forma
significativa, sob o ponto de vista criptogrfico. Vamos ressaltar novamente que o conjunto
de dados que desejamos embutir na curva precisa ter menos bits que o tamanho do corpo
para assegurar a escolha de valores x, tal que esses valores estejam na curva

Sistemas Criptogrficos baseados em Curvas Elpticas
Protocolos
Koblitz [6] sugere o uso de curvas elpticas em trs protocolos de chave pblica:
Diffie-Hellman, ElGamal e Massey-Omura. Analisaremos os dois primeiros. Em seguida,
analisaremos o uso de curvas elpticas para assinatura digital, usando DSA.

Protocolo Diffie-Hellman
Sejam os usurios Alexandre e Bia, que desejam compartilhar um parmetro
secreto. Ambos devem escolher sua chave secreta que ser usada como modelo de bits
aleatrios sobre um corpo de tamanho mutuamente combinado. Seja k
A
a chave de
Alexandre e k
B
a chave de Bia. Eles, primeiramente, devem combinar o uso de uma curva
especfica, de um tamanho de corpo e a base matemtica (polinomial ou cannica). A curva
elptica deve satisfazer a equao (10). Eles ainda devem escolher um ponto base B comum,
sobre a curva combinada. Bia, ento, computa:
P
B
= k
B
B (24)
sobre a curva elptica escolhida e envia para Alexandre. Alexandre computa:
P
A
= k
A
B (25)
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
39
e envia para Bia. Ambos, ento, computam o parmetro secreto:
PS = k
A
(k
B
B) = k
B
(k
A
B) (26)
Por questo de segurana, apenas o valor de x obtido e um bit do valor de y so
utilizados, uma vez que podemos obter y atravs da soluo da equao quadrtica vista
anteriormente.
Cada lado, ento, possuir o mesmo parmetro secreto e ningum que estiver
ouvindo a comunicao ser capaz de conhecer este parmetro, sem resolver o problema do
logaritmo discreto da curva elptica.
O problema com Diffie-Hellman o ataque chamado de man-in-the-middle.
Suponha que Melo consiga interceptar toda a comunicao entre Alexandre e Bia. Ele,
ento, pega a chave pblica de Bia por um lado e de Alexandre pelo outro e manda sua
prpria chave pblica para ambos. Nem Bia nem Alexandre so capazes de perceber a
intercepo, uma vez que eles conseguem cifrar e decifrar normalmente as mensagens.
Melo decifra os dados vindos de Alexandre com o parmetro secreto que compartilha com
o mesmo, e depois cifra-os novamente usando o parmetro que compartilha com Bia,
enviando os dados para ela. Obviamente, Melo pode alterar os dados da maneira que quiser
antes de retransmit-los.

Protocolo ElGamal
A verso de curva elptica de ElGamal requer que sejam pblicos o tamanho de
corpo, a base matemtica (polinomial ou cannica), a curva elptica E que satisfaa a
equao (10) e um ponto base B sobre a curva. Tanto Alexandre quanto Bia escolhem
aleatoriamente um modelo de bits k
A
ek
B
, respectivamente, e calculam suas chaves pblicas:
P
A
= k
A
B (27)
P
B
= k
B
B (28)
Cada um envia sua chave pblica ao outro. Agora, Alexandre e Bia podem enviar
mensagens um ao outro usando esses pontos pblicos, de tal forma que ningum pode
descobrir os dados sem resolver o problema do logaritmo discreto para curvas elpticas.
Para que Alexandre mande uma mensagem para Bia, ele primeiro embute a informao da
mensagem na curva elptica E, usando o mtodo de converso mostrado anteriormente.
Vamos chamar este ponto da mensagem P
m
. Alexandre, ento, escolhe um modelo aleatrio
de bits, r, e computa dois pontos:
P
r
= rB (29)
P
h
= P
m
+ rB (30)
Alexandre envia, ento, ambos os pontos P
r
eP
h
para Bia. Para extrair o ponto
mensagem, Bia computa:
P
s
= k
B
P
r
(31)
E subtrai este de P
h
:
P
m
= P
h
- P
s
(32)
Vamos expandir esta ltima equao para ver como ela funciona. Na equao (30),
o segundo termo do lado direito pode ser expandido usando a equao (28):

rP
B
= r(k
B
B) (33)
O termo P
h
na equao (32) , na verdade:

P
h
= P
m
+ r(k
B
B) (34)
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
40
Colocando a equao (29) na equao (31) para expandirP
S
, e combinando esta com
a equao (34) na equao (32), temos:
P
m
= P
m
+ r(k
B
B) - k
B
(rB) = P
m
(35)
Os nicos pontos que o atacante v so P
h
, P
A
, P
B
eP
r
. O interessante deste protocolo
que as chaves pblicas podem permanecer pblicas. No h necessidade troc-las. Toda
vez que os dados so transferidos, um novo valor aleatrio r escolhido. Nenhum dos lados
precisa lembrar de r, e, se o tamanho do corpo for suficientemente grande, ser bastante
difcil descobrir os nmeros secretos k
A
ek
B
. Isto nos fornece tanto compartilhamento do
parmetro secreto quanto autenticao.
O ataque do Melo (man-in-the-middle) ainda possvel. A maneira mais segura
de evitar este tipo de ataque pela verificao da chave pblica atravs de um canal
alternativo, como um telefone.

Assinatura Digital
Analisaremos, agora, um esquema de assinatura digital, que a verso para curvas
elpticas do DSA (Digital Signature Algorithm).
Seja P um ponto base com ordem n na curva E, que satisfaz a equao (10).
Chamaremos a chave privada do assinante s e a chave pblica Q = sP. Tomemos um valor
aleatrio k e um ponto aleatrio R = kP. Gera-se uma funo hash e a partir da mensagem,
tal que e seja menor que n. O primeiro passo do DSA tomar a componente x de R mdulo
a ordem da curva para pegar o primeiro componente da assinatura:
c = x mod-n (36)
O segundo componente computado como:
d = k
-1
(e+sc) (37)
O processo de verificao requer o clculo de trs valores depois de computar o
valor hash da mensagem (chamado e):
h = d
-1
mod-n (38)
h
1
= eh mod-n (39)
h
2
= ch mod-n (40)
Estes valores so usados para computar um ponto sobre a curva elptica pblica com a
frmula:
R = h
1
P + h
2
Q (41)
Se a componente x da equao (41) no for igual ao da equao (36), assumimos
que a mensagem diferente do documento original assinado. Vamos entender a razo. A
equao (38) pode ser reescrita com a equao (37):

h = k(e+sc)
-1
(42)
Assim, as equaes (39) e (40) expandem-se para:

h
1
= ek(e+sc)
-1
(43)
h
2
= ck(e+sc)
-1
(44)
Colocando os termos expandidos na equao (41):

R = ek(e+sc)
-1
P + sck(e+sc)
-1
P (45)
R = k(e+sc)(e+sc)
-1
P (46)
Os fatores do meio s sero cancelados se o valor hash da mensagem original, a chave do
assinante e a assinatura publicada estiverem corretos.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
41
Sistemas Criptogrficos baseados em Curvas Elpticas

Aspectos de Segurana
A base para a segurana de sistemas criptogrficos baseados em curvas elpticas a
aparente intratabilidade do problema do logaritmo discreto de curvas elpticas, que pode
ser resumido da seguinte forma: dada uma curva elptica E definida sobre um corpo finito,
um ponto P da curva de ordem n, e um pontoQ, determine o inteiro k, 0 k n-1, tal que
Q = kP.

Nos ltimos 12 anos, o problema de logaritmos discretos de curvas elpticas tem
recebido considervel ateno de matemticos no mundo inteiro, e nenhum fraqueza
significativa foi relatada. Um algoritmo devido a Pohlig e Hellman reduz a determinao de
k determinao de k mdulo cada um dos fatores primos de n. Logo, para se obter o
mximo nvel de segurana,ndeve ser primo.
O melhor algoritmo para quebrar os protocolos baseados em curvas elpticas,
segundo Jurisic e Menezes [7], em geral, o mtodo rho de Pollard que leva,
aproximadamente, passos, onde um passo significa uma adio de curva elptica.
Em 1993, Oorschot e Wiener [8] mostraram como o mtodo rho de Pollard pode ser
distribudo em paralelo, tal que, se r processadores forem usados, o nmero esperado de
passos por cada processador antes de um nico logaritmo discreto ser obtido
(47)
Em seu trabalho, eles estimam que um atacante (bem financiado), considerando n
10

36
2
120
, precisaria de uma mquina com 325.000 processadores (a um custo de US$10
milhes poca) para computar um nico logaritmo discreto em 35 dias.
Comparemos, agora, a complexidade de algoritmos para quebra da chave.
Algoritmos baseados em fatorao de inteiros, como o RSA, tem ataques bem conhecidos.
O problema bsico para este tipo de criptografia de chave pblica se encontrar dois
primos grandes (p eq), cujo produto seja um inteiro grande N. O tempo necessrio para
fatorar este tipo de nmero :
(48)
Isto ocorre para um mtodo em particular (por sinal, usando curvas elpticas). Pode
haver mtodos mais rpidos, em funo do tamanho de N. Mas, de maneira geral, podemos
considerar o problema da fatorao com complexidade:
(49)
Sua complexidade recai, assim, na classificao de sub-exponencial.
Sistemas criptogrficos baseados em curvas elpticas usam pontos ou pares de
nmeros para esconder a informao. A idia bsica que se tenha um nmero total de
pontos disponveis (m) bastante grande. O tempo necessrio para encontrar um particular
ponto , aproximadamente, o seguinte:
(50)
Este tempo completamente exponencial.
O resultado que, segundo Rosing [9], embora a comparao no seja trivial, a
quantidade de bits que um sistema usando curvas elpticas necessita, para ser compatvel
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
42
com o RSA 1024 bits, est abaixo de 200 bits. Assim, apesar de precisar de dois elementos
de 200 bits para representar cada ponto, a quantidade de hardware necessria para se atingir
o mesmo nvel de segurana menor que o necessrio para o mesmo nvel de segurana
usando mtodos de fatorao de inteiros.

Referncias Bibliogrficas

[1] KOBLITZ, N. Elliptic Curve Cryptosystems. Mathematics of Computation (1987).

[2] MILLER, V. S. Use of Elliptic Curves in Cryptography em CRYPTO85. (New York:
Springer-Verlag,1986).

[3] MENEZES, A. J. Elliptic Curve Public Key Cryptosystems. (Boston: Kluwer Academic
Publishers, 1993).

[4] SCHROEPEL, R.; ORMAN, H.; OMALLY, S. Fast Key Exchange with Elliptic Curve
Systems. (Tucson, AZ: University of Arizona, Computer Sciences Department, 1995).

[5] KOBLITZ, N. CM Curves with Good Cryptographic Properties em CRYPTO91
(New York: Springer-Verlag, 1992).

[6] KOBLITZ, N. A Course in Number Theory and Cryptography. (New York: Springer-
Verlag, 1987).

[7] JURISIC, A.; MENEZES, A. J. Elliptic Curves and Cryptography. (Ontario: Certicom
White Paper em http://www.certicom.ca/ecc/weccrypt.htm, 1997).

[8] OORSCHOT, P. van; WIENER, M. Parallel Collision Search with Cryptanalytic
Applications. (Journal of Cryptography, 1993).

[9] ROSING, M. Implementing Elliptic Curve Cryptography. (Greenwich: Manning, 1998).
















C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
43
Bibliografias

Advances in Cryptology EUROCRYPT 94, Perugia, Italy. Springer-Verlag LNCS
950 (1995).
Editor: A. De Santis

M. Bellare, P. Rogaway, Optimal asymmetric encryption, 92111.
E. Biham, On Matsuis linear cryptanalysis, 341355.
E. Biham, A. Biryukov, An improvement of Davies attack on DES, 461467.
C. Blundo, A. Cresti, Space requirements for broadcast encryption, 287298.
C. Blundo, A. Giorgio Gaggia, D.R. Stinson, On the dealers randomness required in secret
sharing schemes,
3546.
M. Burmester, Y. Desmedt, A secure and efficient conference key distribution system,
275286.
C. Cachin, U.M. Maurer, Linking information reconciliation and privacy amplification,
266274.
J.L. Camenisch, J.-M. Piveteau, M.A. Stadler, Blind signatures based on the discrete
logarithm problem,
428432.
F. Chabaud, On the security of some cryptosystems based on error-correcting codes, 131
139.
F. Chabaud, S. Vaudenay, Links between differential and linear cryptanalysis, 356365.
C. Charnes, L. OConnor, J. Pieprzyk, R. Safavi-Naini, Y. Zheng, Comments on Soviet
encryption algorithm,
433438.
D. Chaum, Designated confirmer signatures, 8691.
L. Chen, I.B. Damgard, T.P. Pedersen, Parallel divertibility of proofs of knowledge, 140
155.
L. Chen, T.P. Pedersen, New group signature schemes, 171181.
L. Csirmaz, The size of a share must be large, 1322.
S. DAmiano, G. Di Crescenzo, Methodology for digital money based on general
cryptographic tools,
156170.
F. Damm, F.-P. Heider, G. Wambach, MIMD-factorisation on hypercubes, 400409.
P. de Rooij, Efficient exponentiation using precomputation and vector addition chains,
389399.
T. Eng, T. Okamoto, Single-term divisible electronic coins, 306319.
M. Franklin, M. Yung, The blinding of weak signatures, 6776.

Advances in Cryptology EUROCRYPT 95, Saint-Malo, France. Springer-Verlag
LNCS 921 (1995).
Editors: L.C. Guillou and J.-J. Quisquater

P. Beguin, A. Cresti, General short computational secret sharing schemes, 194208.
J. Bierbrauer, r s
-codes from universal hash classes, 311318.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
44
S. Brands, Restrictive blinding of secret-key certificates, 231247.
L. Chen, T.P. Pedersen, On the efficiency of group signatures providing information-
theoretic anonymity,
3949.
C. Crepeau, L. Salvail, Quantum oblivious mutual identification, 133146.
S. DAmiano, G. Di Crescenzo, Anonymous NIZK proofs of knowledge with
preprocessing, 413416.
Y. Desmedt, Securing traceability of ciphertexts Towards a secure software key escrow
system, 147157.
G. Di Crescenzo, Recycling random bits in composed perfect zero-knowledge, 367381.
M.K. Franklin, M.K. Reiter, Verifiable signature sharing, 5063.
C. Gehrmann, Secure multiround authentication protocols, 158167.
R. Gennaro, S. Micali, Verifiable secret sharing as secure computation, 168182.
J.D. Golic, Towards fast correlation attacks on irregularly clocked shift registers, 248262.
C. Harpes, G.G. Kramer, J.L. Massey, Ageneralization of linear cryptanalysis and the
applicability of Matsuis
piling-up lemma, 2438.
W.-A. Jackson, K.M. Martin, C.M. OKeefe, Efficient secret sharing without a mutually
trusted authority,
183193.

Journal of Cryptology papers

Journal of Cryptology papers (Volume 1 No.1 Volume 9 No.3, 1988-1996)
M. Abadi, J. Feigenbaum, Secure circuit evaluation, 2 (1990), 112.
C. Adams, S. Tavares, The structured design of cryptographically good S-Boxes, 3 (1990),
2741.
G.B. Agnew, T. Beth, R.C. Mullin, S.A. Vanstone, Arithmetic operations in
.7._.:.#...
, 6 (1993), 313.
G.B. Agnew, R.C. Mullin, I.M. Onyszchuk, S.A. Vanstone, An implementation for a fast
public-key cryptosystem,
3 (1991), 6379.
P. Beauchemin, G. Brassard, A generalization of Hellmans extension to Shannons
approach to cryptography,
1 (1988), 129131.
P. Beauchemin, G. Brassard, C. Crepeau, C. Goutier, C. Pomerance, The generation of
random numbers
that are probably prime, 1 (1988), 5364.
D. Beaver, Secure multiparty protocols and zero-knowledge proof systems tolerating a
faulty minority, 4
(1991), 75122.
M. Bellare, M. Yung, Certifying permutations: noninteractive zero-knowledge based on
any trapdoor permutation,
9 (1996), 149166.
I. Ben-Aroya, E. Biham, Differential cryptanalysis of Lucifer, 9 (1996), 2134.
C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS
UNIVERSIDADE FEDERAL DO PARAN MESTRADO EM TELECOMUNICAES
45
S. Bengio, G. Brassard, Y.G. Desmedt, C. Goutier, J.-J. Quisquater, Secure implementation
of identification
systems, 4 (1991), 175183.
C.H. Bennett, F. Bessette, G. Brassard, L. Salvail, J. Smolin, Experimental quantum
cryptography, 5
(1992), 328.
E. Biham, New types of cryptanalytic attacks using related keys, 7 (1994), 229246.
E. Biham, A. Shamir, Differential cryptanalysis of DES-like cryptosystems, 4 (1991), 372.
S. Blackburn, S. Murphy, J. Stern, The cryptanalysis of a public-key implementation of
finite group mappings,
8 (1995), 157166.
C. Blundo, A. De Santis, D.R. Stinson, U. Vaccaro, Graph decompositions and secret
sharing schemes, 8
(1995), 3964.
J. Boyar, Inferring sequences produced by a linear congruential generator missing low-
order bits, 1 (1989),
177184.
J. Boyar, K. Friedl, C. Lund, Practical zero-knowledge proofs: Giving hints and using
deficiencies, 4
(1991), 185206.
J. Boyar, C. Lund, R. Peralta, On the communication complexity of zero-knowledge proofs,
6 (1993), 65
85.
J.F. Boyar, S.A. Kurtz, M.W. Krentel, A discrete logarithm implementation of perfect zero-
knowledge
blobs, 2 (1990), 6376.
E.F. Brickell, D.M. Davenport, On the classification of ideal secret sharing schemes, 4
(1991), 123134.
E.F. Brickell, K.S. McCurley, An interactive identification scheme based on discrete
logarithms and factoring,
5 (1992), 2939.
E.F. Brickell, D.R. Stinson, Some improved bounds on the information rate of perfect
secret sharing schemes,
5 (1992), 153166.
J. Buchmann, H.C. Williams, A key-exchange system based on imaginary quadratic fields,
1 (1988), 107
118.









C.H- CICERO HILDENBERG berg@eng.eletr.ufpr.br TE-727 C. DE DADOS