Você está na página 1de 50

Segurança de Informática

Criptografia
Levi Mota
Agenda
• Criptografia
• Base da Criptografia
• História da Criptografia
• Tipos de Criptografia
• Criptografia Simétrica

2
Criptografia

É o processo pelo qual uma informação ou um


texto é embaralhado de forma que só seja
possível a obtenção do texto original baseada
em uma chave de acesso.

3
Base da Criptografia
• Teoria de Números
• Matemática Discreta
• Teoria da Informação
• Teoria de Probabilidade
• Complexidade Computacional
• Processamento de Sinais

4
História da Criptografia
• 600 a 500 a.c.
– Escribas hebreus, no livro de
Jeremias, usaram a cifra de
substituição simples pelo alfabeto
reverso – ATBASH.
– ATBASH - a primeira letra do alfabeto
hebreu (Aleph) é trocada pela última (Taw), a
segunda letra (Beth) e trocada pela penúltima
(Shin) e assim sucessivamente. Destas quatro
letras deriva o nome da cifra: Aleph Taw Beth
SHin - ATBASH

5
História da Criptografia
• 487 a.C. - Bastão de Licurgo
– O remetente escreve a mensagem ao longo do bastão
e depois desenrola a tira, a qual então se converte
numa sequência de letras sem sentido.
– Destinatário, ao receber o "cinto", enrola-o no seu
bastão, cujo diâmetro é igual ao do bastão do
remetente.

6
História da Criptografia
• 150 A.C. – Código de Políbio
– Cada letra é representada por dois números que
referem-se a posição ocupada pela letra.

7
História da Criptografia
• 50 a.C. – Código de César
– Cada letra da mensagem original é substituída pela
letra que a seguia em três posições no alfabeto.

– Atualmente denominama-se
Código de César qualquer cifra
baseada na subtituição cíclica
do alfabeto

8
História da Criptografia
• Cilindro de Thomas Jefferson (Século XVIII)
– Originalmente composto por 26 discos que
giravam livremente por um eixo.
– Mensagem obtida através do giro dos discos.

9
História da Criptografia
• Samuel Morse (Século XIV)
– Desenvolveu um alfabeto cifrado em sons curtos e
longo que recebeu o seu nome.
– Foi o inventor do telégrafo.

10
História da Criptografia
• Louis Braille (Século XIX)
– Código de Braille que consiste de 63 caracteres,
cada um constituído por 1 a 6 pontos dispostos
numa matriz célula de 6 posições

11
História da Criptografia
• Máquina Enigma (1919)
– Máquina cifrante baseada em rotores.
– Usado pelos alemães na segunda guerra mundial.

12
História da Criptografia
• Colossus (1943)
– Criado por Alan Turing
– Criado pelos alemães para decifrar mensagens
cifradas pela Enigma.

13
Classificação dos Mecanismos de
Criptografia
• Criptografia Fraca: maneira banal de ocultar
informações das pessoas leigas no assunto.

• Criptografia Forte: Alta complexidade para


manter informações ocultas mesmo quando
supercomputadores são utilizados. 14
Formas de Criptografia
• Por Código: Códigos pré-definidos entre as
partes que substituem palavras por outras
palavras ou símbolos.
• Por Cifra: O conteúdo da mensagem é cifrado
através da mistura e/ou substituição das letras
da mensagem.
– Transposição: letras colocadas em ordem
diferente.
– Substituição: letras trocadas de acordo com uma
tabela ou função de substituição.
15
Objetivos da Criptografia
• Confidencialidade: só o destinatário autorizado deve ser
capaz de extrair o conteúdo da mensagem da sua forma
cifrada.
• Integridade: o destinatário deverá ser capaz de determinar
se a mensagem foi alterada durante a transmissão.
• Autenticação: o destinatário deverá ser capaz de identificar
o remetente e verificar que foi mesmo ele quem enviou a
mensagem.
• Não-repúdio: não deverá ser possível ao emissor negar a
autoria da mensagem.

16
Como cifrar uma mensagem?

