criptografias assimétricas e HASH Flashcards
Criptografia assimétrica
A criptografia Assimétrica, também conhecida como criptografia de chaves públicas é caracterizada pelo fato de se utilizar duas chaves no processo criptográfico,
Uma para criptografar os dados, deve-se, necessariamente, usar a outra para descriptografar. As duas chaves utilizadas são conhecidas como privada e pública.
A primeira é de conhecimento exclusivo do dono da chave, enquanto a segunda, como o próprio nome diz, é de conhecimento público.
Um detalhe importante que já foi cobrado em prova. O processo de criptografia de chave pública não se restringe a uma única sequência, isto é, não necessariamente se criptografa com a chave privada e decriptografa com a pública. Por este motivo, não podemos dizer que essa é uma característica que define o modelo de criptografia assimétrica.
Conceito base para a criação de assinatura digital e certificação digital
Garantia de confidencialidade e autenticidade
Se o objetivo é garantir a confidencialidade, deve-se cifrar com a chave pública do RECEPTOR e decifrar com a chave privada do RECEPTOR!
Se o objetivo é garantir a autenticidade, deve-se cifrar com a chave privada do EMISSOR e decifrar com a chave pública do EMISSOR!
fluxo esquemático confidencialidade e autenticidade
formas de uso
criptografia simétrica utiliza mais a substituição
principais algoritmos
certo
Diffie-Hellman – DH
Principal algoritmo quando se fala no propósito de troca de chaves simétricas em um meio inseguro sem conhecimento prévio do segredo.
Há de se destacar desde já que o DH por si só não garante autenticidade e, portanto, está sujeito a ataques de interceptação, como o Man-in-the-middle, conforme veremos à frente.
O protocolo VPN IPSec, por exemplo, utiliza o DH para tal finalidade.
Esse algoritmo não é utilizado para cifrar e decifrar mensagens, mas tão somente providenciar um meio seguro o suficiente para troca de chaves através de um canal seguro.
Segurança baseada na complexidade e problema de logaritmo discreto
Na sua versão mais atual o DH pode ser utilizado conjuntamente com algoritmos de curva elíptica criando um processo chamado Perfect Forward Secrecy (PFS), otimizando a resistência contra-ataques que visam obter chaves de sessão, principalmente em cenário de navegação WEB segura através do HTTPS.
RSA – Rivest, Shamir and Adelman
O RSA foi um algoritmo publicado no ano de 1977.
Possui a característica de ser utilizado tanto para processos de cifragem como para produzir hashes. Foi baseado na proposta apresentada pelo algoritmo DH.
É amplamente utilizado por diversas aplicações como SSL e TLS, além de fazer parte da estrutura PKI – Public Key Infrastructure, que veremos com mais detalhes posteriormente, mas, adianto as características de geração de par de chaves, criptografia e descriptografia dos dados e assinatura digital.
Sua robustez reside na dificuldade de se fatorar números extensos.
Sugere-se, atualmente, que sejam utilizadas chaves de 2048 a 4096 bits para aumentar a robustez contra ataques de força bruta. Entretanto, diversas aplicações utilizam chaves de 1024, até porque, quanto maior a chave, maior o processamento do algoritmo.
No RSA as chaves são geradas desta maneira
No RSA as chaves são geradas desta maneira
Escolha de forma aleatória dois números primos grandes “p” e “q”, da ordem de 10100 no mínimo.
Compute n = p.q
Compute a função totiente em n:phi(n) = (p-1)(q-1)
Escolha um inteiro “e” tal que 1 < e < phi(n), de forma que “e” e phi (n), sejam primos entre si.
Compute “d” de forma que d.e ≡ 1 mod {phi(n)} , ou seja, “d” seja o inverso multiplicativo de “e” em mod {phi(n)}.
Errado, possível matematicamente, mas não computacionalmente
El Gamal
O El Gamal possui como segurança de seu sistema a dificuldade do cálculo de logaritmos discretos em um corpo finito.
Sua principal aplicação é na transferência de assinaturas digitais e trocas de chaves no estabelecimento de comunicações. Possui três componentes básicos: gerador de chaves, algoritmo de cifragem e algoritmo decifragem.
Possui um processo similar ao Diffie-Hellman. Um grande exemplo de utilização do El Gamal é no PGP (Pretty Good Privacy).
É importante destacar que o El Gamal possui algumas características de algoritmos de criptografia simétrica.
One-Time Pad – OTP
É uma técnica de criptografia que, se utilizada da forma correta, é considerada inquebrável, ou incondicionalmente seguro.
Utiliza a combinação caractere por caractere com uma chave secreta aleatória, que deve ter, necessariamente, o mesmo tamanho da mensagem em claro. Esse é limitador de implementação do OTP. A chave deverá ser usada uma única vez e destruída após o uso.
Aproveito ainda para diferenciar o termo incondicionalmente seguro, conforme já vimos, de computacionalmente seguro. Este último está relacionado ao fato de que o custo de quebrar a cifra é superior ao valor da informação codificada ou que o tempo exigido para quebrar a cifra é superior ao tempo de vida útil da informação.
OTP Diagrama
FUNÇÕES HASH
As funções HASH são algoritmos criptográficos unidirecionais. Utiliza-se funções matemáticas que permitem gerar um resultado de tamanho fixo independentemente do tamanho do conteúdo de entrada.
Desse modo, por ser unidirecional, isso quer dizer que, a partir de um resultado, não há algoritmos ou chave que retorne à mensagem original.
Para se ter uma ideia, podemos aplicar um algoritmo HASH (MD5) a uma sequência como “123456” e teremos como resultado o texto “e10adc3949ba59abbe56e057f20f883e”. Mesmo que alguém tenha acesso ao último conteúdo, não há como saber que foi a mensagem “123456” que gerou tal resultado.
princípios da integridade, autenticidade e confidencialidade
A confidencialidade pode ser garantida nesse caso na hipótese de violação da base de dados do servidor. Assim, caso as mensagens em claro fossem armazenadas, o atacante teria obtido facilmente todas essas informações. Mas, como o que está armazenado é somente o valor do HASH, isso dificultará o processo de obtenção das senhas por parte do atacante.
Para fins de integridade, temos uma mensagem que deve ser enviada a um destinatário. Desse modo, envia- se a mensagem e o resultado do HASH da referida mensagem. Quando o destinatário receber essas duas informações, ele pegará o texto em claro e fará o cálculo da função HASH dessa mensagem e comparará com a outra mensagem recebida. Caso sejam idênticas, quer dizer que, de fato, não houve alteração namensagem recebida. Caso seja diferente, assume-se que houve uma violação à integridade dos dados. Esse modelo é muito utilizado na assinatura digital e certificado digital.