Comparación de DES, Triple DES, AES, cifrado blowfish para datos

Respuestas:

245

Utiliza AES.

En mas detalles:

  • DES es el antiguo "estándar de cifrado de datos" de los años setenta. Su tamaño de clave es demasiado corto para la seguridad adecuada (56 bits efectivos; esto puede ser forzado, como se demostró hace más de diez años ). Además, DES utiliza bloques de 64 bits, lo que plantea algunos problemas potenciales al cifrar varios gigabytes de datos con la misma clave (un gigabyte no es tan grande hoy en día).
  • 3DES es un truco para reutilizar las implementaciones de DES, al conectar en cascada tres instancias de DES (con claves distintas). Se cree que 3DES es seguro hasta al menos " 2 112 " de seguridad (que es bastante, y bastante lejos en el ámbito de "no rompible con la tecnología actual"). Pero es lento, especialmente en el software (DES fue diseñado para una implementación de hardware eficiente, pero es una mierda de software; y 3DES es tres veces más).
  • Blowfish es un cifrado en bloque propuesto por Bruce Schneier y desplegado en algunos softwares. Blowfish puede usar claves enormes y se considera seguro, excepto en lo que respecta a su tamaño de bloque, que es de 64 bits, al igual que DES y 3DES. Blowfish es eficiente en software, al menos en algunas plataformas de software (utiliza tablas de búsqueda dependientes de la clave, por lo tanto, el rendimiento depende de cómo la plataforma maneja la memoria y los cachés).
  • AES es el sucesor de DES como algoritmo de cifrado simétrico estándar para las organizaciones federales de EE. UU. (Y también es estándar para casi todos los demás). AES acepta claves de 128, 192 o 256 bits (128 bits ya es muy irrompible), utiliza bloques de 128 bits (por lo que no hay problema) y es eficiente tanto en software como en hardware. Fue seleccionado a través de un concurso abierto que involucró a cientos de criptógrafos durante varios años. Básicamente, no puedes tener algo mejor que eso.

Entonces, en caso de duda, use AES.

Tenga en cuenta que un cifrado de bloque es un cuadro que encripta "bloques" (fragmentos de datos de 128 bits con AES). Al encriptar un "mensaje" que puede tener más de 128 bits, el mensaje debe dividirse en bloques, y la forma real en que se divide se denomina modo de operación o "encadenamiento". El modo ingenuo (división simple) se llama BCE y tiene problemas. Usar un cifrado de bloque correctamente no es fácil, y es más importante que seleccionar entre, por ejemplo, AES o 3DES.

Thomas Pornin
fuente
44
Siendo un poco loco, casi siempre recomendaría AES256
hdost
2
¡Santo cielo, la NSA podría romper el DES en 1976, pero siguió alentando su uso hasta 2002! Llámame paranoico, pero tengo miedo del impulso de AES
Dr Deo
25

Todos estos esquemas, excepto AES y Blowfish, tienen vulnerabilidades conocidas y no deben usarse.
Sin embargo, Blowfish ha sido reemplazado por Twofish .

SLaks
fuente
11

Los métodos de cifrado descritos son cifrados de bloque de clave simétrica.

El Estándar de cifrado de datos (DES) es el predecesor, que cifra los datos en bloques de 64 bits con una clave de 56 bits. Cada bloque se cifra de forma aislada, lo cual es una vulnerabilidad de seguridad.

Triple DES extiende la longitud de la clave de DES mediante la aplicación de tres operaciones DES en cada bloque: un cifrado con clave 0, un descifrado con clave 1 y un cifrado con clave 2. Estas claves pueden estar relacionadas.

DES y 3DES generalmente se encuentran al interactuar con productos y servicios comerciales heredados.

AES se considera el sucesor y el estándar moderno. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Creo que se desaconseja el uso de Blowfish.

Se recomienda encarecidamente que no intente implementar su propia criptografía y en su lugar use una implementación de alto nivel como GPG para datos en reposo o SSL / TLS para datos en tránsito. Aquí hay un excelente y aleccionador video sobre vulnerabilidades de cifrado http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/

