You are on page 1of 11

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

SETOR DE CINCIAS AGRRIAS E DE TECNOLOGIA


DEPARTAMENTO DE INFORMTICA





GUILHERMINO MARCOS SILVA AFONSO








CRIPTOGRAFIA











PONTA GROSSA
2014


GUILHERMINO MARCOS SILVA AFONSO











CRIPTOGRAFIA

Trabalho de pesquisa destinado
disciplina de Anlise de Algoritmos
como parte da avaliao do 1
bimestre.
Prof. Tatiana Montes Celinski.











PONTA GROSSA
2014


SUMRIO


1 INTRODUO..3
2 TIPOS DE CRIPTOGRAFIA...3
2.1 CRIPTOGRAFIA HASH.3
2.2 CHAVES SIMTRICAS.4
2.3 CHAVES ASSIMTRICAS5
2.4 COMBINAO DOS TIPOS.6
3 MD5.6
4 DES.7
5 RSA.8
6 CONSIDERAES FINAIS...10
7 REFERNCIAS10


















3

1. INTRODUO

Criptografia (do grego kryptos, oculto, e graphein, escrever) o nome dado
a um conjunto de regras que visa codificar a informao a de maneira que s o
emissor e o receptor consiga decifr-la.
A troca de informaes sigilosas uma prtica antiga, existente h
centenas de anos, e que at bem pouco tempo era predominante em meio aos
livros e documentos. O surgimento da internet e a facilidade que esta
proporciona de transmitir dados de maneira precisa e extremamente rpida fez
de tal prtica um recurso essencial para permitir que apenas emissor e receptor
obtenham acesso livre informao tratada.
A criptografia segue quatro princpios bsicos: confidencialidade,
autenticao, integridade da informao e no repudiabilidade (ou seja, o
remetente no pode negar o envio da informao).
Neste trabalho de pesquisa, abordaremos sobre algoritmos usados para
a criptografia, como: , de forma a complementar a disciplina de Anlise de
Algoritmos.


2. TIPOS DE CRIPTOGRAFIA


2.1. CRIPTOGRAFIA HASH

A criptografia hash permite que, atravs de uma string de qualquer
tamanho, seja calculado um identificador digital de tamanho fixo, chamado de
valor hash. O valor hash geralmente formado por 16 bytes (no caso do MD-2,
MD-4 e MD- 5) ou 20 bytes (no caso do SHA-1), mas pode se estender,
embora no passe de 512 bytes.
Seja uma funo hash H, e x uma string qualquer, teremos que H(x) ser o
valor hash para a string x.
As caractersticas bsicas de uma funo hash so:
O valor de entrada da funo possui qualquer tamanho;
O valor de sada da funo possui tamanho fixo;
H(x) relativamente fcil de ser computado, para qualquer valor de x;
H(x) uma funo one-way;
H(x) livre de coliso.
4

Uma funo hash dita one-way pois uma vez obtido o valor hash h para
uma string x, computacionalmente impossvel fazer o processo inverso, ou
seja, encontrar um valor x tal que H(x) = h.
Diz-se ainda que H(x) livre de coliso, significando que as
funes hash devem garantir uma probabilidade mnima de que duas strings
diferentes acabem por resultar no mesmo valor hash. Qualquer alterao na
string original que deu origem ao identificador digital, mesmo que de um nico
bit, acabar por gerar uma alterao significativa no valor hash final.

2.2. CHAVES SIMTRICAS

o tipo mais simples de criptografia, j que tanto o emissor quanto o
receptor da mensagem possuem a mesma chave, ou seja, a mesma chave
usada tanto na codificao quanto na decodificao.
Para ser realizada, basta que o emissor, antes de enviar a mensagem
criptografada, envie a chave privada que ser utilizada para descriptograf-la.
Fig. 1 Esquema de funcionamento das chaves simtricas.
Existem diversos algoritmos criptogrficos que fazem uso da Chave
Simtrica, tais como:
DES (Data Encryption Standard), criado pela IBM em 1977, usa
criptografia de 56 bits, o que corresponde a cerca de 72 quadrilhes de
chaves diferentes. Apesar de ser um valor bastante alto, foi quebrado
por em 1997 por fora bruta (tentativa e erro), em um desafio feito na
Internet.
DEA (Internacional Data Encryption Algorithm), criado em 1991 por
Massey e Xuejia Lai, utiliza chaves de 128 bits com uma estrutura
semelhante ao anteriormente citado DES, porm, possui uma
implementao mais simples.
RC (Rons Code ou Rivest Cipher), desenvolvido por Ron Rivest,
largamente utilizado em e- mails. Possui diversas verses (RC2, RC4,
RC5 e RC6), com chaves que vo de 8 1024 bits.
Podemos citar ainda o 3DES, o Twofish e o Blowfish, entre outros.
Porm, a Chave Simtrica apresenta alguns problemas graves, tais como a
necessidade da troca constante dessas chaves e a impossibilidade de serem
usados com fins de autentificao (j que a transmisso da chave privada de
5

um para o outro pode no ser segura e acabar caindo em outras mos), apesar
de seus algoritmos serem mais rpidos do que os algoritmos assimtricos.

