Codificação de Informação 2010/2011 Criptografia e
Transcrição
Codificação de Informação 2010/2011 Criptografia e
11/2/10 Codificação de Informação 2010/2011 Sumário: Criptografia • Introdução, terminologia, critérios de classificação • Alguns métodos de cifra clássicos • Noção de segredo perfeito (Shannon) Criptografia e Cripto‐análise Criptografia A arte de fazer códigos Cripto‐análise A arte de furar códigos 2 Dept. InformáHca / FCT 2 Novembro 2010 2 1 11/2/10 Criptografia Fonte de informação Destino da informação Codificação da fonte Descodificação da fonte Dispostivo para cifrar Dispostivo para decifrar Tratamento de erros Tratamento de erros Canal de comunicação Dept. InformáHca / FCT 2 Novembro 2010 3 Cifra ou sistema de cifra Uma cifra ou sistema de cifra é um par de funções FK (função de cifrar) que faz a correspondência de um conjunto S num conjunto T; FK é baseada num valor K que é a chave para cifrar GK´ (função de decifrar) que é a inversa de FK ; GK´ é baseada num valor K´ que é a chave para decifrar Mensagem em claro (P) “atacar” Mensagem cifrada (C) F(P,K) “sdwr$350” K Dept. InformáHca / FCT G(C,K') “atacar” K’ 2 Novembro 2010 4 2 11/2/10 Criptografia simétrica e assimétrica Determinar P a parHr de C sem conhecer K´ é muito di\cil Se K = K´ (ou é fácil determinar K´ a parHr de K) a cifra diz‐se de chave secreta (criptografia simétrica) Se K´ é extremamente di\cil de determinar a parHr de K trata‐se de criptografia assimétrica : Nos sistemas de cifra que usam esta abordagem, em muitos casos K é conhecido (chave pública) e K´ só é conhecido por quem recebe a mensagem (chave privada) A criptografia de chave pública é recente (1976) Dept. InformáHca / FCT 2 Novembro 2010 5 Cripto‐análise Ataque apenas com texto cifrado O atacante possui apenas cifras (com o mesmo algoritmo) de várias mensagens. O objecHvo é recuperar o texto original, ou, melhor ainda, deduzir a chave ou chaves. Ataque com texto simples conhecido O atacante possui cifras (com o mesmo algoritmo) de várias mensagens conhecidas. O objecHvo é idênHco ao anterior. Ataque com texto simples escolhido Semelhante ao anterior, com a diferença de ser o criptanalista a escolher o texto das mensagens a cifrar Dept. InformáHca / FCT 2 Novembro 2010 6 3 11/2/10 Cripto‐análise Ataque adapta=vo com texto simples escolhido Caso parHcular do anterior em que os textos a enviar não precisam de ser escolhidos todos à parHda, mas podem ir sendo escolhidos à medida que se conhecem os resultados da codificação anterior Ataque com texto cifrado escolhido Os criptanalistas podem escolher diferentes textos cifrados e ter acesso aos textos em claro resultantes da respecHva descodificação Dept. InformáHca / FCT 2 Novembro 2010 7 Cifras e Códigos Cifras • Transformam unidades de comprimento fixo, por meio de uma função que descreve como se cifra uma unidade • Não dependem da linguagem usada Códigos • Dicionário que faz corresponder palavras a outras palavras • Dependem da linguagem usada • A codificação depende da linguagem usada • Um livro de códigos contém o dicionário • É di\cil distribuir, manter e proteger os livros de códigos Dept. InformáHca / FCT 2 Novembro 2010 8 4 11/2/10 Tipos de Cifra Tipo de chave Cifras simétricas Cifras assimétricas Cifra mista ou híbrida Modo de operação Cifras de bloco – block cipher Cifras coninuas (corridas ou de sequência) – stream cipher Dept. InformáHca / FCT 2 Novembro 2010 9 Tipos de chaves: cifras simétricas Chave comum à operação de cifrar e de decifrar Chave secreta P mensagem em claro, C mensagem cifrada K chave usada para cifrar e decifar f função usada para cifrar,f‐1 função usada para decifrar C = f ( K, P) P = f‐1 ( K,C) Dept. InformáHca / FCT 2 Novembro 2010 10 5 11/2/10 Tipos de chaves: cifras assimétricas • Kp Chave pública para cifrar, Ks Chave privada para decifrar (Kp diferente de Ks) Estas chaves estão ligadas a uma determinada enHdade com a qual se quer comunicar • C = f (Kp , P) P = f‐1 (Ks , C) As funções f e f‐1 têm tempos de execução muito mais longos do que as funções usadas nas chaves simétricas Dept. InformáHca / FCT 2 Novembro 2010 11 Tipos de chaves: cifras mistas • A transferência de grandes quanHdades de dados é feita usando um método simétrico com chave secreta K • A troca da chave K entre os interlocutores usa um método assimétrico (chave pública, chave privada) Dept. InformáHca / FCT 2 Novembro 2010 12 6 11/2/10 Alguns Hpos de cifra clássicos • Cifras de subsHtuição • monoalfabéHcas • polialfabéHcas • Cifras de Vigenère • Cifra de Vernam (one Hme pad) • Cifras de permutação Dept. InformáHca / FCT 2 Novembro 2010 13 Cifra de César SubsHtuir cada carácter no texto em claro pelo carácter 3 posições à frente. Chave é 3 Texto em claro A Texto cifrado B D E C D E F F G H I G H … J K … A=1, B=2, C=3, … Cifrar: C = P+3 Decifrar: P = C-3 Dept. InformáHca / FCT 2 Novembro 2010 14 7 11/2/10 Cifra de César • Cifra monoalfabéHca, com deslocamento 3 • Uma letra no texto em claro corresponde sempre a outra letra no texto cifrado • A correspondência mantém‐se ao longo do texto • São facilmente quebradas por análise estaisHca • T(a) = (P(a)+3) mod 26 “attackatdawn” “dwwdfndwgdzq” • Problema • Frequência das letras Letras com alta taxa de ocorrência correspondem a letras cifradas com alta frequência também Dept. InformáHca / FCT 15 15 2 Novembro 2010 Cifras de subsHtuição monoalfabéHca • O Alfabeto A..Z corresponde a uma permutação do alfabeto • ConHnua a ser possível quebrar a cifra por análise estaisHca do texto cifrado. Por exemplo, em inglês: Em português: Dept. InformáHca / FCT 2 Novembro 2010 A E O S R I D N T M U C P L V G F B H Q 16 8 11/2/10 Cifras de subsHtuição polialfabéHca O deslocamento aplicada à letra no texto em claro depende da posição da letra no texto Exemplo: Seja o texto c1, c2, c3, ... ci Se i é divisível por 4 deslocar 7 letras Se i dá resto 1 deslocar 5 Se i dá resto 2 deslocar 13 Se i dá resto 4 deslocar 2 Os deslocamentos podem estar codificados numa palavra Dept. InformáHca / FCT 2 Novembro 2010 17 Cifra de Vigenère • Codificar letras como números (A=1, B=2, etc.) • Chave é uma “palavra chave” • Método para cifrar - Somar a “palavra chave” ao texto em claro (letra a letra) • Método para decifrar - Subtrair a “palavra chave” ao texto cifrado • Exemplo wearediscoveredsaveyourself deceptivedeceptivedeceptive + ZICVTWQNGRZGVTWAVZHCQYGLMGJ Dept. InformáHca / FCT 2 Novembro 2010 18 9 11/2/10 Quebra da cifra de Vigenère • Babbage (1854), Kasiski (1863) • Determinar comprimento da chave K, desde que se conheça a linguagem usada no texto em claro, e uma razoável quanHdade de texto cifrado. • Baseiam‐se em procurar sequências cifradas repeHdas; correspondem a agrupamentos comuns de 2 ou três letras (the, ...) • A mesma sequência cifrada quase de certeza corresponde a uma coincidência dos mesmos valores no texto em claro com as mesmas porções da chave • Isto permite determinar o comprimento da chave e partes da chave ... Dept. InformáHca / FCT 2 Novembro 2010 19 “One Time Pads” • Semelhante à cifra de Vigenère mas em que o valor a somar é uma sequência aleatória de comprimento infinito • A sequência a somar faz parte de um livro em que cada página é uma sequência de números aleatórios • O emissor e o receptor combinam a página a usar e esta não volta a ser usada. O emissor e o receptor têm dois cadernos (pads) que contêm a mesma sequência de números e que nunca reuHlizam e que nunca volta ao princípio (one‐Hme) • Método seguro contra análise estaisHca • O problema é a segurança e manutenção dos livros ... Dept. InformáHca / FCT 2 Novembro 2010 20 10 11/2/10 “One‐Time Pads” • Pode ser conseguida usando um gerador de números aleatórios com a mesma semente (Seed) • O “ou‐exclusivo” (XOR) é úHl neste contexto • P(i): elemento i do texto em claro • C(i): elemento i do texto cifrado • O(i): valor usado para cifrar o elemento i Função para cifrar C(i) = P(i) XOR O(i) Função para decifrar P(i) = C(i) XOR O(i) (A xor B) xor B = A Dept. InformáHca / FCT 2 Novembro 2010 21 XOR Tabela de verdade do XOR: Ent 1 Ent 2 Saída 0 0 0 0 1 1 1 0 1 1 1 0 Propriedade: (c XOR k) XOR k = c Usa‐se a mesma sequência de números para cifrar e para decifrar. Dept. InformáHca / FCT 2 Novembro 2010 22 11 11/2/10 “One‐Time Pad” Função de cifra Função para decifrar srand( chave) while (mais texto para cifrar) c[i]=p[i] xor rand() srand(chave) while (mais texto para decifrar) p[i] = c[i] xor rand() “chave” é um valor combinado entre o emissor e o receptor (chave secreta) Dept. InformáHca / FCT 2 Novembro 2010 23 23 Cifra de transposição A mensagem cifrada é uma permutação de letras da mensagem em claro. A mensagem é dividida em blocos de tamanho N. Dentro de cada bloco as letras são reordenadas Suponhamos um tamanho de bloco de 5 e que a permutação é especificada por ( 4 3 1 5 2 ): a 1a letra passa a ser a 4a., a 2a. letra a 3a., .... Exemplo: UM TESTE A CIFRA DE BLOCO UMTES TEACI FRADE BLOCO TSMUE AIETC AERFD OOLBC Dept. InformáHca / FCT 2 Novembro 2010 24 12 11/2/10 Cifra de transposição Por si só, as cifras de transposição são muito fáceis de quebrar Corresponde a resolver anagramas ... Podem ser usadas em conjunto com cifras de subsHtuição Muitos sistemas de cifra modernos, baseiam‐se nesta conjunção de cifras de subsHtuição com cifras de transposição Dept. InformáHca / FCT 2 Novembro 2010 25 Máquina Enigma Simon Singh, The Code Book, 1999, Fourth Estate, London Vários simuladores da Enigma existem na Internet h{p://homepages.tesco.net/~andycarlson/enigma/enigma_j.html Dept. InformáHca / FCT 2 Novembro 2010 26 13 11/2/10 Relação da criptografia com a teoria da informação Segredo perfeito (Perfect secrecy) – Shannon Um sistema de criptografia assegura segredo perfeito quando dada uma mensagem cifrada c a probabilidade de ela corresponder a uma dada mensagem m de ter sido gerado com uma chave k é igual à probabilidade de ocorrência de m Observando os bytes cifrados não se obtem qualquer informação sobre os bytes em claro Para que isto se verifique é necessário que: o nº de chaves possível tem de ser superior ao nº de textos em claro possíveis A escolha das chaves seja aleatória para tornar todas as chaves equiprováveis Dept. InformáHca / FCT 2 Novembro 2010 27 “One Hme pad” é uma cifra perfeita Como o nº de chaves possível é normalmente limitado, as cifras normalmente não são perfeitas Um exemplo de uma cifra perfeita é “one Hme pad” (ou cifra de Vernam) Chave (one time pad) XOR Mensagem (em claro) Mensagem (cifrada) XOR O comprimento da chave é igual ao do texto em claro Mensagem (em claro) Emissor Dept. InformáHca / FCT Chave (one time pad) 2 Novembro 2010 28 14 11/2/10 Segredo perfeito e o canal BSC (Binary Symmetric Channel) 0.5 0 Mensagem em claro 0.5 0.5 0.5 0 Mensagem cifrada 1 1 A probabilidade de erro é associado à chave; se fôr 0 fica igual; se fôr 1 troca A probabilidade de erro é 0.5 A capacidade do canal é 0; ie a incerteza condicional do texto em claro (entrada do canal) dado o texto cifrado (saída) é o mesmo do que a incerteza do texto cifrado O texto em claro e cifrado são variáveis aleatórias independentes, portanto existe segredo perfeito Dept. InformáHca / FCT 2 Novembro 2010 29 Cifras coninuas (strem ciphers) Usado por exemplo para cifrar voz Gerador de sequência Sequência de chave (bits) Sequência em claro xor Sequência cifrada Ver exemplo do XOR a propósito do “one time pad” Dept. InformáHca / FCT 2 Novembro 2010 30 15 11/2/10 Cifras simétricas coninuas Geradores uHlizados Máquinas de estado deterministas, controladas por uma chave de dimensão finita. A chave determina: O estado inicial Parametriza a função que define o estado seguinte É produzida uma sequência cíclica de bits O princípio da confusão é usado, uma vez que existe uma relação complexa entre a chave, os bits em claro e os bits cifrados O princípio da difusão não é usado Assim sendo, normalmente para cada interacção, usa‐se uma chave diferente Dept. InformáHca / FCT 2 Novembro 2010 31 Geradores para cifras coninuas As chaves coninuas devem ser o mais próximo do “one Hme pad” possível Período o mais longo possível; se possível superior ao tamanho da mensagem a cifrar Sequência verdadeiramente aleatória equiprobabilidade imprevisibilidade Dept. InformáHca / FCT 2 Novembro 2010 32 16 11/2/10 Porque não se usa sempre este método? A gestão das chaves não é práHca: Para cada texto tem de ser usada uma chave diferente As chaves têm de ter comprimento igual ou superior à mensagem A sua uHlização em comunicação implica uma pré‐ distribuição de chaves de grande dimensão Não faz senHdo usar este método para cifrar dados armazenados Dept. InformáHca / FCT 2 Novembro 2010 33 Critérios de Shannon para avaliar a qualidade de uma cifra “imperfeita” (1) • QuanHdade de secreHsmo oferecido Tempo mínimo de segurança da mensagem cifrada, face a um dado esforço de tempo e dinheiro invesHdo na sua criptoanálise • Dimensão das chaves Complexidade inerente à transmissão e salvaguarda das chaves • Simplicidade de realização e exploração Facilidade de uso da cifra em ambientes de produção (critério pouco relevante nos dias de hoje – so‚ware ou hardware cifram e decifram) Dept. InformáHca / FCT 2 Novembro 2010 34 17 11/2/10 Critérios de Shannon para avaliar a qualidade de uma cifra “imperfeita” (2) • Propagação de erros - Indesejável porque obriga a retransmissões - Desejável porque facilita a verificação da integridade da mensagem cifrada • Dimensão da mensagem cifrada - Dimensão menor ou igual à mensagem em claro Dept. InformáHca / FCT 2 Novembro 2010 35 Difusão e confusão Aproximações definidos por Shannon para realizar cifras com uma boa quanHdade de secreHsmo Confusão A relação entre o texto em claro, uma chave e o texto cifrado deve ser o mais complexa possível; descobrir partes do texto em claro deve ser di\cil, mesmo conhecendo uma parte; Deve ser muito di\cil deduzir a chave usada a parHr do texto cifrado Difusão Cada pedaço da mensagem cifrada deverá depender de um grande pedaço da mensagem em claro; Cada bit do texto cifrado deve influenciar muitos bits da mensagem cifrada Qualquer pequena alteração na mensagem em claro leva a grandes alterações na mensagem cifrada Dept. InformáHca / FCT 2 Novembro 2010 36 18 11/2/10 Boas práHcas de criptografia Deve admiHr‐se que o cripto‐analista: • Conhece o algoritmo de cifra usada e as suas eventuais fragilidades; a segurança baseia‐se apenas no desconhecimento da chave • Tem acesso a todas as mensagens cifradas produzidas usando um dado algoritmo e uma dada chave • Conhece porções da mensagem original, e que as pode usar para efectuar ataques baseados em conteúdo conhecido Dept. InformáHca / FCT 2 Novembro 2010 37 19
Documentos relacionados
Slides - João Paulo Barraca
n A posição dos bits é determinante para a sua substituição ¤ Normalmente usadas
Leia maisCifras de Fluxo e Bloco
Numa aplicação real o ataque é ainda mais fácil, pois as mensagens trocadas entre duas partes (procurem a definição de parte no roteiro sobre os objetivos da segurança) obedecem a um padrão de form...
Leia maisCifras por Blocos
O algoritmo foi tornado público, mas não os critérios para o seu desenho... Este facto alimentou alguma controvérsia porque, aparentemente, foram enfraquecidos alguns aspectos do LUCIFER relevantes...
Leia mais