Criptografia II
Problemas de segurança
As técnicas clássicas de criptografia são inseguras
porque não supunham a existência de computadores
nas mãos dos criptoanalistas.
Além do mais, o segredo das técnicas clássicas
estavam nos algoritmos, que eram secretos, não nas
chaves.
“A segurança de um criptossistema não deve da
manutenção de um criptoalgoritmo em segredo. A
segurança depende apenas de manter em segredo a
chave” – Auguste Kerckhoff
Porquê não usar algoritmos secretos?
Nunca na história da criptografia alguém foi capaz de
manter um algoritmo em segredo.
Como o cliente irá comprar algo sem que vejam o que
estão comprando?
O fato de um algoritmo ser secreto não garante que ela
seja seguro.
Algoritmos publicamente conhecidos são mais seguros.
 Grandes mentes se esforçam para encontrar defeitos
em sistemas criptográficos públicos.
Criptografia de chave Simétrica
Mesma chave utilizada para cifrar é utilizada para
decifrar a mensagem.
O principal desafio deste método é garantir que ninguém
mais saiba esta chave além do transmissor e receptor.
Criptografia de chave Simétrica
A geração, transmissão e armazenamento de chaves é
denominado Gerência de Chaves.
O grande segredo da criptografia simétrica é o sigilo a
respeito da chave criptográfica que foi utilizada.
 Daí a denominação de Criptografia de chave secreta.
Por sua vez, a grande vantagem da criptografia de chave
secreta é que ela é muito mais rápida que a criptografia
de chave pública.
DES - Data Encryption Standard
O Primeiro método moderno foi proposto em meados da
década de 70, conhecido como D.E.S.
A IBM criou o primeiro rascunho do algoritmo,
chamando-o de LUCIFER.
Adotado como padrão nos Estados Unidos em 1977.
 Seu funcionamento básico consiste na criptografia de
blocos de 64 bits de entrada com uma chave de 56 bits,
gerando blocos de 64 bits como saída.
 Para obter o texto original novamente, reverte-se o
processo usando a mesma chave.
DES - Data Encryption Standard
 Devido ao pequeno tamanho da chave, esse algoritmo já não é
considerado seguro, pois ele poderia ser quebrado com “certa
facilidade” pela força bruta, ou seja, pelo teste de todas as chaves
existentes até que se ache aquela que foi usada para criptografar o
documento.
 Outro ponto que gera certa apreensão é o fato de existirem blocos
internos ao DES cujo critério de arquitetura não foi explicitado, levando
muitos a crer que existiriam falhas internas não reveladas pelo autor.
A figura a seguir mostra um esquema genérico do funcionamento do DES. O
texto cifrado é gerado a partir de 16 interações entre as permutações do texto
inicial e da chave.
DES - Data Encryption Standard
DES - Data Encryption Standard
O diagrama de como são feitas as interações do algoritmo é mostrado a seguir:
Primeiramente o texto plano foi dividido em
dois blocos de 32 bits
É feita uma expansão e, em seguida, uma
permutação no bloco da direita.
Após este passo, é feito um XOR entre um
subproduto da chave, e os dados
permutados anteriormente.
Logo depois, é feita uma nova permutação,
segundo uma outra tabela, que juntamente
com o bloco da direita entrará em um novo
XOR, resultando no bloco da direita final
A chave que será utilizada na operação XOR
passa antes também por processos de
rotação e permutação.
DES - Data Encryption Standard
Decifragem do DES
A decifragem consiste de um processo semelhante ao da cifragem. Para se obter o
dado decriptografado, basta que se façam as interações utilizando as chaves com
ordem invertida, ou seja, partindo da 16a chave na primeira interação, e assim em
diante, até chegar na décima sexta interação com a 1a chave.
DES - Data Encryption Standard
Por muitos anos, esse criptossistema foi o padrão de
criptografia no Estados Unidos e era usado em todo o
mundo.
Hoje, o DES é considerado inseguro, apesar de permitir
cerca de 72 quadrilhões de combinações.
 Isto se deve principalmente a pequena chave de 56-bit,