2.3. CHAVES ASSIMTRICAS

Diferentemente do mtodo de Chave Simtrica, esse tipo utiliza duas
chaves, uma pblica e uma privada. O sistema funciona da forma que algum
cria uma chave e envia essa chave quem quiser mandar informaes ela,
essa a chamada chave pblica. Com ela feita a codificao da mensagem.
Para decodificao ser necessrio utilizar uma outra chave que deve ser
criada, a chave privada que secreta.

Fig. 2 - Na figura, a chave verde representa a chave pblica, enquanto a chave rosa representa
a chave privada.
Esse esquema de chaves pblica e privada atuando em conjunto funciona
muito bem, principalmente quando queremos garantir a confiabilidade nos
dados, j que somente o proprietrio da chave privada ser capaz de
descriptografar a mensagem e vice-versa (nem mesmo o dono da chave pode
descriptar a mensagem que ele encriptou, a no ser que ele possua a outra
chave), ou seja, mesma que ela caia em mos erradas, essa pessoa no ser
capaz de l-la.
Existem diversos algoritmos criptograficos que fazem uso da Chave
Simtrica, tais como:
RSA (Rivest, Chamir e Adleman), criado em 1977 por Ron Rivest, Adi
Shamir e Len Adleman, um dos algoritmos de chave assimtrica mais
utilizados. Seu funcionamento consiste na multiplicao de 2 nmeros
primos muito grandes para a gerao de um terceiro nmero. Para
quebrar essa cripografia, seria necessrio a fatorao desse nmero
para encontrar os 2 nmeros primos que o geraram, porm, para isso
necessrio um poder muito alto de processamento, o que acaba
inviabilizando a tarefa. A chave privada so os dois nmeros primos e a
pblica o terceiro nmero.
6

ElGamal, desenvolvido por Taher ElGamal, faz uso de um algoritmo
conhecido como logaritmo discreto para se tornar seguro. frequente
seu uso em assinaturas digitais.
Podemos citar ainda o DSS (Digital Signature Standard), entre outros.
Assim como a Chave Simtrica, a Assimtrica tambm tem seus problemas.
A utilizao de algoritmos reversos para desencriptao de mensagens acaba
por elevar o tempo computacional dos algoritmos de criptografia assimtrica,
tornando invivel o seu uso em uma comunicao intensa.

2.4. COMBINAO DOS TIPOS

Com os dois tipos de Chaves (Simtrica e Assimtrica) tendo suas
vantagens e desvantagens, era natural o surgimento um mtodo que buscasse
mixar as vantagens de cada um, eliminando assim, suas desvantagens.
Os protocolos TLS (Transport Layer Security) e SSL (Secure Sockets Layer)
so exemplos dessa combinao.
Para compensar o problema do segredo pr-estabelecido da chave
simtrica e o alto poder computacional necessrio na chave simtrica, foi
elaborado um meio onde em sua primeira etapa (handshake), seja utilizado a
criptografia assimtrica, autenticando assim os ns e combinando uma chave
secreta para um uso posterior na criptografia simtrica. Como o algoritmo de
chave pblica garante que a negociao foi realizada em um canal seguro, no
havendo a necessidade da troca peridica da chave (problemas no caso da
Chave Simtrica), todo o restante do processo pode passar a ser realizado
utilizando algoritmos de chave simtrica, o que diminui potencialmente a
necessidade do poder computacional, permitindo seu uso em uma
comunicao mais intensa (problemas encontrados na Chave Assimtrica).


3. MD5

