Comparação de criptografia DES, DES triplo, AES, blowfish para dados

Respostas:

245

Use AES.

Em mais detalhes:

  • 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.

Thomas Pornin
fonte
4
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 .

SLaks
fonte
11

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/

Rohannes
fonte
2
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.

BHEEMA RAM
fonte
7
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.
Jesse Chisholm
4

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:

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.

Boa sorte

QMaster
fonte
3
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

insira a descrição da imagem aqui

DES é o antigo "padrão de criptografia de dados" dos anos setenta.

Keshav Gera
fonte
0

AES é o algoritmo padrão atualmente aceito para uso (daí o nome Padrão Avançado de Criptografia ).

O resto não é.

Ian Boyd
fonte
3
Daí o nome? Como o nome "AES" indica que deve ser usado?
CodyBugstein
15
E o Padrão de Criptografia de Dados ? Sua lógica "tem <padrão> no nome - portanto, é isso que deve ser usado" é bastante falha.
Zlatin Zlatev 14/01
0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow
ikarayel
fonte
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)
Gert van den Berg