Criptografia Digital
-
Upload
jessica-souza -
Category
Documents
-
view
63 -
download
6
description
Transcript of Criptografia Digital
Criptografia Digital
Prof. Flávio Humberto Cabral Nunes
Conteúdo
1. Introdução
2. Aplicações3. Criptografia e seus Conceitos
4. Tipos de Criptografia em Relação ao Uso de Chaves
5. Autenticação Comum e Verificação de Integridade
� Capítulo: 14 (APOSTILA).
Introdução
� Cada vez mais são utilizadas redes de computadores para distribuição de informação
� Necessidade de mecanismos de segurança das transações de informações confidenciais
� Informações expostas a intrusos� Segurança é um aspecto crucial
Introdução
� Uma das formas de proteger os dados é através de codificação ou cifragem da informação – CRIPTOGRAFIA– Somente pessoas autorizadas podem ter acesso
� Criptografia fornece técnicas para codificar e decodificar dados, tais que eles possam– Ser armazenados– Transmitidos– Recuperados sem sua alteração ou exposição
Introdução
� Criptografia podem ser usadas como um meio efetivo de proteção de informações suscetíveis a ataques– Informações armazenadas em um computador– Informações transitando em uma rede
� Objetivo principal– Prover comunicação segura, garantindo serviços
básicos de autenticação, privacidade e integridade dos dados
Outras Técnicas
� Assinatura digital
� Mecanismos elaborados para garantir a autenticação e integridade de informações
� Permite que se prove com absoluta certeza – Quem é o autor de um determinado documento– Se o documento foi alterado ou forjado por
terceiros
Aplicações
� Criptografia é imprescindível
� Com a Internet surgiram novas aplicações– Comércio eletrônico– Home-banking
� Informações confidenciais utilizam meios não confiáveis– Cartões de crédito– Transações financeiras
Aplicações
� Enquanto não surgem meios de comunicação suficientemente seguros, a criptografia aparece como uma boa alternativa para proteção de dados
� Com criptografia e assinatura digital, pode-se alcançar– Privacidade– Autenticidade– Integridade
Criptografia – Definição
� Transformação de informação inteligível numa forma aparentemente ilegível– Finalidade: ocultar informação de pessoas não
autorizadas, garantindo privacidade
� Criptografia=kriptos(escondido) + grafo(grafia)
� Arte ou ciência de escrever em cifras ou em códigos
Criptografia – Definição
� Gera um texto incompreensível (texto cifrado) através de um método (cifragem)
� Permite que apenas o destinatário desejado consiga decodificar e ler a mensagem com clareza, no processo inverso (decifragem)
� Métodos básicos de criptografar– Através de códigos– Através de cifras
Criptografia através de Códigos
� Esconde a mensagem através de códigos predefinidos entre as partes envolvidas na troca
� Exemplo: uma guerra– “calhau” – ataque pela direita– “araçagy” – não atacar
� Facilmente decifrados com o tempo� Somente utiliza mensagens predefinidas
– E se tiver que atacar pela esquerda
Criptografia através de Cifras
� Conteúdo da mensagem é cifrado através da mistura e/ou substituição das letras da mensagem original
� Tipos de cifras– Cifras de transposição– Cifras de substituição
Cifras de Transposição
� A ordem das letras é alterada– Exemplo: “CARRO” → “ORARC”
Cifras de Substituição
� Troca-se cada letra ou grupo de letras da mensagem de acordo com uma tabela de substituição1. Cifra de substituição simples, monoalfabética
ou Cifra de César: substitui uma letra por outra baseada num deslocamento dentro do alfabeto1. Exemplo: “A” → “E”
Cifras de Substituição
2. Cifra de substituição polialfabética: consiste em utilizar várias cifras de substituição simples, em que as letras da mensagem são rodadas seguidamente, porém com valores diferentes
3. Cifra de substituição de polígramos: utiliza um grupo de caracteres ao invés de um único caracter individual para a substituição da mensagem
Exemplo: “MÃE” → “ABA”
Cifras de Substituição
4. Cifra de substituição por deslocamento: não usa um valor fixo para a substituição de todas as letras. Cada letra tem um valor associado para a rotação através de um critério
Exemplo: “CARRO” (023) → “CCURQ”
Comparação
� A principal vantagem das cifras em realçãoaos códigos é a não limitação das possíveis mensagens a serem enviadas, além de se tornarem mais difíceis de serem decifradas
� Cifras são implementadas através de algoritmos associados a chaves, longas sequências de números e/ou letras que determinarão o formato do texto cifrado
Criptografia – Chaves
� Elementos que interagem com os algoritmos para a cifragem/decifragem das mensagens
Criptografia – Chaves
� Considere cifras de substituição por deslocamento
� O critério utilizado para cifragem das mensagens é a chave usada pelo algoritmo
� Na cifra por substituição simples– Algoritmo: “deslocamento de n letras à frente”– Chave: n
Criptografia – Chaves
� Chaves são similares as senhas de acesso a bancos e a sistemas de acesso a computadores
� Com a senha correta, o usuário tem acesso aos serviços. Caso contrário, o acesso é negado
� O usuário deve usar a chave correta para decifrar as mensagens
Criptografia – Chaves
� Em sistemas de acesso de usuários, quanto maior a senha, mais segurança ela oferece
� Chaves de criptografia também possuem tamanhos diferentes e seu grau de segurança está relacionado com sua extensão
Criptografia – Chaves
� Na criptografia moderna, as chaves são longas sequências de bits
� Um bit possui duas alternativas 0 e 1
� Uma chave de 3 bits23 = 8 possíveis valores
� Quanto maior o tamanho da chave, maior será o grau de confidencialidade da mensagem
Criptografia – Segurança e Ataques
� Avaliação da segurança de algoritmos está na facilidade de se “quebrar o código”
� Tentativas de quebrar os códigos de algoritmos são chamadas ataques
� A forma mais simples é o ataque força bruta– Tenta-se todas as chaves possíveis– Pouco eficiente e difícil de implementar– Mas, em geral, não necessários
Criptografia – Segurança e Ataques
� Criptoanálise = matemática + computadores
� Tipos– Ataque por texto conhecido: como o texto
normal e cifrado tenta-se descobrir o código– Ataque por texto escolhido: escolhe-se um
texto normal e tenta-se conseguir o texto cifrado correspondente
– Criptoanálise diferencial: procura cifrar muitos textos bem parecidos e comparar seus resultados
Criptografia – Segurança e Ataques
� Existem diferentes níveis de segurança– Depende da facilidade ou dificuldade de quebra
� Somente existirá um sistema seguro quando ele for inquebrável
� Quantidade de texto normal ou cifrado a disposição de um criptanalista não é informação suficiente para se quebrar as cifras ou deduzir as chaves que forma usadas
Criptografia – Segurança e Ataques
� A segurança de um criptosistema deve se basear não nos algoritmos e sim no tamanho das chaves
� O algoritmo para ser avaliado como forte ou fraco, deve ser testado amplamente contra todos os possíveis tipos de ataques
Algoritmo Forte
� Quando é praticamente impossível quebrá-lo em um determinado espaço de tempo em que as informações ainda sejam relevantes e possam ser utilizadas por pessoas não autorizadas
Algoritmo Forte
� Como determinar se um algoritmo é forte ou fraco?– Publicando sua descrição para que as pessoas
discutam sobre a eficiência dos métodos
� A divulgação revela pontos fracos
� Um criptosistema deve ser tão seguro que mesmo o autor de um algoritmo não seja capaz de decodificar uma mensagem se não possuir a chave
Tipos de Criptografia em Relação ao Uso de Chaves
� Chave simétrica ou secreta– A mesma chave é usada para cifrar e decifrar a
mensagem
� Chave assimétrica ou pública– Chaves diferentes são utilizadas nos processo de
cifragem e decifragem
Criptografia por Chave Secreta
� Tanto emissor quanto receptor da mensagem cifrada devem compartilhar a mesma chave
– A chave deve ser mantida em segredo
TextoNormal
Algoritmode Cifragem
TextoCifrado
ChaveCifragem/Decifragem
MeioInseguro
Algoritmo deDecifragem
TextoNormal
Criptografia por Chave Secreta
� Se uma pessoa quer se comunicar com outra com segurança, ela deve passar primeiramente a chave utilizada para cifrar a mensagem
� Processo de distribuição de chaves� A chave deve ser transmitida em meio
seguro
Criptografia por Chave Secreta
� Se existe um meio seguro de se enviar a chave, por que não enviar a própria mensagem por esse meio?– Porque tais meios são caros e difíceis de serem
obtidos e utilizados
� Por isso é bom utilizá-los uma única vez, mas não continuamente
Problema de Chaves Secretas
Problema de Chaves Secretas
� Se mais pessoas forem inclusas neste sistema de comunicação, mais chaves serão necessárias
� Mais duas pessoas, mais sete chaves
� Se n pessoas querem se comunicar, serão necessárias (n)(n-1)/2 chaves
� Problema para gerenciar chaves entre grandes grupos de usuários
Tentativa de Solução (KDC)
� Centro de distribuição de chaves (KDC)
� Responsável pela comunicação entre pessoas aos pares
� KDC deve ter consigo todas as chaves secretas dos usuários que utilizam o serviço
KDC
KDC
� Mas o KDC tem seus problemas– Constitui um componente centralizado– Gerenciado por pessoas– Pessoas podem ser corrompidas
Criptografia por Chave Secreta
� Tipos de cifras utilizadas pelos algoritmos– Cifras de Corrente: quando se cria uma chave
aleatória com o mesmo tamanho do texto a ser cifrado, e combina-se a chave com a mensagem a ser enviada
– Cifras de Bloco: aceita um grupo de bits ou blocos de dados, podendo ser utilizados em cadeia� São geralmente usados para grandes quantidades de
dados
Principais Algoritmos de Chave Secreta
� DES (Data Encryption Standard)– Baseado no algoritmo Lucifer (IBM)– Utilizado até 1978– Adotado como padrão pela ANSI sob o nome EDA– Cifra blocos de 64 bits usando uma chave de 56
bits, fazendo uma substituição monoalfabéticasobre um alfabeto de 264 símbolos
� Triple-DES– Utilização 3 vezes seguidas do DES com chaves
diferentes
Principais Algoritmos de Chave Secreta
� RC2, RC4– Criados por Ronald Rivest– Chaves variam de 1 a 1024 bits– Chaves pequenas (48 bits) são fáceis de quebrar– RC2 é uma cifra de bloco similar ao DES– RC4 é uma cifra de corrente
� Pseudo-números XOR mensagem normal
Principais Algoritmos de Chave Secreta
� IDEA– International Data Encryption Algorithm– Desenvolvido na Suíça e publicado em 1990– Utiliza uma chave de 128 bits– Não é considerado como forte, mas é robusto
� Skipjack– Desenvolvido pela National Security– Uso civil– Coração do chip Clipper, desenvolvido pela NSA
Criptografia por Chave Pública
� Também conhecida como assimétrica
� Utiliza pares de chaves para cifrar/decifrar� As duas chaves são relacionadas através de
um processo matemático usando funções unidirecionais para codificação da informação
� A chave pública é usada para cifrar
� A chave secreta é usada para decifrar
Criptografia por Chave Pública
� Uma mensagem cifrada com uma chave pública só pode ser decifrada pela outra chave secreta com a qual está relacionada
� A chave usada para cifrar é publicada para que qualquer pessoa possa lhe enviar mensagens cifradas– Home-page’s, e-mail’s
� Chave para decifrar é mantida em segredo
Criptografia por Chave Pública
TextoNormal
ChavePública
Al. Cifragem
TextoCifrado
Al. Decifragem
TextoNormal
MeioInseguro
ChaveSecreta
Principais Algoritmos de Chave Pública
� Diffie-Hellman
� RSA� Merkle-Hellman
Diffie-Hellman
� Ponto de partida para a criptografia por chave pública
� Whitfield Diffie e Martin Hellman
� Baseia-se na troca de uma chave de cifragem de tal forma que uma terceira parte não autorizada não tenha como deduzi-la
Diffie-Hellman
� Cada participante inicia com sua chave secreta e através de troca de informações é derivada uma outra chave (chave de sessão)
� A chave de sessão é usada em futuras comunicações
� Baseia-se na exponenciação discreta– Sua função inversa, logaritmos discretos, é de
alta complexidade
RSA
� Desenvolvido por Ronald Rivest, Adi Shamire Len Adleman
� Se baseia no estudo de Diffie e Hellman– Mas usa outro fundamento matemático para
criação das chaves públicas
� Utiliza o fato que é fácil de se obter a resultado da multiplicação de dois números primos extensos
� Mas é muito difícil se obter os fatores primos de um número muito extenso
RSA – Funcionamento
1. Escolha dois número primos extensos– p e q (maiores do que 10100)
2. Calcule n = p * q e z = (p – 1) * (q – 1)3. Escolha um número relativamente primo a z
e chame-o de d4. Escolha e de forma que (e * d) mod z = 15. Para cifrar, calcule C = Pe mod n6. Para decifrar, calcule P = Cd mod n7. Chave pública e, n / Chave privada d, n
RSA – Exemplo de Cifragem
p=3 e q=11 → n=p*q=33 z=(p-1)*(q-1)=20d=7(primo em relação a z) / e=3 → pois (e*d) mod z = 1
2612505E
5274414N
5274414N
1101A
201757626Z
21926121U
28685919S
P3 mod 33P3NuméricoSimbólico
Texto Cifrado (C)Texto Simples (P)
RSA – Exemplo de Decifragem
p=3 e q=11 → n=p*q=33 z=(p-1)*(q-1)=20d=7 (primo em relação a z) / e=3 → pois (e*d) mod z = 1
E05803181017626
N14781255
N14781255
A0111
Z26128000000020
U21180108854121
S191349292851228
SimbólicoC7 mod 33C7P3 mod 33
Texto Simples (P)Texto Cifrado (C)
Merkle-Hellman
� Baseava-se em um jogo matemático chamado Knapsack (mochila)– Dada uma coleção de itens, verifica-se as
possíveis maneiras de armazená-lo dentro de um repositório de tamanho fixo, de forma a não sobrar espaço
� Foi usado durante muitos anos
� Mas a descoberta de uma falha crucial o inutilizou para fins práticos
Criptografia Simétrica X Criptografia Assimétrica
� Assimétrica viabiliza a comunicação segura entre pessoas comuns
� Assimétrica acaba com o problema de distribuição de chaves– Não há necessidade de compartilhamento de
uma mesma chave– Nem pré-acordo entre as partes
� Assimétrica é mais segura
� Simétrica é mais rápida
Autenticação Comum e Verificação de Autenticidade
� Às vezes não é necessário criptografar os documentos
� Quer-se – Provar quem é o autor de um documento– Manter as informações do documento sem
modificações
� Mecanismos– Código de Autenticação de Mensagem (MAC)– Assinaturas Digitais
Autenticação Comum e Verificação de Autenticidade - Meta
� Tornar possível para a informação ser enviada de um parte para outra, estando o receptor apto a demonstrar que essa informação de fato veio do remetente que alega tê-la enviado e ainda que essa mesma não foi adulterada na transmissão
MAC’s, Assinaturas Digitais e Checksums
� MAC’s e assinaturas digitais ≠ checksum’s– Ambos provêem tentativas de garantir a detecção
de modificações da informação transmitida entre remetente e receptor
– A diferença é que está nos perigos possíveis que existem para modificar as mensagens
MAC’s, Assinaturas Digitais e Checksums
� Checksum tenta encontrar erros que são resultados de ruídos ou outras fontes não intencionais
� Assinaturas digitais e MAC’s são designados para detectar ataques iniciados por fontes intencionais ou acidentais
Código de Autenticação de Mensagens
� Usados com sistemas de criptografia simétrica, tal como o Data EncryptionStandard (DES)
� Finalidade: proteger a informação� Quando executado em cima de uma parte da
informação, este modo de criptografia da informação gera um valor (pequeno pedaços de dados) que serve como código para o documento
Código de Autenticação de Mensagens
� Se duas pessoas compartilham uma chave simétrica, o remetente pode executar o DES em cima dos dados
� Assim, ele obtém o código de autenticação da mensagem
� Dessa forma, ele pode enviá-la juntamente com os dados
Código de Autenticação de Mensagens
� O receptor tem que estar apto para validar o código dos dados que lhe foram enviados– Isto é feito realizando a mesma cifragem em cima
dos dados recebidos e obtendo o mesmo código
� Se os dados foram adulterados– o receptor não obterá um valor que se iguala com
o MAC enviado
Código de Autenticação de Mensagens
� O atacante também pode modificar o MAC
� Entretanto, sem o conhecimento da chave utilizada para criar o MAC– Não é possível para este modificar a informação
enviada– Computar um código que corresponda a mesma
Assinaturas Digitais
� Tipo específico de MAC que resulta de sistemas de criptografia assimétrica
� Usado para proteger a informação� Uma função (Message Digest – MD) é usada
par processar o documento, produzindo um pequeno pedaço de dados (hash)
� Uma MD é uma função matemática que refina toda a informação de um arquivo em um único pedaço de dados de tamanho fixo
Assinaturas Digitais
� O algoritmo MD gera um hash de 128 ou 160 bits
� Uma vez computada uma message digest, criptografa-se o hash gerando uma chave privada
� Resultado do procedimento– Assinatura digital da informação
� É uma garantia de que o documento é uma cópia verdadeira e correta do original
Message Digest
� Motivo da utilização está ligado ao tamanho do bloco de dados a ser criptografado para se obter a assintaura
� Criptografar mensagens longas pode ser demorado
� Criptografar hash’s (blocos pequenos e de tamanho fixo) gerados pela MD torna o processamento mais eficiente
Assinaturas Digitais
� Sua presença não quer dizer nada
� Assinaturas digitais podem ser forjadas� Mas elas podem ser matematicamente
verificadas� Dado um documento e sua assinatura digital,
pode-se verificar– Autenticidade do documento– Integridade do documento
Assinaturas Digitais – Processo
1. Executa-se a MD para se obter o hash
2. Decifra-se a assinatura digital com a chave pública do remetente
� A assinatura digital deve produzir o mesmo hash gerado pela função MD executada anteriormente
� Somente detecta se o documento foi alterado, mas não quais são as alterações
Assinaturas Digitais – Processo
Assinaturas Digitais
� Para ser possível que um documento ou uma assinatura adulterada não seja detectada, o atacante precisa ter acesso a chave privada que quem assinou o documento
� Valiosas para assinar informações em sistemas de computador e depois provar a sua autenticidade sem se preocupar com a segurança do sistema que as armazena
Assinaturas Digitais X MAC’s
� MAC’s requerem chaves privadas para verificar a mensagem
� Assinaturas digitais podem ser verificadas usando chaves públicas