Sistemas Seguros Criptografia Simétrica e Assimétrica Prof. Paulo Fernando da Silva
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
Algoritmos Simétricos DES; 3DES ou DES-EDE; IDEA; Blowfish; Cast-128; RC6; AES: atual padrão americano;
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 3DES Utiliza duas chaves da seguinte maneira: Para decifrar: 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;
Testar exemplo... Exemplo do DESCipher.java
Criptografia Assimétrica Criado em 1976 por Dffie & 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 ou 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;
Testar exemplo... Exemplo Cifra RSA
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, SHA-2 ou SHA-256; SHA é o padrão do NIST; SHA-224, 256, 384 e 512;
Hash e algoritmos
Testar exemplo... Exemplo resumo.java
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 M E D KRa EKRa(M) Fonte Destino KUa
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
Assinatura com DSS
Testar Exemplo... Exemplo assinatura.java