Upload
internet
View
117
Download
2
Embed Size (px)
Citation preview
Introdução a Criptologia (cont.)Carlos Sampaio
Agenda• Algoritmos modernos• Rede de Fistel
– Objetivos da rede de Fistel
• Criptografia Simétrica– Principais Características– Principais Algoritmos
• Criptografia Assimétrica– Princípios– Conceito de Chaves (Publica e Privada)– Método de distribuição de Chaves
• Funções de Hash– Algoritmos de Hash
Algoritmos Modernos
• Stream Ciphers (cifras contínuas):– Cifram/decifram bytes(ou bits) um a um
(normalmente a menor unidade endereçável do protocolo)
• Block Ciphers (cifras de bloco):– Cifram/decifram dados em blocos discretos,
geralmente 64 bits– Tendem a ser mais resistentes e mais fáceis
de analisar– São utilizados em diversos modos de
operação, alguns dos quais, inclusive, emulam stream ciphers.
Rede de Feistel Clássica
• Trata-se de um modelo de cifra de bloco
• Introduz o conceito de Função de Rodada
• Diversas cifras utilizam este conceito para possibilitar os critérios de Confusão e Difusão
• Ao final de cada rodada as metades são trocadas
Objetivos da Cifra de Fiestel
• Difusão:– Um bit de texto claro irá influenciar vários
bits do texto cifrado (tipicamente mais que 50%)
– Dissipa as características do texto plano em uma ampla faixa do texto cifrado
• Confusão:– Tenta tornar o relacionamento entre a
estatística da chave e do texto cifrado o mais complicado possível
Cifrar
Decifrar
Tex
to C
laro
Tex
to e
ncr
ipta
do
Chave e algoritmo de criptografia
Criptografia Simétrica - Relembrando
Principais Características
• Algoritmos Simétricos Modernos– DES e 3DES– RC4– IDEA– Blowfish– CAST
O DES - Características
• Data Encryption Standard– Desenvolvido pela IBM na década de 70
com assistência da NASA• Não recomendado para operações TOP-SECRET
– Blocos de 64 bits, chaves de 56 bits• ~720 quatrilhões de possibilidades• Atualmente quebrável em 12 horas com HW
específico (teste de ~200 bilhões chaves/seg)• 56 Bits é considerado pouco atualmente
– 3DES: DES aplicado 3 vezes com 3 chaves• ~112 bits de tamanho efetivo de chave• 5,2 x 1033 possibilidades
RC4 - ARCFOUR• Algoritmo de cifragem proprietário da RSADSI
– Otimizado para utilização rápida em software– Era segredo industrial até ser analisado por
engenharia reversa no final dos anos 90– Entrada e saída em blocos de 8 bits, chaves de 2048
bits– Extremamente rápido– Utilizado em diversos produtos
• SSL: Netscape, IE, Lotus Notes• Criptografia de senhas do Windows• MS Access, Adobe Acrobat, PPTP, Oracle Secure SQL
– “BackDoor”• Geralmente utilizado de forma que permite a
recuperação da senha (alguns aplicativos)• Resultado da utilização de algoritmos do tipo caixa preta
IDEA – International Data Encription Algorithm
• Chaves de 128 bits• Entrada e saída em blocos de 64 bits• Maduro, bastante resistente,
exaustivamente analisado• Patenteado
– Utilização gratuita para aplicações não comerciais
Blowfish
• Desenvolvido por Bruce Schneier• Rápido: 18 ciclos de clock por byte• Chaves de 128 a 448 bits• Entrada e saída de 64 bits• Geração de chave demorada
– Deliberadamente para evitar ataques de força bruta, mas muito bem implementado de forma a não impactar a velocidade geral do algorítmo
• Totalmente Grátis• Foi encontrada uma fraqueza
– Inútil na prática, mas lançou dúvidas sobre o algorítmo
CAST-128
• Carlisle Adam e Stafford Tavares• Chaves de 128 bits• Entrada e saída em blocos de 64 bits• Utilizado nas versões mais recentes
do PGP• Maduro, resistente e exaustivamente
analisado• Sem restrições de utilização
(Gratuito)
Decriptação
Criptografia Assimétrica - Princípios
Tex
to
Encriptação
Chave pública eAlgorítimo de encriptação
Tex
t en
crip
tad
o
text
o
Encriptação
Chave pública eAlgorítimo de encriptação
Decriptação
Criptografia Assimétrica - Princípios
Chave privada eAlgorítimo de decriptação T
exto
en
crip
tad
o
Chaves públicas e privadas
• As chaves existem em pares– A chave privada deve ser mantida segura
enquanto que a pública pode ser distribuída
– As chaves públicas podem existir nos certificados
• A codificação pode ser feita por qualquer uma das chaves– Posso usar a chave privada para assinar e
cifrar meus documentos – Qualquer um pode utilizar a chave pública
para enviar um dado cifrado
Chaves Privadas• Chaves Privadas• Devem ser mantidas em um local
seguro!!!!!• Se você manda algo cifrado com a
sua chave privada a informação poderá ser lida por qualquer pessoa, mas esta pessoa terá a certeza que a informação vem de você– Autenticação
Chaves Públicas• São distribuídas a qualquer usuário
– Pode ser distribuídas, mas deve haver a confiança que a chave esta correta
– Pode fazer parte do certificado• Se enviar uma informação cifrada
com a chave pública ela somente poderá ser lida pela chave privada correspondente– Segurança na comunicação
• SSL
Métodos de Distribuição de Chaves• Web-of-Trust
– Utilizado pelo PGP e GPG, exige que o destinatário confie no remetente
– Permite a atribuição de confiança indireta– Caso exista a confiança, uma chave
assinada passa a ser confiável (válida)
• X.509– Utiliza Autoridades Certificadoras para a
infra-estrutura de distribuição– É utilizada no conceito de PKI (Public Key
Infrastructure)
Funções de Hash - Conceitos• Criptografia não reversível
– Saída de tamanho fixo
• Principal utilização– Detecção de modificação– Detecção de erros– Arquivamento de senhas
Hash Criptográfico• Propriedades desejáveis
– Colisões raras e estatisticamente dispersas• Deve ser computacionalmente impraticável achar
duas mensagens que geram o mesmo hash.
– Tamanho fixo• Curto o bastante para ser conveniente, porém
suficientemente longo para assegurar a propriedade acima
• Tamanho típico: 128 a 160 bits é considerado ideal
Hash OK
Cópia ModificaçãoOriginal
Hash OK Hash Difere !!!
Algoritmos de Hash• MD5 – Message Digest 5, por Ron Rivest
– Padronizado na RFC1321– Uso irrestrito, sem patente– Mais popular hash criptográfico até pouco tempo atrás– Entrada de comprimento variável saída de 128 bits
• SHA-1– Desenvolvido pelo NIST em parceria com NSA– Melhoramento do MD4 e MD5– Entrada de comprimento variável saída de 160 bits– Rumores de sua possível quebra apenas em teoria– SHA-2, na realidade uma coletânea de algoritmos
(SHA-224, SHA-256, SHA-384 e SHA-512), ainda seguro