O MD5 (Message-Digest algorithm 5) um algoritmo de hash de 128 bits
unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321,
e muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-
Peer, em ingls) na verificao de integridade de arquivos e logins.
Foi desenvolvido em 1991 por Ronald Rivest para suceder ao MD4 que
tinha alguns problemas de segurana. Por ser um algoritmo unidirecional, uma
hash md5 no pode ser transformada novamente no texto que lhe deu origem.
O mtodo de verificao , ento, feito pela comparao das duas hash (uma
da mensagem original confivel e outra da mensagem recebida). O MD5
tambm usado para verificar a integridade de um arquivo atravs, por
7

exemplo, do programa md5sum, que cria a hash de um arquivo. Isto pode-se
tornar muito til para downloads de arquivos grandes, para programas P2P que
constroem o arquivo atravs de pedaos e esto sujeitos a corrupo dos
mesmos. Como autenticao de login utilizada em vrios sistemas
operacionais unix e em muitos sites com autentificao.
Como o MD5 faz apenas uma passagem sobre os dados, se dois prefixos
com o mesmo hash forem construdos, um sufixo comum pode ser adicionado
a ambos para tornar uma coliso mais provvel. Deste modo possvel que
duas strings diferentes produzam o mesmo hash. O que no garante que a
partir de uma senha criptografada especfica consiga-se a senha original, mas
permite uma possibilidade de decifrar algumas senhas a partir de um conjunto
grande de senhas criptografadas.

4. DES

O Data Encryption Standard (DES) uma cifra (mtodo de criptografia)
selecionado como FIPS oficial (Federal Information Processing Standard) pelo
governo dos EUA em 1976 e que foi utilizado em larga escala
internacionalmente. O algoritmo era inicialmente controverso, com um pequeno
tamanho de chave e suspeitas de um backdoor da NSA. O DES foi estudado
academicamente e motivou os sistemas modernos de entendimento da
criptoanlise.
O DES um ciframento composto que cifra blocos de 64 bits (8 caracteres)
em blocos de 64 bits, para isso ele se utiliza de uma chave composta por 56
bits mais 8 bits de paridade (no total so 64 bits tambm). Assim, para cada
chave, o DES faz substituio monoalfabtica sobre um alfabeto de 264 (
1,8x1019) letras. A rigor, uma substituio monoalfabtica, mas as tcnicas
publicadas de quebra de substituies monoalfabticas se aplicam apenas a
alfabetos pequenos.
Basicamente o DES funciona atravs dos seguintes passos:
Uma substituio fixa, chamada de permutao inicial, de 64 bits em 64
bits;
Uma transformao, que depende de uma chave de 48 bits, e que
preserva a metade direita;
Uma troca das duas metades de 32 bits cada uma;
Repetem-se os passos 2 e 3 durante 16 vezes;
Inverso da permutao inicial.
Os blocos que constroem o algoritmo so permutaes, substituies e
operaes de ou exclusivo. As permutaes do DES so de trs tipos: na
primeira, os bits so simplesmente reordenados (straight permutation); na
segunda, alguns bits so duplicados e ento reordenados (expanded
permutation), aumentando assim o nmero de bits na sada; na terceira, alguns
8

bits so descartados para depois reordenar os restantes (permuted choice),
diminuindo os bits de sada.
As substituies no DES so conhecidas como S-boxes (Caixas S - caixas
de substituio) e so especificadas em 8 tabelas onde entram blocos de 6 e
saem blocos de 4 bits. O primeiro e o ltimo bit so tomados como se fossem
um nmero de 2 bits, formando assim as linhas das tabelas das caixas S. Os
bits 2 a 5 agrupados formam um vetor de 0 a 15.
Passa-se a ter, ento, uma tabela onde a primeira linha formada por
nmeros decimais que podem ser representados por 4 bits (os quatro bits do
meio dos 4 bits de entrada), e a primeira coluna formada por nmeros
decimais que possam ser representados em 2 bits (os bits dos extremos do
bloco de 6 bits de entrada). Para cada uma das caixas S, a combinao dos 4
bits do meio com os 2 bits das pontas fornecer 4 bits conforme a tabela da
caixa.

5. RSA