Rohannes
fuente
2
¿Por qué se desaconseja el uso de pez globo? ¿No es el más seguro?
yogsma 05 de
55
@yogsma: Blowfish tiene un tamaño de bloque de solo 64 bits (ya que se pensó como un reemplazo directo para DES en los protocolos) y, por lo tanto, se vuelve problemático después de algunos GB de datos cifrados con la misma clave.
Paŭlo Ebermann
@rohannes, por qué se desalienta BlowFish, leí en alguna parte en términos de rendimiento BlowFish es mejor que AES mire este artículo en brighthub.com
Yogesh
9

AES es un algoritmo criptográfico simétrico, mientras que RSA es un algoritmo criptográfico asimétrico (o de clave pública). El cifrado y descifrado se realiza con una sola clave en AES, mientras que utiliza claves separadas (claves públicas y privadas) en RSA. La fuerza de una clave AES de 128 bits es aproximadamente equivalente a la clave RSA de 2600 bits.

RAM DE BHEEMA
fuente
77
¿Puedes proporcionar las matemáticas que respaldan esta respuesta o una fuente? Me interesaría saber cómo llegó a la conclusión de que AES de 128 bits es más o menos equivalente a RSA de 2600 bits (me doy cuenta de que esta es una respuesta anterior)
Russell Uhl
3
@RussellUhl: estoy de acuerdo en que la historia de esos números es una pregunta interesante, incluso después de 2 años adicionales de silencio. :) Esos números parecen derivarse de este documento PDF: eprint.iacr.org/2013/635.pdf titulado Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm
4

Aunque TripleDESCryptoServiceProvider es un método seguro y bueno, pero es demasiado lento. Si desea referirse a MSDN, recibirá consejos que le permitirán usar AES en lugar de TripleDES. Consulte el siguiente enlace: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx , verá esta atención en la sección de comentarios:

Nota: Se encuentra disponible un nuevo algoritmo de cifrado simétrico, Advanced Encryption Standard (AES). Considere usar la clase AesCryptoServiceProvider en lugar de la clase TripleDESCryptoServiceProvider. Use TripleDESCryptoServiceProvider solo para compatibilidad con aplicaciones y datos heredados.

Buena suerte

QMaster
fuente
3
Esto es gracioso dado que Microsoft todavía usa TripleDES activamente en algunos de sus productos para el cifrado ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard
@Toma la razón, pero no olvides que muchos productos de software utilizan tecnologías antiguas y eso lleva un tiempo adaptarse a los nuevos métodos. Especialmente para grandes empresas como Microsoft, aunque estoy de acuerdo con usted sobre la necesidad de actualizar y esto es malo cuando nuestra empresa sugiere algunas cosas y hace otras.
QMaster
1
Microsoft es conocido por su compatibilidad con versiones anteriores. Su uso de TripleDES cae directamente bajo "solo por compatibilidad con aplicaciones y datos heredados".
Dan Bechard
1

ingrese la descripción de la imagen aquí

DES es el antiguo "estándar de cifrado de datos" de los años setenta.

Keshav Gera
fuente
0

AES es el algoritmo estándar actualmente aceptado para usar (de ahí el nombre de Advanced Encryption Standard ).

El resto no lo son.

Ian Boyd
fuente
3
¿De ahí el nombre? ¿Cómo indica entonces el nombre "AES" que debe usarse?
CodyBugstein
15
¿Qué pasa con el estándar de cifrado de datos ? Su lógica "tiene un nombre <estándar>, por lo tanto, esto es lo que debe usarse" es bastante defectuosa.
Zlatin Zlatev
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
fuente
AES es más rápido que 3DES, especialmente en las CPU que admiten AES-NI. (pero incluso sin eso: DES fue diseñado para implementaciones rápidas de hardware, no implementaciones de software) ( DES normal es ligeramente más rápido en algunos puntos de referencia , pero las teclas de 56 bits lo hacen inadecuado para cualquier uso actual)
Gert van den Berg