que foi quebrada por "força bruta" em 1997 em um
desafio lançado na Internet..
3DES
Uma maneira encontrada pelos especialistas de se
aumentar a segurança ao utilizar o DES é usar o 3DES.
O Triplo DES é um padrão de criptografia baseado no
algoritmo de criptografia DES, porém utiliza 3 ou 2
chaves de 64 bits.
3DES
Os dados são encriptados em três ciframentos
sucessivos.
Isto faz do 3DES ser mais lento que o DES
original, mas oferece maior segurança.
AES
Numa proposta de substituir o DES, os E.U.A promoveu
uma competição que durou 4 anos para que fosse feito
um algoritmo de criptografia robusto.
Em 2001 o AES foi adotada pelo governo dos Estados
Unidos como padrão de criptografia simétrica.
O AES suporta tamanhos de chave e bloco variando
entre 128, 160, 192, 224 e 256 bits.
É um protocolo mais rápido que o 3DES.
Criptografia Simétrica - protocolos
Outros protocolos de criptografia simétrica são o IDEA,
Blowfish, RC-4, RC-5, RC-6....
Diffie-Hellman
Diffie-Hellman é um método de
criptografia desenvolvido por Whitfield
Diffie e Martin Hellman.
Até 1975 se alguém falasse em trocar
informações criptografadas entre 2
partes, sem que houvesse uma troca de
chaves secretas entre ambas seria
tachado de maluco.
Mas em 1976, a partir de profundo
desenvolvimento da teoria dos números,
o algoritmo Diffie-Hellman foi inventado.
Diffie-Hellman
Criptografia de chave Assimétrica
A criptografia de chave pública ou assimétrica é um
método de criptografia que utiliza um par de chaves:
 uma chave pública e uma chave privada.
A chave pública é distribuída livremente para todos os
correspondentes via e-mail ou outras formas.
A chave privada deve ser conhecida apenas pelo seu
dono.
Criptografia de chave Assimétrica
Num algoritmo de criptografia assimétrica, uma
mensagem cifrada com a chave pública pode somente
ser decifrada pela sua chave privada correspondente.
Passo 1: Alice envia sua chave pública para
Bob.
Passo 2: Bob cifra a mensagem com a chave
pública de Alice e envia para Alice, que recebe
e decifra o texto utilizando sua chave privada.
Criptografia de chave Assimétrica
Os algoritmos de chave pública podem ser utilizados
para autenticidade e confidencialidade.
Para confidencialidade, a chave pública é usada para
cifrar mensagens.
 Com isso apenas o dono da chave privada pode decifrá-la.
Para autenticidade, a chave privada é usada para cifrar
mensagens
 com isso garante-se que apenas o dono da chave privada
poderia ter cifrado a mensagem que foi decifrada com a
'chave pública'.
Criptografia de chave Assimétrica
A principal vantagem da criptografia baseada em chave
pública é a sua maior segurança em relação a
criptografia baseada em chave secreta.
 No sistema baseado em chave pública as chaves privadas
nunca precisam ser transmitidas ou recebidas a ninguém.
 Assim a chave não será interceptada por um intruso.
Porém....
 O método de chave pública é muito mais lento na cifragem
