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 Dept. InformáHca / FCT 2 Novembro 2010 2 2 1
Criptografia Fonte de informação Codificação da fonte Dispostivo para cifrar Tratamento de erros Canal de comunicação Destino da informação Descodificação da fonte Dispostivo para decifrar Tratamento de erros Dept. InformáHca / FCT 2 Novembro 2010 3 Cifra ou sistema de cifra Uma cifra ou sistema de cifra é um par de funções F K (função de cifrar) que faz a correspondência de um conjunto S num conjunto T; F K é baseada num valor K que é a chave para cifrar G K (função de decifrar) que é a inversa de F K ; G K é baseada num valor K que é a chave para decifrar Mensagem em claro (P) atacar F(P,K) Mensagem cifrada (C) sdwr$350 G(C,K') atacar K K Dept. InformáHca / FCT 2 Novembro 2010 4 2
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
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
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
Tipos de chaves: cifras assimétricas K p Chave pública para cifrar, K s Chave privada para decifrar (K p diferente de K s ) Estas chaves estão ligadas a uma determinada enhdade com a qual se quer comunicar C = f (K p, P) P = f 1 (K s, 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
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 B C D E F G H Texto cifrado D E F G H I 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
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 15 Dept. InformáHca / FCT 2 Novembro 2010 15 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: A E O S R I D N T M U C P L V G F B H Dept. InformáHca / FCT 2 Novembro 2010 16 Q 8
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
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
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 Tabela de verdade do XOR: 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
One Time Pad Função de cifra srand( chave) while (mais texto para cifrar) c[i]=p[i] xor rand() Função para decifrar 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
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
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) Mensagem (em claro) Emissor XOR Mensagem (cifrada) O comprimento da chave é igual ao do texto em claro XOR Chave (one time pad) Mensagem (em claro) Dept. InformáHca / FCT 2 Novembro 2010 28 14
Segredo perfeito e o canal BSC (Binary Symmetric Channel) 0 0.5 0 Mensagem em claro 1 0.5 0.5 0.5 Mensagem cifrada 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 1 Cifras coninuas (strem ciphers) Gerador de sequência Usado por exemplo para cifrar voz Sequência de ( bits ) chave Sequência em claro Sequência cifrada xor Ver exemplo do XOR a propósito do one time pad Dept. InformáHca / FCT 2 Novembro 2010 30 15
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
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
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
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