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.


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 .


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/


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.


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


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.


0

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

O resto não é.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.