do que o método de criptografia simétrica. (60 a 70 vezes +
lento)
RSA
RSA é um algoritmo de criptografia de chave pública , que
leva o nome dos 3 professores do Instituto MIT que
inventaram este algoritmo.
Ron
Rivest
Len
Adleman
Adi
Shamir
RSA
O RSA é a mais bem sucedida implementação de
sistemas de chaves assimétricas, e fundamenta-se em
teorias clássicas dos números.
É considerado o algoritmo de criptografia mais seguro,
já que mandou por terra todas tentativas de quebrá-lo.
Fonte: Wikipedia
RSA
1.º Passo
Escolher dois números primos grandes (100 dígitos),
sendo eles associados às letras A e B.
A=3
2.º Passo
B = 11
Calcula-se:
Usaremos números
mais simples para
facilitar o entendimento
n=A*B
n = 3 * 11
z = (A-1) * (B-1)
z = (3-1) * (11-1)
n = 33
z = 20
RSA
3.º Passo
Escolher um número primo em relação a z.
Chamaremos de d.
4.º Passo
d=7
Foi escolhido o número 7
porque não existem fatores
comuns entre 7 e 20.
Encontrar um número e através da
seguinte fórmula:
(e * d) mod z = 1
Substituindo d e z pelos valores que já
temos:
(e * 7) mod 20 = 1
e=3
RSA
Pronto, já temos os valores das chaves pública e privada!
Ambas as chaves são compostas de dois valores:
Chave Pública: valores “e” e “n”
Chave Privada: valores “d” e “n”
Para cifrar o a mensagem usamos:
Texto Criptografado = Texto Original ^ e mod n
Para decifrar o a mensagem:
Texto Original = Texto cifrado ^ d mod n
RSA
Exemplo
Texto Original = 4
Texto Criptografado = 4 ^ e mod n
Texto Criptografado = 4 ^ 3 mod 33
Texto Criptografado = 31
Texto Criptografado 4
Texto Original = 31 ^ d mod n
Texto Original = 31 ^ 7 mod 33
Texto Original = 4
RSA – mais robusto
O desafio dos números primos.
A partir da análise do conteúdo das chaves, tem-se previamente conhecido o valor de n.
Sabe-se que o “n” é resultante do produto de dois números primos.
Chave Pública: valores “e” e “n”
Chave Privada: valores “d” e “n”
Se encontrarmos os dois primos que geraram “n”, repetindo as operações anteriores
poderíamos chegar também ao valor de “d” na chave privada
Deste modo, a segurança do processo reside na facilidade ou dificuldade com que
podemos fatorar “n” ou em outras palavras, identificar quais os dois números primos que
multiplicados um pelo outro resultam exatamente no valor de “n”.
RSA – mais robusto
O desafio dos números primos.
Parece fácil, mas com dois números com muitos algarismos esta tarefa torna-se
extremamente complexa.
A RSA lançou inclusive desafios com prémios em dinheiro para quem descobrir A
e B primos, tal que o seu produto resulte no número n. O número n ficou
inclusive conhecido como número RSA.
O detalhe é que n tem de 100 (RSA-100 / 330bits) a 617 (RSA-2048 / 2048 bits)
algarismos.
RSA – mais robusto
O desafio dos números primos.
Alguém se habilita a encontrar os dois números primos cujos valores
multiplicados resultam no RSA-2048?
RSA-2048 =
25195908475657893494027183240048398571429282126204032027777137836043662020
70759555626401852588078440691829064124951508218929855914917618450280848912
00728449926873928072877767359714183472702618963750149718246911650776133798
59095700097330459748808428401797429100642458691817195118746121515172654632
28221686998754918242243363725908514186546204357679842338718477444792073993
42365848238242811981638150106748104516603773060562016196762561338441436038
33904414952634432190114657544454178424020924616515723350778707749817125772
46796292638635637328991215483143816789988504044536402352738195137863656439
1212010397122822120720357
Sistema Híbrido
Os dois tipos de Chaves (Simétrica e Assimétrica)
apresentam vantagens e desvantagens.
Idéia: combinar os pontos fortes dos dois sistemas:
 usar Criptografia Assimétrica para estabelecer uma
canal seguro e compartilhar em seguida uma chave
comum, chamada chave de sessão.
 usar Criptografia Simétrica para transferir dados,
usando um algoritmo de encripção convencional com a
chave de sessão com maior velocidade
Sistema Híbrido
Compensado o problema de segredo da chave simétrica e
a grande necessidade de processamento computacional
na chave assimétrica:
 As entidades são autenticadas utilizado a criptografia
assimétrica (mais robusta).
 Depois é acordado o uso de uma chave secreta para troca
de mensagens utilizando a criptografia simétrica.
 O algoritmo de chave pública garante que a negociação
foi realizada em um canal seguro, não havendo a
necessidade da troca periódica da chave.
 Todo o restante do processo pode passar a ser realizado
utilizando algoritmos de chave simétrica, o que diminui a
necessidade do poder computacional.
Aplicações com Criptografia Híbrida
• PGP
• SSL = Secure Socket Layer
– definido por Netscape, compatível com IE.
– https, cadeado no browser.
• SSH
– problema de telnet/rlogin: password na rede sem proteção
• IPSec
PGP - Pretty Good Privacy
O PGP (Muito Boa Privacidade) é um programa de
criptografia de chave pública altamente seguro.
Nos últimos anos o PGP conquistou milhares de
entusiastas em todo o mundo e tornou-se de fato um
padrão para a criptografia de correio eletrônico (email)
na Internet.
 O PGP pode, ainda, ser utilizado como um sistema à
prova de falsificações de assinaturas digitais permitindo,
desta forma, a comprovação de que arquivos ou e-mails
não foram modificados.
PGP - Pretty Good Privacy
O PGP foi originalmente escrito por Philip Zimmermann.
"Se todos os computadores pessoais no mundo (260 milhões) fossem colocados para trabalhar
em uma única mensagem codificada por PGP, ainda levaria um tempo estimado de 12 milhões
de vezes a idade do universo, em média, para quebrar uma única mensagem."
— William Crowell, Diretor Adjunto, Agência de Segurança Nacional ("National Security
Agency", NSA), 20 de março de 1997.
Download

d_Criptografia II