Prof. Paulo Fernando da Silva Criptografia Conceitos Bsicos; Criptografia Simtrica; Algoritmos Simtricos; Criptografia Assimtrica; Algoritmos Assimtricos; Hash e algoritmos; Assinatura digital; Conceitos Bsicos Criptografia a cincia da escrita secreta; a base para a implementao de vrios servios de segurana; Um dos primeiros algoritmos o cifrador de csar: Y = E(X) = x+3; X = D(Y) = x-3; Conceitos Bsicos Conceitos Bsicos Crifrador de csar no possui chave; A fora est no algoritmo;
A chave tira a responsabilidade do algoritmo; Chave um seletor de algoritmos; Como seria o cifrador de csar sem chave? Conceitos Bsicos Conceitos Bsicos Criptografia Simtrica Usam a mesma chave para cifrar e decifrar; Tambm chamados de algoritmos de chave secreta;
So algoritmos geralmente rpidos;
Criptografia Simtrica Criptografia Simtrica Segurana se baseia na qualidade do algoritmo; Tambm no tamanho de chave;
Segurana no se baseia no conhecimento do algoritmo; Criptografia Simtrica Possui um problema srio na distribuio de chave; A chave deve ser compartilhada, mas deve ser secreta;
Para um grupo de n participantes, sero necessrias n(n-1)/2 chave distintas;
Criptografia Simtrica Algoritmos Simtricos Algoritmos: DES; 3DES ou DES-EDE; IDEA; Blowfish; Cast-128; RC6; AES: atual padro americano; Algortimos Simtricos Segurana est: Tamanho de chave; Princpio do confuso: complexidade entre texto cifrado e chave; Princpio da difuso: 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; So geradas 16 sub-chaves, uma para cada rodada; 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 Simtricos IDEA: Bloco 64 bits; Chave 128 bits; Livre apenas para uso no comercial; RC6: Bloco e chave varivel at 255bits; Nmero de rodadas varivel; Testar exemplo... Exemplo do DESCipher.java Criptografia Assimtrica Criado em 1976 por Dffie & Hellman; Tambm conhecido como criptografia de chave pblica; Motivado pelo problema de distribuio de chaves simtricas; Criptografia Assimtrica Usa uma chave pblica e ou chave privada; As chaves formam um par e trabalham em conjunto; O que uma chave cifra a outra chave decifra;
Criptografia Assimtrica A chave pblica todos podem conhecer; A chave privada apenas o dono pode conhecer; Funo de chaves: f(x) = y; Conhecendo y muito difcil descobrir o valor de x; Baseado na complexidade matemtica; Criptografia Assimtrica Criptografia Assimtrica Fornece servios de confidencialidade e autenticidade; Autenticidade quando a origem cifra com sua chave privada; Confidencialidade quando a origem cifra com a chave pblica do destino; Criptografia Assimtrica Criptografia Assimtrica Criptografia Assimtrica Criptografia Assimtrica Criptografia Assimtrica Algoritmos Assimtricos Como fazer um algoritmo assimtrico vlido?
Usam duas tcnicas: Aritmtica exponencial modular; Curvas elpticas; Algoritmos Assimtricos 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 nmero muito grande; n resultado de dois nmeros primos muito grandes = p & q; p & q devem ter mais de 100 dgitos cada um;
Algoritmo RSA Um invasor pode conhecer a chave pblica e o nmero n; Mas no conhece p & q; Logo ele no consegue gerar a chave privada; Algoritmo RSA Escolher dois nmeros primos grandes (> 10^100) p e q Calcular n = p * q Escolher um nmero 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 pblica, 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 no 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 prtica a chave bem maior, mais de 130 dgitos; Testar exemplo... Exemplo Cifra RSA Hash e algoritmos Funes hash, ou message digests ou funes one-way; Funo hash: y = f(x); y facilmente calculado; x computacionalmente complexo; Hash e algoritmos Uma funo hash gera um resumo de sua entrada; A partir do resumo no deve ser possvel encontrar-se a entrada; No deve ser possvel encontrar uma entrada que gere um resumo especfico; Hash e algoritmos usado para gerar impresso digital de arquivos (por exemplo);
Tambm usado em certificados e assinatura digital;
Hash e algoritmos Alguns algoritmos so: MD5, SHA-1, SHA-2 ou SHA-256;
SHA o padro do NIST; SHA-224, 256, 384 e 512; Hash e algoritmos Mensagem 100...0 K bits L x 512 bits = N x 32 bits Padding (1 a 512 bits) Tamanho da Mensagem (K mod2 64 ) Y 0 Y 1 512 bits 512 bits H SHA H SHA Y q 512 bits H SHA Y L-1 512 bits H SHA 512 512 512 512 160 160 160 160 CV 1 CV q CV L-1 160 bits digest Valor Inicial A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 Testar exemplo... Exemplo resumo.java Assinatura Digital A criptografia assimtrica permite a implementao de assinatura digital; Assinar cifrar algo com a chave privada;
Assinar toda a informao a ser enviada um processo muito caro computacionalmente; Assinatura Digital M E M M D KR a
E KRa (M) Fonte Destino KU a
Assinatura Digital
necessrio cifrar todo o contedo para garantir a origem?
Assinatura Digital No!!! Basta cifrar apenas o hash do contedo; O hash ir garantir a autenticidade e a integridade de todo o contedo; Assinatura Digital Transmisso Assinatura Digital Recepo Assinatura com DSS Testar Exemplo... Exemplo assinatura.java