Segurança de Redes de Computadores Prof. Paulo Fernando da Silva Faculdades SENAC Florianópolis Pós-Graduação em Segurança da Informação Criptografia • • • • • • • Conceitos Básicos; Criptografia Simétrica; Algoritmos Simétricos; Criptografia Assimétrica; Algoritmos Assimétricos; Hash e algoritmos; Assinatura digital; Conceitos Básicos • Criptografia é a ciência da escrita secreta; • É a base para a implementação de vários serviços de segurança; • Um dos primeiros algoritmos é o cifrador de césar: – Y = E(X) = x+3; – X = D(Y) = x-3; Conceitos Básicos Conceitos Básicos • Crifrador de césar não possui chave; • A força está no algoritmo; • A chave tira a responsabilidade do algoritmo; • Chave é um seletor de algoritmos; • Como seria o cifrador de césar sem chave? Conceitos Básicos Conceitos Básicos Criptografia Simétrica • Usam a mesma chave para cifrar e decifrar; • Também chamados de algoritmos de chave secreta; • São algoritmos geralmente rápidos; Criptografia Simétrica Criptografia Simétrica • Segurança se baseia na qualidade do algoritmo; • Também no tamanho de chave; • Segurança não se baseia no conhecimento do algoritmo; Criptografia Simétrica • Possui um problema sério na distribuição de chave; • A chave deve ser compartilhada, mas deve ser secreta; • Para um grupo de n participantes, serão necessárias n(n-1)/2 chave distintas; Criptografia Simétrica Criptografia Simétrica - Exemplos • Cifrador monoalfabético; • Permutação dos 26 caracteres: 26! = 4x10^26 • A chave é a seqüência de caracteres para permutação • Difícil de quebrar com força bruta Criptografia Simétrica - Exemplos • Refletem a freqüência das letras do idioma em que foi escrito • Fácil de quebrar através da análise da freqüência relativa das letras do idioma • Chave = “QWERTYUIOPASDFGHJKLZXCVBNM” Criptografia Simétrica - Exemplos • Cifrador playfair; • Baseado em uma matriz de 5 x 5 usando uma chave K; • A chave é colocada no início e depois é colocado o resto do alfabeto; • Exemplo K = monarchy; Criptografia Simétrica - Exemplos Criptografia Simétrica - Exemplos • Funcionamento: • Divida o texto de 2 em 2 letras: “de pa rt am em to” • Letras repetidas coloca-se “X” no meio • Encontre a linha da primeira letra • Siga até a coluna da segunda letra • Onde parar é o novo caracter • Fazer o mesmo da segunda com a primeira Algoritmos Simétricos • SDES é um algoritmo didático; • Outros: – DES; – 3DES ou DES-EDE; – IDEA; – Blowfish; – Cast-128; – RC6; – AES: atual padrão americano; Algoritmo SDES IP = 2 6 3 1 4 8 5 7 e IP-1= 4 1 3 5 7 2 8 6 Algoritmo SDES Algoritmo SDES Geração de sub-chaves Algortimos Simétricos • Segurança está: – Tamanho de chave; – Princípio do confusão: complexidade entre texto cifrado e chave; – Princípio da difusão: complexidade entre o texto plano e chave; Algoritmo DES • Tamanho de bloco de 64 bits e chave de 56 bits; • O DES tem 16 rounds; • São geradas 16 sub-chaves, uma para cada rodada; Algoritmo DES Algoritmo 3DES • Utiliza duas chaves da seguinte maneira: – Encripta com K1; – Decripta com K2; – Encripta novamente com K1; • Para decifrar: – Decripta com K1; – Encripta com K2; – Decripta novamente com K1; Algoritmo AES • Governo americano fez concurso para eleger novo algoritmo; • Vencedor em 2001 foi o Rijndael; • Mudou de nome para AES; • Padronizado na FIPS PUB 197; • Blocos de 128 bits; • Chave de 128, 192 ou 256 bits; Algoritmos Simétricos • IDEA: – Bloco 64 bits; – Chave 128 bits; – Livre apenas para uso não comercial; • RC6: – Bloco e chave variável até 255bits; – Número de rodadas variável; Criptografia Assimétrica • Criado em 1976 por Diffie & Hellman; • Também conhecido como criptografia de chave pública; • Motivado pelo problema de distribuição de chaves simétricas; Criptografia Assimétrica • Usa uma chave pública e uma chave privada; • As chaves formam um par e trabalham em conjunto; • O que uma chave cifra a outra chave decifra; Criptografia Assimétrica • A chave pública todos podem conhecer; • A chave privada apenas o dono pode conhecer; • Função de chaves: f(x) = y; • Conhecendo y é muito difícil descobrir o valor de x; • Baseado na complexidade matemática; Criptografia Assimétrica Criptografia Assimétrica • Fornece serviços de confidencialidade e autenticidade; • Autenticidade quando a origem cifra com sua chave privada; • Confidencialidade quando a origem cifra com a chave pública do destino; Criptografia Assimétrica Criptografia Assimétrica Criptografia Assimétrica Criptografia Assimétrica Criptografia Assimétrica Algoritmos Assimétricos • Como fazer um algoritmo assimétrico válido? • Usam duas técnicas: – Aritmética exponencial modular; – Curvas elípticas; Algoritmos Assimétricos • Dois algoritmos mais conhecidos: – RSA e ElGamal; • Algoritmos RSA: • É o mais usado comercialmente; • Cifra blocos de tamanho variado = n; Algoritmo RSA • O par de chaves é derivado de n; • n é um número muito grande; • n é resultado de dois números primos muito grandes = p & q; • p & q devem ter mais de 100 dígitos cada um; Algoritmo RSA • Um invasor pode conhecer a chave pública e o número n; • Mas não conhece p & q; • Logo ele não consegue gerar a chave privada; Algoritmo RSA • Escolher dois números primos grandes (> 10^100) p e q • Calcular n = p * q • Escolher um número “e” relativamente primo com (p – 1) * (q – 1) • Calcular d de forma que e * d = 1 mod (p – 1) * (q – 1), isto é, d = e-1 mod (p – 1) * (q – 1) • Publicar (n, e) – chave pública, manter (n, d) – chave privada – e p, q em segredo Algoritmo RSA • • • • KU = {e, n} KR = {d, n} Cifrar: M^e mod n Decifrar: C^d mod n • Invasor não consegue descobrir “d” a partir de “e” e “n” Algoritmo RSA • • • • • • • p= 7 e q = 17; n = 119; Totiente de n = 96; e relativamente primo a 96 = 5; d = 77; KU = {5, 119} KR = {77,119} Algoritmo RSA • • • • • • • KU = {5, 119} KR = {77, 119} M = 19 Cifrar: 19^5 mod 119 = 66 C = 66 Decifrar: 66^77 mod 119 = 19 Obs: na prática a chave é bem maior, mais de 130 dígitos; Comparação Hash e algoritmos • Funções hash, ou message digests ou funções one-way; • Função hash: y = f(x); • y é facilmente calculado; • x é computacionalmente complexo; Hash e algoritmos • Uma função hash gera um resumo de sua entrada; • A partir do resumo não deve ser possível encontrar-se a entrada; • Não deve ser possível encontrar uma entrada que gere um resumo específico; Hash e algoritmos • É usado para gerar impressão digital de arquivos (por exemplo); • Também é usado em certificados e assinatura digital; Hash e algoritmos • Alguns algoritmos são: MD5, SHA-1, SHA2 ou SHA-256; • SHA é o padrão do NIST; • SHA-224, 256, 384 e 512; Hash e algoritmos Padding (1 a 512 bits) Tamanho da Mensagem (K mod 264) L x 512 bits = N x 32 bits K bits Mensagem 512 bits 512 bits 512 bits 512 bits Y1 Yq YL-1 Y0 Valor Inicial 160 512 512 160 HSHA 100...0 CV1 512 160 HSHA A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 CVq 512 160 HSHA CVL-1 HSHA 160 bits digest Assinatura Digital • A criptografia assimétrica permite a implementação de assinatura digital; • Assinar é cifrar algo com a chave privada; • Assinar toda a informação a ser enviada é um processo muito caro computacionalmente; Assinatura Digital Fonte M E Destino M EKRa(M) KRa D KUa M Assinatura Digital • É necessário cifrar todo o conteúdo para garantir a origem? Assinatura Digital • Não!!! • Basta cifrar apenas o hash do conteúdo; • O hash irá garantir a autenticidade e a integridade de todo o conteúdo; Assinatura Digital – Transmissão Assinatura Digital – Recepção