• Componentes Básicos
– Algoritmo
– Chave

17
Vamos pensar um pouco...
• Quem precisa ser privado?
– Chave?
– Algoritmo?
– Os dois?

Princípio de Kerckhoff (1883): Todos os


algoritmos devem ser públicos; apenas as chaves
são secretas.

18
Vantagens do uso de Chaves

• Utilização de um mesmo algoritmo para


diferentes chaves.
• Facilidade de troca da chave.
• Número de chaves possível depende apenas
do tamanho da chave:
– 8 bits = 256 chave.
– Quanto maior a chave, mais difícil quebrá-la.

19
Tipos de Criptografia
• Ciptografia Simétrica (Chave privada)

Chave (A) Chave (A)


Fechada Aberta

• Ciptografia Assimétrica (Chave pública)

Chave Chave
Fechada Pública (B) Aberta
Privada (A)
20
Criptografia Simétrica
• Chave Privada Compatilhada
Cifragem
Para: Banco *> *ql3*UY
De: Affonso #~00873/JDI
Data: 16, Abr, 2001
Transferir R$ 2,5
milhões da conta
254674-12 para
+ + Algoritmo
= c4(DH: IWB(883
LKS9UI29as9eea
qw9vijhas9djerhp7
(*Y23k^wbvlqkwc
a conta 071517-08 zqw-_89237xGyjdc
Affonso Biskdue di7@94

Decifragem
*> *ql3*UY Para: Banco
#~00873/JDI De: Affonso

+ + =
c4(DH: IWB(883 Data: 16, Abr, 2001
LKS9UI29as9eea Algoritmo Transferir R$ 2,5
qw9vijhas9djerhp7 milhões da conta
(*Y23k^wbvlqkwc 254674-12 para
zqw-_89237xGyjdc a conta 071517-08
Biskdue di7@94 Affonso
21
Criptografia Simétrica
• Canal Seguro para Transmissão da Chave

Chave Canal Seguro Chave


K K

Alice Criptograma Bob


( ... )
Mensagem Cifrar Decifrar Mensagem
(abcdef...z) (abcdef...z)
Canal Inseguro

22
Criptografia Simétrica
• Alice cifra a mensagem utilizando um algoritmo de
ciframento e uma chave secreta para transformar
uma mensagem clara em um texto cifrado.
• Bob decifra a mensagem utilizando o algoritmo de
deciframento correspondente e a mesma chave para
transformar o texto cifrado em uma mensagem em
claro.
• Eva não possui a chave secreta, mesmo conhecendo
o algoritmo, não consegue decifrar a mensagem.
A segurança reside na chave empregada!
23
Criptografia Simétrica
• Vantagens
– Rapidez
• Desvantagens
– Chave deve ser trocada e armazenada de forma
segura.
– Cada par de pessoas necessita de um par de
chaves para se comunicar – problemas de
gerenciamento.
– Não garante autenticidade e o não-repúdio.
24
Possível solução para Distribuição
das Chaves...

Forma tradicional

Forma moderna: Uso de um


Centro de Distribuição de Chaves
(KDC)
25
Algoritmos Simétricos
• DES
• Triple DES (3DES)
• IDEA
• RC6
• AES

26
Data Encryption Standard (DES)

• Chave de 56 bits
• Definido como padrão pelo governo dos EUA em
1976.
• Jul/1998 chave violada em 56 horas.
• Jan/1999 chave violada em 22 horas e 15
minutos.
• Motivou a pesquisa na área de criptografia.

27
Triple DES (3DES)
• Simples variação do DES, utilizando-o em três
ciframentos sucessivos.
• Variações podem empregar duas três chaves
diferentes.
• É seguro, porém muito lento para ser um
algoritmo padrão.

28
International Data Encryption
Algorithm (IDEA)
• Criado em 1991
• Estrutura semelhante ao DES.
• O tamanho da chave (128 bits) inviabiliza a
possibilidade de ataques por “força-bruta”.
• Utilizado principalmente no mercado
financeiro e no PGP (o programa para
criptografia de e-mail pessoal mais
disseminado no mundo).

29
RC6
• Derivado do RC5 e RC4.
• Desenvolvida por Ron Rivest, Matt Robshaw,
Ray Sidney, e Yiqun Lisa Yin.
• Algoritmo de propriedade patenteada pela
RSA Security.
• O RC5 foi quebrado usando força bruta e
computação distribuída.

30
Advanced Encryption Standard
(AES)
• Criado em 2001.
• Também conhecido por Rijndael.
• Padrão de criptografia pelo governo dos
Estados Unidos.
• Ganhou concurso promovido pelo NIST
(National Institute of Standards and
Technology). Os finalistas foram: 5 finalistas:
MARS, RC6, Rijndael, Serpent e Twofish.

31
Advanced Encryption Standard
(AES)
• Segundo o NIST, ele combina as características
de segurança, desempenho, facilidade de
implementação e flexibilidade.
• Pouco uso de memória torna-o adequado para
Celulares, PDAs e “smart cards”.

32
Laboratório de Criptografia
Simétrica
• Instalar o JCrypTool
• Criar Documento Texto Secreto.txt
• Criar Nova chave usando um dos algoritmos de
chave simétrica.
• Abrir documento na ferramenta.
• Fazer cifragem do texto com a chave criada.
• Fazer a decifragem do texto.
• Enviar com segurança chave para colega e fazer o
teste.

33
Instalação do JCrypTool
• Extrair o arquivo
– jcryptool-1.0.0-RC6.win32.win32.x86.zip
• Extrair o ambiente Java e incluir na pasta jcryptool
– jre.zip
• A estrutura de diretórios deve ficar assim:
– jcryptool
– jcryptool\configuration
– jcryptool\dropins
– jcryptool\features
– jcryptool\jre
– jcryptool\p2
– jcryptool\plugins
– jcryptool\features

34
Criptografia Assimétrica
• Algoritmo de Chave pública
Cifragem

Para: Banco *> *ql3*UY


De: Affonso #~00873/JDI
Data: 16, Abr, 2001
Transferir R$ 2,0
milhões da conta
254674-12 para
+ + Algoritmo = c4(DH: IWB(883
LKS9UI29as9%#@
qw9vijhas9djerhp7
(*Y23k^wbvlqkwc
a conta 071517-08 zqw-_89237xGyjdc
Affonso Chave Pública Biskdue di7@94

Decifragem

*> *ql3*UY Para: Banco


#~00873/JDI De: Affonso
c4(DH: IWB(883
LKS9UI29as9%#@
qw9vijhas9djerhp7
(*Y23k^wbvlqkwc
+ + Algoritmo = Data: 16, Abr, 2001
Transferir R$ 2,0
milhões da conta
254674-12 para
zqw-_89237xGyjdc a conta 071517-08
Biskdue di7@94 Chave Privada Affonso
35
Criptografia Assimétrica
• Chave pública disponível
Chave Canal Público Chave
KPública KSecreta

Alice Criptograma Bob


( ... )
Cifrar Decifrar
Mensagem Mensagem
(abcdef...z) (abcdef...z)

Canal Inseguro

36
Criptografia Assimétrica
• Bob gera uma chave de ciframento e sua
correspondente chave de deciframento.
• Alice usa chave pública de Bob para fazer o
ciframento de um mansagem.
• Bob recebe a mensagem e utiliza sua chave
privada para fazer o deciframento da mensagem.
• Eva não tem nenhuma dificuldade em obter
chave pública que é insuficiente para decifrar a
mensagem.

37
Criptografia Assimétrica
• Vantagens
– Mais segura por não precisar comunicar ao receptor a
chave necessária para decifrar a mensagem.
– Como a chave pública está amplamente disponível, não há
necessidade do envio de chaves como no modelo
simétrico.
– A confidencialidade da mensagem é garantida, enquanto a
chave privada estiver segura. Caso contrário, quem possuir
acesso à chave privada terá acesso às mensagens.
• Desvantagem
– Costuma ser mais lenta do que a criptografia simétrica.

38
Algoritmos Assimétricos
• RSA
• ElGamal
• Diffie-Hellman
• Curvas Elípticas

39
El Gamal
• Matemática diferente da utilizada no RSA.
• O algoritmo envolve a manipulação matemática
de grandes quantidades numéricas.
• Sua segurança advém de algo denominado
problema do logaritmo discreto.
• Obtém sua segurança da dificuldade de se
calcular logaritmos discretos em um corpo finito,
o que lembra bastante o problema da fatoração.

40
Diffie-Hellman
• Também baseado no problema do logaritmo
discreto (exponenciação discreta), é o
criptosistema de chave pública mais antigo ainda
em uso.
• O conceito de chave pública foi introduzido pelos
autores deste criptosistema em 1976.
• Cada participante inicia com sua chave secreta e
através da troca de informações é derivada uma
outra chave chamada chave de seção, que será
usada para futuras comunicações.

41
Curvas Elípticas
• Proposto em 1985 por Neal Koblitz e V. S. Miller.
• Consistem em modificações de outros sistemas (o El Gamal,
por exemplo), que passam a trabalhar no domínio das
curvas elípticas, em vez de trabalhar no domínio dos corpos
finitos.
• Possuem potencial para prover sistemas criptográficos de
chave pública mais seguros, com chaves de menor
tamanho.
• Fica resolvido um dos maiores problemas dos algoritmos de
chave pública: o grande tamanho de suas chaves.
• Algoritmos atuais ainda são mais lentos que o RSA

42
RSA
• Criado em 1977 por Ron Rivest, Adi Shamir e
Len Adleman no MIT.
• Uma das mais poderosas formas de
criptografia de chave pública conhecidas.

43
RSA
• Premissa por trás do RSA:
– É fácil multiplicar dois números primos para obter
um terceiro número, mas muito difícil recuperar
os dois primos (fatorar) a partir daquele terceiro
número.
– Se o número for grande o suficiente e bem
escolhido, então ninguém pode fazer isto em uma
quantidade de tempo razoável.

44
RSA
• Uma chave RSA de 512 bits foi quebrada em
1999 pelo Instituto Nacional de Pesquisa da
Holanda, com o apoio de cientistas de mais 6
países. Levou cerca de 7 meses e foram
utilizadas 300 estações de trabalho para a
quebra.
• Percentual significativo dos sites
de comércio eletrônico utilizam
chaves RSA de 512 bits.

45
Mas...
• Problemas da criptografia simétrica:
– Como distribuir e armazenar as chaves secretas de
forma segura?
– Quantas chaves são necessárias para uma
comunicação segura entre n pessoas?
• Problemas da criptografia assimétrica:
– Como garantir que o detentor da chave pública é
realmente quem diz ser?

46
Solução na próxima aula...
• Assinatura Digital
• Certificação Digital

47
Laboratório de Criptografia
Assimétrica
• Abrir o JCrypTool
• Criar Documento Texto Secreto2.txt
• Criar novo par de chaves usando um dos
algoritmos de chave assimétrica.
• Fazer cifragem do texto usando chave pública
• Fazer a decifragem do texto usando chave
privada.
• Exportar chave pública e mensagem cifrada para
o colega.

48
Instalação do JCrypTool
• Extrair o arquivo
– jcryptool-1.0.0-RC6.win32.win32.x86.zip
• Extrair o ambiente Java e incluir na pasta jcryptool
– jre.zip
• A estrutura de diretórios deve ficar assim:
– jcryptool
– jcryptool\configuration
– jcryptool\dropins
– jcryptool\features
– jcryptool\jre
– jcryptool\p2
– jcryptool\plugins
– jcryptool\features

49
Referências
• LYRA, M. Segurança e Auditoria de Sistemas
de Informação. Ed. Ciência Moderna. 2008.
• Fechine, Joseana. Criptografia, protocolos
seguros e suas aplicações. Slides da disciplina.
• http://jcryptool.sourceforge.net/JCrypTool/Ho
me.html

50

Você também pode gostar