Segurança Informática em Redes e Sistemas W5a - Criptografia Grupo 6 Maria Couceiro João Martins Pedro Santinhos
Tipos e Modos de Cifra
Criptografia Arte ou ciência de escrever de forma a ocultar conteúdos kryptós + graph Permite troca de informação Inteligível para terceiros
Estenografia Permite ocultar conteúdos sensíveis dentro de conteúdos aparentemente inocentes e correctos stéganos+ graph Tinta invisível Conteúdos dentro de uma imagem
Criptanálise Arte ou ciência de violar informação criptografada ou sistema criptográfico Técnicas Criptográficas Métodos de Criptanálise
Criptologia Criptografia + Criptanálise É importante saber Técnicas de criptografia Riscos das Técnicas Métodos de Criptanálise
Terminologia Cifra: técnica concreta de criptografia Texto em claro cifra decifra Criptograma Algoritmo + Chave
Criptanálise Obter texto a partir do criptograma Obter chave de cifra Obter algoritmo de cifra
Criptanálise - Técnicas Ataques Ciphertext-only Known-plaintext Chosen-plaintext Adaptive-chosen-plaintext Chosen-ciphertext Birthday
Tipos de cifras Cifras monoalfabéticas Cifras polialfabéticas
Cifras monoalfabéticas Substituição de caracteres Alfabeto de Substituição Cifra aditiva Cifra multiplicativa Cifra afim Cifra frase-chave
Cifras polialfabéticas Aplicação sucessiva de cifras monoalfabéticas Cifra de Vigenère Texto original ola Cifra abc Criptograma??? A B C O O P Q L L M N A A B C
Aproximações à criptografia Cifra perfeita Cifra de Vernam Para cada texto: Uma chave diferente e aleatória Chave Texto Não é usada na prática
Aproximações à criptografia Na prática Cifras seguras na prática Não permitem criptanálise em tempo útil Relação custo-benefício
Aproximações à criptografia Critérios para qualidade (Shanon) Quantidade de secretismo Dimensão da chave Simplicidade de realização/exploração Propagação de erros Dimensão do criptograma
Difusão e Confusão Confusão Relação entre texto e criptograma Difusão Cada pedaço do criptograma depende de um pedaço grande do texto original
Cifras contínuas Aproximação da cifra de Vernan Chaves Aleatórias Gerador pseudoaleatório gerador K gerador Texto em claro Chave contínua criptograma Chave contínua Texto em claro
Cifras Modernas
Modo de Operação Por blocos Contínuas Tipos de Chaves Simétricas (chave secreta) Assimétricas (chave partilhada) Mista/Híbrida
Modo de Operação Cifras por blocos Cifras monoalfabéticas Facilita a análise Cifras contínuas Cifras polialfabéticas Cifras de um bloco depende dos blocos anteriores Necessita de mecanismos de inicialização
Tipos de Chaves Simétricas Usam valor comum (chave secreta) Vantagem Muito eficientes Desvantagem Elevado número de chaves Problema: Distribuição de chaves
Tipos de Chaves Assimétricas Par de chaves (privada+pública) Vantagem Pouco número de chaves Desvantagem Pouco eficientes Problemas Distribuição das chaves públicas Tempo de vida dos pares de chaves
Cifras Simétricas por Blocos Aproximações usadas: Confusão Difusão Difusão, confusão Blocos de grandes dimensões Algoritmos mais usados: DES (Data Encryption Standard ) IDEA (International Data Encryption Algorithm) AES (Advanced Encryption Standard)
Feistel Network N chaves geradas a partir da chave A cifra e a decifra são idênticas Diferença somente no escalonamento da chave
Feistel Network
DES: Data Encryption Standard Usa técnicas de substituição e permutação Blocos de 64 bits Chaves de 56 bits Muito rápido Pouco seguro 16 iterações com redes de Feistel
Cifras Simétricas Contínuas Aproximações usadas: Desenho de geradores pseudo-aleatórios seguros Normalmente sem sincronização Normalmente não permitem acesso aleatório eficiente Algoritmos mais usados: A5 (GSM) RC4 SEAL
Linear Feedback Shift Register Máquina de estados que produz sequências cíclicas de bits. Formado por um registo de N bits com deslocamento e por uma função de realimentação.
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Linear Feedback Shift Register
Composição de LFSR: A5/1 Usado em comunicações GSM Usa internamente 3 LFSR Chaves até 64 bits
Cifras Assimétricas por Blocos Aproximações usadas Complexidade matemática Algoritmos mais usados RSA ElGamal
RSA: Rivest Shamir Adleman Factorização Logaritmos modulares 1.Escolha de p e q 2.n = p q 3.φ(n) = (p - 1) (q - 1) 4.e : co-primo de φ(n) 5. d : e d = 1 (mod φ(n)) Alta complexidade
Criptograma Rivest Shamir Adleman C = P e mod n P = C d mod n Texto em claro
Modos de Cifra
Definição Estabelecem modelos de aplicação de um algoritmo de cifra a um texto de dimensão arbitrária. Não usam chaves para alterar o comportamento.
Modos de cifra Modos de cifra para blocos: Manipula blocos de texto e de criptogramas que compõe de diferentes maneiras antes e depois da cifra/decifra Exemplos: ECB (Electronic Code Book) CBC (Cipher Block Chaining) Modos de cifra de cadeias de caracteres: Usa-se um algoritmo de cifra por blocos para realizar a cifra contínua. Exemplos: OFB (Output Feedback Mode) CFB (Cipher Feedback Mode)
ECB (1/2)
ECB (2/2) O texto é dividido em blocos independentes e contíguos de igual dimensão que são cifrados independentemente. Problema: Reprodução de padrões do texto original. Imagem original Imagem cifrada com o ECB (original de Larry Ewing)
CBC (1/2)
CBC (2/2) Semelhante ao ECB, mas é introduzida realimentação. Vector de inicialização: Evita a replicação de padrões do ECB. Pode ser secreto ou não. Problemas: Análise estrutural do texto original. Alterações determinísticas do texto original recuperado após decifra.
OFB e CFB de n bits
OFB Realimentação feita a partir da saída do gerador. Mesmo valor inicial em ri para quem cifra e quem decifra.
CFB Realimentação feita a partir do criptograma. Valor inicial em ri pode não ser igual para quem cifra e quem decifra: autosincronização.
Comparação dos modos de cifra (1/2) ECB CBC OFB CFB Não exposição de padrões do texto Sim Sim Sim Confusão na entrada da cifra Sim Só com contador interno Sim Reforço de segurança Mesma chave de cifra para mensagens diferentes Sim Sim VI diferentes para chave contínua diferente VI diferentes para chave com os n bits iniciais diferentes Alteração determinística do texto em claro difícil Possível Fácil Fácil
Comparação dos modos de cifra (2/2) ECB CBC OFB CFB Préprocessamento Sim Optimização Paralelização Acesso aleatório homogéneo Sim Na decifra Précomputação da chave contínua Na decifra Tolerância a faltas Propagação de erros no criptograma Recuperação de sincronismo Não: apenas o bloco corresponde nte Perda de blocos completos Bloco seguinte Perda de blocos completos Não: bit de texto corresponden te Alguns bits seguintes Perda de blocos completos de n bits
Tratamento de sub-blocos (1/3) ECB e CBC: texto pode ter dimensão diferente da dimensão fixa dos blocos, logo é necessário ter um procedimento especial para cifrar e decifrar o subbloco final da mensagem. Duas abordagens: padding e ciphertext stealing.
Tratamento de sub-blocos (2/3) Introdução de excipiente (padding): O criptograma final será maior que o texto original. Excipiente, cujo comprimento tem de ser conhecido, é retirado após a decifra do último bloco. Exemplos: A mensagem tem um campo com o seu comprimento efectivo. O excipiente contém a indicação do seu comprimento. No envio do criptograma é indicado, por via terceira, o comprimento da mensagem original ou do excipiente.
Tratamento de sub-blocos (3/3) Tratar o sub-bloco final garantindo que o criptograma resultante tem o comprimento do texto original e que o sub-bloco final é cifrado. Duas técnicas: Cifrar o último bloco completo do criptograma e somá-lo (módulo 2) com o sub-bloco final. Problema: permite alterações determinísticas do subbloco cifrado. Roubo de criptograma ou ciphertext stealing. O processamento de todos os blocos, excepto dos dois últimos, não é alterado.
Reforço de segurança (1/3) DES: comprimento reduzido da chave torna-o viável a pesquisas exaustivas. Chaves maiores: Cifra múltipla Branqueamento (whitening)
Reforço de Segurança (2/3) Cifra múltipla: Cifrar o texto mais do que uma vez, usando em cada cifra um chave diferente. Segurança vs desempenho Cifra dupla: não reforça a segurança 2 n+1 em vez de 2 2n Cifra tripla: EDE (Encrypt Decrypt Encrypt)
Reforço de Segurança (3/3) Branqueamento (whitening): Comprimento máximo da chave de cifra: Comprimento de K + 2 x bloco DESX: 184 bits