DES é o antigo "padrão de criptografia de dados" dos anos setenta. Seu tamanho da chave é muito pequeno para a segurança adequada (56 bits efetivos; isso pode ser forçado, como foi demonstrado mais de dez anos atrás ). Além disso, o DES usa blocos de 64 bits, o que levanta alguns problemas em potencial ao criptografar vários gigabytes de dados com a mesma chave (um gigabyte não é tão grande hoje em dia).
O 3DES é um truque para reutilizar implementações do DES, conectando em cascata três instâncias do DES (com chaves distintas). Acredita-se que o 3DES seja seguro até pelo menos " 2 112 " de segurança (o que é bastante, e bastante distante no domínio "não pode ser quebrado com a tecnologia atual"). Mas é lento, especialmente em software (o DES foi projetado para uma implementação eficiente de hardware, mas é uma droga em software; e o 3DES é uma droga três vezes mais).
Blowfish é uma cifra em bloco proposta por Bruce Schneier e implantada em alguns softwares. Blowfish pode usar chaves enormes e acredita-se seguro, exceto no que diz respeito ao tamanho do bloco, que é de 64 bits, assim como DES e 3DES. O Blowfish é eficiente em software, pelo menos em algumas plataformas de software (ele usa tabelas de pesquisa dependentes de chave; portanto, o desempenho depende de como a plataforma lida com a memória e os caches).
O AES é o sucessor do DES como algoritmo de criptografia simétrica padrão para organizações federais dos EUA (e como padrão para praticamente todo mundo também). O AES aceita chaves de 128, 192 ou 256 bits (128 bits já é muito inquebrável), usa blocos de 128 bits (portanto, não há problema) e é eficiente em software e hardware. Foi selecionado através de uma competição aberta envolvendo centenas de criptografadores durante vários anos. Basicamente, você não pode ter melhor que isso.
Portanto, em caso de dúvida, use o AES.
Observe que uma cifra de bloco é uma caixa que criptografa "blocos" (blocos de dados de 128 bits com o AES). Ao criptografar uma "mensagem" que pode ter mais de 128 bits, a mensagem deve ser dividida em blocos, e a maneira como você faz a divisão é chamada de modo de operação ou "encadeamento". O modo ingênuo (divisão simples) é chamado de BCE e tem problemas. Usar uma cifra de bloco corretamente não é fácil e é mais importante do que selecionar entre, por exemplo, AES ou 3DES.
Sendo um pouco de uma porca, eu quase sempre recomendo AES256
hdost
2
Puta merda, a NSA poderia quebrar o DES em 1976, mas continuou incentivando seu uso até 2002! Chame-me paranóico, mas estou com medo do impulso para a AES
Dr. Deo
25
Todos esses esquemas, exceto AES e Blowfish, possuem vulnerabilidades conhecidas e não devem ser usados.
No entanto, o Blowfish foi substituído pelo Twofish .
Os métodos de criptografia descritos são cifras de blocos de chaves simétricas.
O Data Encryption Standard (DES) é o predecessor, criptografando dados em blocos de 64 bits usando uma chave de 56 bits. Cada bloco é criptografado isoladamente, o que é uma vulnerabilidade de segurança.
O DES triplo estende o comprimento da chave do DES aplicando três operações DES em cada bloco: uma criptografia com a chave 0, uma descriptografia com a chave 1 e uma criptografia com a chave 2. Essas chaves podem estar relacionadas.
O DES e o 3DES são geralmente encontrados ao interagir com produtos e serviços comerciais herdados.
Eu acredito que o uso do Blowfish é desencorajado.
É altamente recomendável que você não tente implementar sua própria criptografia e, em vez disso, use uma implementação de alto nível, como GPG para dados em repouso ou SSL / TLS para dados em trânsito. Aqui está um vídeo excelente e preocupante sobre vulnerabilidades de criptografia http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/
Por que o uso de blowfish é desencorajado? Não é o mais seguro?
Yogma
5
@yogsma: O Blowfish possui um tamanho de bloco de apenas 64 bits (como um substituto para o DES nos protocolos) e, portanto, fica problemático após alguns GB de dados criptografados com a mesma chave.
Paŭlo Ebermann
@rohannes, por BlowFish é desencorajado, eu li em algum lugar em termos de desempenho BlowFish é melhor do que AES olhada neste artigo sobre brighthub.com
Yogesh
9
O AES é um algoritmo criptográfico simétrico, enquanto o RSA é um algoritmo criptográfico assimétrico (ou chave pública). A criptografia e descriptografia são feitas com uma única chave no AES, enquanto você usa chaves separadas (chaves públicas e privadas) no RSA. A força de uma chave AES de 128 bits é aproximadamente equivalente à chave RSA de 2600 bits.
você pode fornecer a matemática que apoia esta resposta ou uma fonte? Eu estaria interessado em saber como você chegou à conclusão de que 128-bit AES é aproximadamente equivalente a 2600 bits RSA (Sei que esta é uma resposta de idade)
Russell Uhl
3
@RussellUhl - Concordo que a história desses números é uma pergunta interessante, mesmo após 2 anos adicionais de silêncio. :) Esses números parecem deriváveis deste documento em PDF: eprint.iacr.org/2013/635.pdf intitulado Universal security - from bits and mips to pools, lakes – and beyond.
Nota
Um algoritmo de criptografia simétrica mais recente, o Advanced Encryption Standard (AES), está disponível. Considere usar a classe AesCryptoServiceProvider em vez da classe TripleDESCryptoServiceProvider. Use TripleDESCryptoServiceProvider apenas para compatibilidade com aplicativos e dados herdados.
Isso é engraçado, já que a Microsoft ainda usa ativamente o TripleDES em alguns de seus produtos para criptografia ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard
@ Você está certo, mas não se esqueça de que muitos softwares usam tecnologias antigas e isso leva um tempo para se adaptar aos novos métodos. Especialmente para grandes empresas como a Microsoft, embora eu concorde com você sobre a necessidade de atualização e isso é ruim quando nossa empresa sugere algumas coisas e outras.
QMaster 18/02
1
A Microsoft é notória pela compatibilidade com versões anteriores. O uso do TripleDES se enquadra diretamente em "apenas para compatibilidade com aplicativos e dados herdados".
precisa
1
DES é o antigo "padrão de criptografia de dados" dos anos setenta.
O AES é mais rápido que o 3DES, especialmente em CPUs que suportam AES-NI. (mas mesmo sem isso - o DES foi projetado para implementações rápidas de hardware, não para implementações de software) (o DES normal é um pouco mais rápido em alguns benchmarks , mas as chaves de 56 bits o tornam inadequado para qualquer uso atual)
Respostas:
Use AES.
Em mais detalhes:
Portanto, em caso de dúvida, use o AES.
Observe que uma cifra de bloco é uma caixa que criptografa "blocos" (blocos de dados de 128 bits com o AES). Ao criptografar uma "mensagem" que pode ter mais de 128 bits, a mensagem deve ser dividida em blocos, e a maneira como você faz a divisão é chamada de modo de operação ou "encadeamento". O modo ingênuo (divisão simples) é chamado de BCE e tem problemas. Usar uma cifra de bloco corretamente não é fácil e é mais importante do que selecionar entre, por exemplo, AES ou 3DES.
fonte
Todos esses esquemas, exceto AES e Blowfish, possuem vulnerabilidades conhecidas e não devem ser usados.
No entanto, o Blowfish foi substituído pelo Twofish .
fonte
Os métodos de criptografia descritos são cifras de blocos de chaves simétricas.
O Data Encryption Standard (DES) é o predecessor, criptografando dados em blocos de 64 bits usando uma chave de 56 bits. Cada bloco é criptografado isoladamente, o que é uma vulnerabilidade de segurança.
O DES triplo estende o comprimento da chave do DES aplicando três operações DES em cada bloco: uma criptografia com a chave 0, uma descriptografia com a chave 1 e uma criptografia com a chave 2. Essas chaves podem estar relacionadas.
O DES e o 3DES são geralmente encontrados ao interagir com produtos e serviços comerciais herdados.
AES é considerado o sucessor e padrão moderno. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Eu acredito que o uso do Blowfish é desencorajado.
É altamente recomendável que você não tente implementar sua própria criptografia e, em vez disso, use uma implementação de alto nível, como GPG para dados em repouso ou SSL / TLS para dados em trânsito. Aqui está um vídeo excelente e preocupante sobre vulnerabilidades de criptografia http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/
fonte
O AES é um algoritmo criptográfico simétrico, enquanto o RSA é um algoritmo criptográfico assimétrico (ou chave pública). A criptografia e descriptografia são feitas com uma única chave no AES, enquanto você usa chaves separadas (chaves públicas e privadas) no RSA. A força de uma chave AES de 128 bits é aproximadamente equivalente à chave RSA de 2600 bits.
fonte
Universal security - from bits and mips to pools, lakes – and beyond
.Embora o TripleDESCryptoServiceProvider seja um método seguro e bom, mas é muito lento. Se você deseja consultar o MSDN, receberá esse aviso para usar o AES, em vez do TripleDES. Verifique o link abaixo: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx, você verá esta atenção na seção de comentários:
Boa sorte
fonte
DES é o antigo "padrão de criptografia de dados" dos anos setenta.
fonte
AES é o algoritmo padrão atualmente aceito para uso (daí o nome Padrão Avançado de Criptografia ).
O resto não é.
fonte
fonte