Tópicos Avançados de
Redes de Computadores
Prof. Fabiano Sabha
Criptografia
História da Criptografia
A palavra criptografia vem do grego Kryptos, que
significa “oculto”, “escondido” e de grapho,
“escrita”. A melhor tradução, então, seria “escrita
oculta”.
Desde que a humanidade lida com a palavra
escrita, a necessidade de se escrever de forma
que apenas determinadas pessoas possam ler.
Para isso, diversas técnicas foram criadas, assim
como técnica ira tentar driblar estes mecanismos.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
3
História da Criptografia
O estudo da criptografia é chamado de criptologia,
enquanto os esforços para quebrá-la são conhecidos como
criptoanálise
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
4
Alguns termos...
Criptografia:
kriptós = escondido, oculto;
grápho = grafia
ESCRITA OCULTA
Criptologia:
Estudo da Criptografia
Criptoanálise:
“Engenharia Reversa” da criptografia.
Tentativas de “quebra” de criptografia.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
5
Alguns termos...
Esteganografia:
Capacidade de esconder mensagens secretas em um
meio, de maneira que as mesmas passem despercebidas,
como por exemplo, uma mensagem embutida em um
arquivo de imagem.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
6
Universo da Criptografia
A conversão de informações sigilosas em algo sem sentido
chamamos de encriptação.
Equivalente a encriptar, podemos usar os temos codificar,
criptografar e cifrar.
Para converter as voltas das informações em algo legível,
realizamos o processo de decriptação.
Equivalente ao termo decriptação, podemos usar os
termos decodificar, decriptografar e decifrar.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
7
Universo da Criptografia
Para cifrar ou decifrar, utilizamos um algoritmo.
Algoritmo é uma receita ou procedimento passo a passo,
uma lista de instruções a serem feitas em uma determinada
ordem. Normalmente um algoritmo matemático utilizado na
criptografia utiliza fórmulas matemáticas desde as mais
simples até as complexas.
Pode-se apenas manipular bits ou usar fórmulas e
mecanismos complexos para cifrar a informação.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
8
Mais termos ...
Texto Claro ou Texto Simples:
dados que queremos manter em sigilo
Texto Cifrado
dados criptografados
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
9
Algoritmo – Regra geral
Seja T o texto original da mensagem;
Seja Ck( ) o algoritmo de critpografia, parametrizado pela
chave k, Ck(T) é então o texto criptografado
Seja Dk( ) o algoritmo para descriptografar, ele usa a
mesma chave k; então:
T = Dk(Ck(T))
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
10
Casos de Criptografia
A criptografia é um dos recursos mais importantes para
proteção da informação, seja qual for o método para
transformar uma informação legível em algo ilegível. A
criptografia surgiu com a necessidade de garantir a
confidencialidade da informação, seja ela acessada
localmente ou em um trânsito.
Em 1900 a.c., os egípcios já utilizavam uma forma de
criptografia que consistia num método simples de
substituição dos hieróglifos com objetivo de confundir o
interceptador de uma mensagem cifrada.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
11
Casos de Criptografia
300 a.c. - Artha-sastra, um livro atribuído para Kautilya, foi
escrito na Índia. Ele descrevia alguns processos
criptoanálise, processo para quebra de código.
50 a.c. - Júlio César cria o famoso método de substituição,
conhecido como “Cifra de César”.
1553 d.c. - Giovan Belaso idealiza o conceito de uso de
uma “password”, que seria utilizada pra cifrar e decifrar um
texto.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
12
Casos de Criptografia
- O rádio é inventado. Esse fato foi um relevante para
criptografia, pois, durante os tempos de guerra, as
comunicações poderiam ser interceptadas em massa.
Nessa época, nascia a profissão criptoanalistas,
decifradores de mensagens cifradas.
1917 - Britânicos especialistas em criptografia, “quebram”
o chamado “Telegrama de Zimmerman”, um método de
comunicação utilizado pelos alemães durante a primeira
guerra. Essa conquista favoreceu os Estados Unidos
mudando a história da guerra.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
13
Casos de Criptografia
1918 - Os EUA empregam índios americanos da tribo de
Choctaw para retransmitirem informações confidenciais em
canais de comunicação inseguros. Como essa língua
nativa era extremamente complexa e difícil de aprender,
isso permitia um simples e efetivo mecanismo de
criptografia.
1923 - Arthur Scherbius, inventor da máquina Enigma,
vende seu produto aos alemães que passam a utilizar na
Segunda Guerra pra cifrar as comunicações militares.
1930 - Os Britânicos desenvolvem
semelhante á Enigma, chamada TYPEX.
uma
maquina
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
14
Casos de Criptografia
1937 - Os japoneses inventam uma maquina de
criptografia chamada Purple. Os EUA, através de Willian
Friedmam, quebram o código gerado por essa máquina.
1939 - Os aliados conseguem adquirir uma maquina
Enigma depois de a inteligência polonesa ter conseguido
capturar uma dessas maquinas alemã.
1940 - “The Bombe”, uma maquina que decodificava
mensagens geradas pela Enigma, foi inventada.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
15
Casos de Criptografia
1939-42 - Uma vez que a máquina Enigma teve seu
código “quebrado”, a batalha no Atlântico foi conquistada,
fragilizando o domínio alemão, preservando-se muitas
vidas a partir daí.
1942 - Os EUA usam os Navajos, similares ao Choctaws.
Informações importantes eram transmitidas na língua dos
Navajos, dificultando o entendimento pelo inimigo.
1970 - A IBM desenvolve a cifra “ Lúcifer”, que utiliza o
algoritmo
3-DES, amplamente aceito no mundo e
relativamente seguro.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
16
Casos de Criptografia
1976 - Surge o conceito de criptografia de chave-pública.
1977 - Ronald Rivest, Adi Shamir e Leonard Adleman
inventam o algoritmo de chave-pública RSA.
1990 - Matemáticos as Suíça inventam o algoritmo IDEA
(International Data Encryption Algorithm) para substituir o
DES. IDEA usa 128 bits,
1991 - Pretty Good Privacy (PGP) é atualizado por Phil
Zimmerman, um americano. Atualmente esse algoritmo é
muito utilizado principalmente na internet.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
17
A importância da Criptografia
Além da confiabilidade, a criptografia pode ser utilizada
também para garantir a integridade da informação. Através
de algoritmos específicos podemos verificar se a
informação não foi alterada, garantindo, assim, a
integridade da mesma.
Por fim, a criptografia pode ser utilizada também para
garantir
o
não-repúdio,
também
chamado
de
irretratabilidade.
Esse recurso tem uma aplicação forte no âmbito legal,
utilizado para que as pessoas honrem a palavra através de
suas “assinaturas digitais”.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
18
Tipos de Criptografia
Substituição (cifra de césar)
O sistema utiliza a técnica de substituição simples. Na
substituição simples cada letra da mensagem é substituída
por letra ou símbolo. No caso de César a substituição é
por outra letra, seguindo um deslocamento padrão (3):
Exemplo:
A=D
B=E
C=F
D=G
E=H
Desta forma a Palavra “Mensagem”
É Grafada
PHQVDJHP
M–P
E–H
N–Q
S–V
A–D
G–J
E–H
M–P
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
19
Tipos de Criptografia
As substituições simples são vulneráveis a uma
técnica de criptoanálise chamada Análise de
Freqüência.
A analise de freqüência verifica os símbolos ou
letras que aparecem mais no texto. De acordo
com a língua de origem da mensagem, pode-se
tentar substituir estes símbolos por letras de
acordo com a freqüência em que eles aparecem
no Em casos como César, porém, em que a
substituição segue um padrão, o processo é ainda
mais simples.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
20
Tipos de Criptografia
Em 1586, Blaise de Vigenère escreveu um livro sobre
cifras no qual publica sua Cifra de Vigenère . Esta cifra,
baseada em César, traz como inovação a utilização de
uma palavra como chave, de tamanho variável.
A substituição das letras do texto original acontece de
acordo com a letra correspondente da chave, como no
exemplo a seguir:
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
21
Tipos de Criptografia
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
22
Tipos de Criptografia
Chave : MUITO
Texto Claro: OUTRO
Texto Cifrado: AOBKC
Deslocamento:
M – 12
U – 20
I–8
T – 19
O – 14
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
23
Tipos de Criptografia
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
24
Tipos de Criptografia
Transposição
As cifras alteram a posição das letras da mensagem,
embaralhando-as segundo um padrão e fazendo com que
apenas quem conhece este padrão consiga ler a
mensagem. Cifras desde tipo são imunes à análise de
freqüência, pois as letras que compõem a mensagem e o
texto cifrado continuam as mesmas:
Exemplo: (texto cifrado)
OHORASECAESCNNNDALOOCIOTAPIOCSAORTN
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
25
Tipos de Criptografia
Texto em claro:
Encontro às cinco horas no páteo da escola
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
26
Tipos de Criptografia
Transposição
Na Grécia antiga, por exemplo, foi criado o Bastão
Licurgo. A técnica consistia em enrolar uma tira de couro
um em um bastão, para, depois, se escrever a mensagem
ao lado deste. Depois desenrolando a tira, a mensagem
ficava ilegível. Para que fosse possível lê-la, era
necessário, enrola-la novamente no bastão. O “segredo”,
ou chave, neste caso, era a própria técnica em si, e o
bastão.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
27
Tipos de Criptografia
Bastão Licurgo
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
28
Tipos de Criptografia
Os sistemas de transposição mais comum são os
geométricos lineares e colunares. Consistem na colocação
da mensagem em matrizes de tamanho variável, linha a
linha, e a retirada do texto cifrado coluna a coluna (sistema
colunar), ou vice e versa (sistema linear).
Texto cifrado: (chave = 3 [3 colunas])
TED (1ª linha)
ESI (2ª linha)
XCD (3ª linha)
TOO (4ª linha)
ON – (5ª linha) = TEDESIXCDTOOON –
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
29
Criptografia Moderna
Os sistemas modernos de criptografia não devem ser
capazes de encriptar apenas texto, mas também imagens,
áudio, vídeo. É necessária então, a capacidade de
encriptar dados em formato binário. O tamanho da
informação também não é conhecido de antemão.
Os algoritmos modernos de criptografia são divididos em
duas famílias, aqueles que fazem Criptografia Simétrica
e aqueles que fazem Criptografia Assimétrica. Sistemas
de criptografia simétrica utilizam a mesma chave para
encriptar e para decriptar os dados. Além disso, os
algoritmos de criptografia trabalham em dois modos, em
bloco e em fluxo.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
30
Criptografia Moderna
Algoritmo de Bloco : Possuem tamanho fixo (64 bits) das
informações que entram e saem. Para trabalharem
tamanhos maiores dividem a informação.
Algoritmo de Fluxo: Trabalham bit a bit (ou byte a byte),
não havendo necessidade de completar as informações
até um determinado tamanho. Algoritmos de fuxo, são
mais complexos operacionalmente, mas trazem vantagens
em termos de “performace”, sendo indicados para situação
em que há necessidade de criptografia “on the fly”, como
em streaming de vídeo e áudio.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
31
Algoritmos Simétricos
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
32
Algoritmos Simétricos
DES – Data Encryption Standard
O DES foi criado pela IBM, na década de 70, com nome
origem de Lúcifer. Seu fundamento foi criado de forma a
otimizar implementações em hardware, e foi desenvolvido
originalmente para trabalhar com chaves de 128 bits de
tamanho.
A NSA, agencia de segurança internacional americana,
modificou o algoritmo para torná-lo mais resistente a
ataques de uma técnica conhecida como Análise
Diferencial , desconhecida na época, e reduziu o tamanho
da chave para 56 bits .
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
33
Algoritmos Simétricos
Essa modificação acabou tornando-se cara demais, pois
atualmente, o DES está sendo substituído devido ao
pequeno tamanho de sua chave.
O DES é um algoritmo de bloco (64 bits) e trabalha
realizando uma serie de substituições (baseadas em
matrizes conhecidas como S-boxes) e transposições, em
16 rodadas de modificação da informação.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
34
Algoritmos Simétricos
3DES – Triple DES
Com o passar do tempo, a chave de 56 bits do DES
passou a não ser suficientemente grande para tornar
ataques de Força Bruta improdutivos. Computadores
relativamente
baratos
podem
testar
todas
as
possibilidades de uma chave de 56 bits (2.56
=
72057594037927936 possibilidades), tornando-o inseguro
para uso em situações como comércio eletrônico e
proteção de informações confidenciais.
Uma forma de minimizar o problema é a execução repetida
dos DES para cada bloco, com chaves diferentes.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
35
Algoritmos Simétricos
Desta forma, foi criado o padrão 3DES, que consiste no
uso do DES 3 vezes para cada bloco. Com 3 chaves
diferentes, gera-se uma chave efetiva de 168 bits.
Normalmente, utiliza-se o 3DES nas seguintes
configurações:
EDE ( encripta, decripta, encripta)
EEE ( encripta, encripta, encripta)
Através da utilização da mesma chave nos passos 1 e 2,
pode-se trabalhar também com chaves de 112 bits, A
“performace” do 3DES, contudo, fica prejudicada, uma vez
que são necessárias 3 execuções de DES para cada
bloco, tornando-o 3 vezes mais lento que o DES.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
36
Algoritmos Simétricos
AES – Advanced Encryption Standard
Devido à fragilidade do DES, foi realizado um processo de
seleção de um novo algoritmo para ser utilizado com
padrão, o AES.
O processo envolveu diversos algoritmos, de diversas
partes do mundo. Após uma avaliação detalhada de cada
um dos concorrentes, foi selecionado como vencedor o
algoritmo belga Rijndael.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
37
Algoritmos Simétricos
O novo AES é capaz de trabalhar com chaves e blocos de
128, 192 e 256 bits. O algoritmo foi projetado de forma a
ter alta “performance” em qualquer uma das formas a
operar, e é capaz de tirar proveito de máquinas
multiprocessadas.
Análises iniciais mostram que o AES é resistente aos
ataques de análise diferencial.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
38
Algoritmos Assimétricos
A criptografia assimétrica difere da criptografia simétrica
com relação às chaves utilizadas nos processos de
criptografia e descriptografia. Na criptografia simétrica, a
mesma chave é utilizada nos dois processos. Na
assimétrica, são chaves diferentes. Esta característica traz
diversas vantagens de troca de chaves, o maior problema
no uso da criptografia simétrica.
Para possibilitar a criação de algoritmos com essas
características, são utilizadas diferentes técnicas
matemáticas. Um dos recursos mais utilizados por esses
algoritmos são os números primos.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
39
Algoritmos Assimétricos
Diffie-Hellman
O primeiro passo em direção a criptografia assimétrica foi
dado por dois pesquisadores, Whitfield Diffie e Martin
Hellman, em 1974. Diffie e Hellman pensaram em uma
situação na qual duas partes quisessem se corresponder
de maneira segura com caixas trancadas por cadeado,
sem fazer troca antecipada de chaves.
O Sistema Diffie-Hellman é implementado em diversos
protocolos de comunicação segura, como o sistema de
troca de Chaves IKE (Internet Key Exachange), utilizado
em VPN’s IPSEC.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
40
Algoritmos Assimétricos
Texto Claro
Encriptar
Chave Pública
Decriptar
Chave Privada
Texto Cifrado
Principal Característica: Uso de Duas Chaves
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
41
Algoritmos de Resumo Digital
Não usam chave!
Funções usadas em criptografia garantem que não é
possível a partir de um valor de hash retornar à informação
original.
Os algoritmos em si não são secretos, Mas são usados em
segurança!
É uma função matemática que recebe uma entrada de
tamanho arbitrário produz um número (pequeno) como
saída.
É possível que várias mensagens gerem o mesmo hash,
mas deve ser difícil encontrar tal par
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
42
Algoritmos de Resumo Digital
Funções de sentido único ( One-Way)
São funções matemáticas nas quais não é possível saber
qual a entrada a partir do resultado, ou seja:
Se y = F(x), não é possível conhecer x a partir de y
Uma boa analogia às funções de sentido único é a mistura
de tintas. Uma vez misturada tintas de diferentes cores,
não é possível voltar às cores originais.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
43
Algoritmos de Resumo Digital
Os algoritmos de hash são mais eficientes, em termos de
velocidade, que os algoritmos de chave pública
Algoritmos mais usados em Hash:
MD5 – Message Disgest 5
Saída de 128 bits
Criado por Ron Rivest
SHA – 1 ( Secure Hash Algorithm)
Saída de 160 bits
Padrão FISPS do Nist
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
44
Algoritmos de Resumo Digital
Funções de hasting são úteis quando precisamos gerar
“resumos” da informação, que serão utilizados
posteriormente para identificar eventuais modificações.
Um arquivo de 1 mb, por exemplo, gera um hash X. Se
alterarmos apenas um bit dês de arquivo, o hash será
completamente diferente de X , indicando que houve
alteração.
Tópicos Avançados de Redes de Computadores - Prof. Fabiano Sabha
45
Download

Aula 07 e 08 - fabianosabha.com.br