Dentre dos mtodos criptogrficos de chave pblica, o RSA o mais
conhecido e, atualmente, o mais usado, sobre todo em aplicaes comerciais.
Este sistema de criptografia muito til para o comercio eletrnico via Internet,
assim como para navegar nela, atravs do Netscape.
Esse mtodo foi inventado em 1978 por R. L. Rivest, A. Shamir e L.
Adleman, quando trabalhavam no Massachussets Institute of Technology
(M.I.T.).
O RSA, por ser um mtodo de chave pblica, permite que qualquer usurio
codifique mensagens, mas como a chave de decodificao secreta, s o
destinatrio legtimo poder decodific-la.
A impossibilidade de quebrar a chave de decodificao possvel pela no
existncia de algoritmos eficientes para a fatorao de inteiros em fatores
primos, sobre todo, se o nmero de algarismos 100 ou maior. O tempo de
codificao de uma mensagem praticamente desprezvel, mas o tempo de
decodificao pode tornar o processo invivel.
A chave de codificao do RSA esta constituda essencialmente por n = pq,
onde p e q so primos grandes e distintos. Temos que escolher um inteiro e de
forma que mdc((n); e) = 1 e 1 < e < (n). O par de inteiros n e e so feitos
pblicos.
Os nmeros primos podem ser testados, quanto a primariedade, atravs de
testes probabilsticos, e a escolha mais popular um nmero maior ou igual a
216 + 1 = 65537.
9

Cada letra do alfabeto colocada em correspondncia biunvoca com um
nmero de dois algarismos. Analogamente, ao espao entre as palavras
corresponde um nmero, tambm de dois algarismos, diferente dos demais.
Aps da pre-codificao, obtida uma sequncia de nmeros, a qual preciso
separar em blocos apropriadamente.
Denotaremos esses blocos por Mi, onde i = 1,2,,k. Para cada inteiro Mi,
relativamente primo com n, temos:
M
(n)
= 1(mod n). (1)
J que para cada primo p, temos (p) = p 1, segue, das propriedades da
funo totiente de Euler, que
(n) = (p) (q) = (p 1)(q 1).
O bloco codificado o resto da diviso M
e
i por n. Agora, devemos calcular
C(Mi), de forma que:
M
e
i C(Mi)(mod n). (2)
Para decifrar a mensagem necessrio encontrar um nmero d tal que
ed (mod (p 1)(q 1)). (3)
Para isso, basta resolvermos, atravs do Algoritmo Euclidiano, a equao

ed + y(n) = 1.

Aps determinar d, achamos o resto da diviso de C(Mi)
d
por n. Assim, de
(1), (2) e (3) segue que:

C(Mi)
d
(M
e
i)
d
Mi
1+(n)t
M(M
(n)
)
t
M(1
t
) M(mod n).




















10

6. CONSIDERAES FINAIS

Criptografia s pode ser considerada como tal se quatro princpios bsicos
forem seguidos e oferecidos: confidencialidade, autenticao, integridade da
informao e no repudiabilidade (o remetente no pode negar o envio da
informao). por isso que a criptografia um recurso to importante na
transmisso de informaes pela internet e, mesmo assim, no capaz de
garantir 100% de segurana, pois sempre existe algum que consegue
desenvolver uma maneira de quebrar uma codificao. Por isso que tcnicas
existentes so aperfeioadas e outras so criadas.

7. REFERNCIAS

Machado, Marlon G. TSL(Transport Layer Security), Cap.2 Criptografia
Bsica. Disponvel em: < http://www.gta.ufrj.br/grad/01_2/tls/toc2.htm>. Acesso
em: 21 abr. 2014.
Castell, Thiago. Vaz, Veronica Assinatura Digital, Cap.3 Tipos de
Criptografia. Disponvel em: < http://www.gta.ufrj.br/grad/07_1/ass-
dig/TiposdeCriptografia.html>. Acesso em: 21 abr. 2014.
Fiarresga, Victor M. C. Criptografia e Matemtica, Cap.4 Cifras. Disponvel
em:
<http://repositorio.ul.pt/bitstream/10451/3647/1/ulfc055857_tm_Victor_Fiarresg
a.pdf>. Acesso em: 21 abr. 2014.
Fleury, Andr M. Des(Data Encrypt Standard). Disponvel em: <
http://penta.ufrgs.br/gere96/segur2/des.htm>. Acesso em: 21 abr. 2014.
Silva, Elen V. P. Introduo Criptografia RSA. Disponvel em:
http://www.impa.br/opencms/pt/eventos/downloads/jornadas_2006/trabalhos/jor
nadas_elen_pereira.pdf>. Acesso em: 21 abr. 2014.