DES triple

ImprimirCitar
Cifra de bloques

En criptografía, Triple DES (3DES o TDES), oficialmente el Algoritmo de cifrado de datos triple (TDEA o Triple DEA), es un cifrado de bloque de clave simétrica, que aplica el algoritmo de cifrado DES tres veces a cada bloque de datos. La clave de 56 bits del estándar de cifrado de datos (DES) ya no se considera adecuada frente a las modernas técnicas criptoanalíticas y el poder de la supercomputación. Un CVE publicado en 2016, CVE-2016-2183, reveló una importante vulnerabilidad de seguridad en los algoritmos de cifrado DES y 3DES. Este CVE, combinado con el tamaño de clave inadecuado de DES y 3DES, NIST ha desaprobado DES y 3DES para nuevas aplicaciones en 2017, y para todas las aplicaciones a finales de 2023. Ha sido reemplazado por el AES más seguro y robusto.

Si bien los estándares gubernamentales y de la industria abrevian el nombre del algoritmo como TDES (Triple DES) y TDEA (Algoritmo de cifrado de datos triple), RFC 1851 se refirió a él como 3DES desde el momento en que promulgó la idea por primera vez, y esto Desde entonces, el homónimo ha sido ampliamente utilizado por la mayoría de los proveedores, usuarios y criptógrafos.

Historia

En 1978, Walter Tuchman propuso un método de cifrado triple usando DES con dos claves de 56 bits; en 1981, Merkle y Hellman propusieron una versión de clave triple más segura de 3DES con 112 bits de seguridad.

Estándares

El algoritmo de cifrado de datos triple se define de diversas formas en varios documentos estándar:

  • RFC 1851, ESP Triple DES Transform (aprobado en 1995)
  • ANSI ANS X9.52-1998 Modos de algoritmo de cifrado de datos triples de operación (aprobado en 1998, retirado en 2008)
  • FIPS PUB 46-3 Estándar de cifrado de datos (DES) (aprobado en 1999, retirado en 2005)
  • NIST Special Publication 800-67 Revision 2 Recomendación para el algoritmo de cifrado de datos triple (TDEA) (aprobado en 2017)
  • ISO/IEC 18033-3:2010: Parte 3: Cifras de bloque (aprobado en 2005)

Algoritmo

El tamaño de clave del cifrado DES original de 56 bits generalmente era suficiente cuando se diseñó ese algoritmo, pero la disponibilidad de una potencia computacional cada vez mayor hizo factibles los ataques de fuerza bruta. Triple DES proporciona un método relativamente simple para aumentar el tamaño de la clave de DES para proteger contra tales ataques, sin la necesidad de diseñar un algoritmo de cifrado de bloques completamente nuevo.

Un enfoque ingenuo para aumentar la fuerza de un algoritmo de cifrado de bloques con longitud de tecla corta (como DES) sería utilizar dos teclas ()K1,K2){displaystyle (K1,K2)} en lugar de uno, y encriptar cada bloque dos veces: EK2()EK1()plaintext)){displaystyle E_{K2}(E_{K1}({textrm {plaintext})})}. Si la longitud de la llave original es n{displaystyle n} bits, one would hope this scheme provides security equivalent to using key 2n{displaystyle 2n} Hace mucho. Desafortunadamente, este enfoque es vulnerable a un ataque medio-en-el-medio: dado un par de texto conocido ()x,Sí.){displaystyle (x,y)}, tal que Sí.=EK2()EK1()x)){displaystyle Y=E_{K2}(E_{K1}(x)}, uno puede recuperar el par de llaves ()K1,K2){displaystyle (K1,K2)} dentro 2n+1{displaystyle 2^{n+1} pasos, en lugar de los 22n{displaystyle 2^{2n} pasos uno esperaría de un algoritmo idealmente seguro con 2n{displaystyle 2n} pedazos de llave.

Por lo tanto, Triple DES utiliza un "grupo clave" que comprende tres teclas DES, K1{displaystyle K1}, K2{displaystyle K2} y K3{displaystyle K3}, cada uno de 56 bits (excluyendo bits de paridad). El algoritmo de cifrado es:

ciphertext=EK3()DK2()EK1()plaintext))).{displaystyle {textrm {ciphertext}=E_{K3}(D_{K2}(E_{K1}({textrm {plaintext}})). }

Es decir, cifrado de DES con K1{displaystyle K1}, DES Decrypt con K2{displaystyle K2}, entonces DES cifrado con K3{displaystyle K3}.

El descifrado es al revés:

plaintext=DK1()EK2()DK3()ciphertext))).{displaystyle {textrm {plaintext}=D_{K1}(E_{K2}(D_{K3}({textrm {ciphertext}})). }

Eso es, descifrar con K3{displaystyle K3}, cifrado con K2{displaystyle K2}, luego descifrar con K1{displaystyle K1}.

Cada cifrado triple cifra un bloque de 64 bits de datos.

En cada caso, la operación del medio es la inversa de la primera y la última. Esto mejora la fuerza del algoritmo cuando se utiliza la opción de codificación 2 y proporciona compatibilidad con DES con la opción de codificación 3.

Opciones de teclado

Los estándares definen tres opciones de codificación:

Opción clave 1
Las tres llaves son independientes. A veces conocido como 3TDEA o teclas de triple longitud.
Este es el más fuerte, con 3 × 56 = 168 partes clave independientes. Todavía es vulnerable al ataque en medio, pero el ataque requiere 22 × 56 pasos.
Opción clave 2
K1 y K2 son independientes, y K3 = K1. A veces conocido como 2TDEA o teclas de doble longitud.
Esto proporciona una longitud clave más corta de 112 bits y un compromiso razonable entre DES y Keying opción 1, con la misma caveat que arriba. Esta es una mejora sobre "doble DES" que sólo requiere 256 pasos para atacar. NIST ha deprecado esta opción.
Opción clave 3
Las tres llaves son idénticas, es decir, K1 = K2 = K3.
Esto es compatible con DES, ya que dos operaciones cancelan. ISO/IEC 18033-3 nunca permitió esta opción, y NIST ya no permite K1 = K2 o K2 = K3.

Cada clave DES tiene 8 bytes de paridad impar, con 56 bits de clave y 8 bits de detección de errores. Un paquete de claves requiere 24 bytes para la opción 1, 16 para la opción 2 u 8 para la opción 3.

NIST (y la versión 2.0 de las especificaciones TCG actuales de los algoritmos aprobados para el módulo de plataforma segura) tampoco permite el uso de ninguno de los 64 valores de 64 bits siguientes en ninguna clave (tenga en cuenta que 32 de ellos son el complemento binario de los otros 32; y que 32 de estas claves son también la permutación inversa de bytes de las otras 32), enumeradas aquí en hexadecimal (en cada byte, el bit menos significativo es un bit generado con paridad impar, se descarta al formar el efectivo 56- teclas de bits):

01.01.01.01.01.01.01.01, FE.FE.FE.FE.FE.FE.FE.FE, E0.FE.FE.E0.F1.FE.FE.F1, 1F.01.01.1F.0E.01.01.0E,
01.01.FE.01.01.FE.FE, FE.FE.01.01.FE.FE.01.01.01, E0.FE.01.1F.F1.FE.01.0E, 1F.01.FE.E0.0E.01.FE.F1, F1,01.
01.01.E0.E0.01.01.F1, FE.FE.1F.1F.FE.0E.0E, E0.FE.1F.01.F1.FE.0E.01, 1F.01.E0.FE.0E.01.F1.FE,
01.01.1F.1F.01.01.0E.0E, FE.FE.E0.FE.FE.F1.F1, E0.FE.E0.FE.F1.FE.F1.FE, 1F.01.1F.01.0E.01.0E.01,
01.FE.01.FE.01.FE.01.FE, FE.01.FE.01.FE.01.FE.01, E0.01.FE.1F.F1.01.FE.0E, 1F.FE.01.E0.0E.FE.01.F1, F1,
01.FE.FE.01.01.FE.FE.01, FE.01.01.FE.FE.01.01.FE, E0.01.01.E0.F1.01.01.F1, 1F.FE.FE.1F.0E.FE.FE.0E,
01.FE.E0.1F.01.FE.F1.0E, FE.01.1F.E0.FE.01.0E.F1, E0.01.1F.FE.F1.01.0E.FE, 1F.FE.E0.01.0E.FE.F1.01,
01.FE.1F.E0.01.FE.0E.F1, FE.01.E0.1F.FE.01.F1.0E, E0.01.E0.01.F1.01.F1.01, 1F.FE.1F.FE.0E.FE.0E.FE,
01.E0.01.E0.01.F1.01.F1, FE.1F.FE.1F.FE.0E.FE.0E, E0.1F.FE.01.F1.0E.FE.01, 1F.E0.01.FE.0E.F1.01.FE,
01.E0.FE.1F.01.F1.FE.0E, FE.1F.01.E0.FE.0E.01.F1, E0.1F.01.FE.F1.0E.01.FE, 1F.E0.FE.01.0E.F1.FE.01,
01.E0.E0.01.01.F1.01, FE.1F.1F.FE.0E.0E.FE, E0.1F.1F.E0.F1.0E.0E.F1, 1F.E0.E0.1F.0E.F1.F1.0E,
01.E0.1F.FE.01.F1.0E.FE, FE.1F.E0.01.FE.0E.F1.01, E0.1F.E0.1F.F1.0E.F1.0E, 1F.E0.1F.E0.0E.F1.0E.F1,F1.0E.F1.0E.F1.
01.1F.01.1F.01.0E.01.0E, FE.E0.FE.E0.FE.F1.FE.F1, E0.FE.FE.F1.FE.FE.FE, 1F.1F.01.01.0E.0E.01.01,
01.1F.FE.E0.01.0E.FE.F1, FE.E0.01.1F.FE.F1.01.0E, E0.E0.01.01.F1.F1.01.01, 1F.1F.FE.0E.0E.FE.
01.1F.E0.FE.01.0E.F1.FE, FE.E0.1F.01.FE.F1.0E.01, E0.E0.1F.1F.F1.F1.0E.0E, 1F.1F.E0.E0.0E.0E.F1.F1,F1,
01.1F.1F.01.01.0E.0E.01, FE.E0.E0.FE.F1.F1.FE, E0.E0.E0.F1.F1.F1, 1F.1F.1F.1F.1F.1F.0E.0E.0E.0E,

Con estas restricciones sobre las claves permitidas, Triple DES se volvió a aprobar con las opciones de claves 1 y 2 únicamente. Por lo general, las tres claves se generan tomando 24 bytes de un generador aleatorio fuerte y solo se debe usar la opción de codificación 1 (la opción 2 necesita solo 16 bytes aleatorios, pero los generadores aleatorios fuertes son difíciles de afirmar y se considera una buena práctica). use solo la opción 1).

Cifrado de más de un bloque

Al igual que con todos los cifrados de bloques, el cifrado y descifrado de múltiples bloques de datos se puede realizar mediante una variedad de modos de operación, que generalmente se pueden definir independientemente del algoritmo de cifrado de bloques. Sin embargo, ANS X9.52 especifica directamente, y NIST SP 800-67 especifica a través de SP 800-38A que algunos modos solo se deben usar con ciertas restricciones que no se aplican necesariamente a las especificaciones generales de esos modos. Por ejemplo, ANS X9.52 especifica que para el encadenamiento de bloques de cifrado, el vector de inicialización debe ser diferente cada vez, mientras que ISO/IEC 10116 no lo hace. FIPS PUB 46-3 e ISO/IEC 18033-3 definen solo el algoritmo de bloque único y no imponen ninguna restricción sobre los modos de operación para múltiples bloques.

Seguridad

En general, Triple DES con tres claves independientes (opción de codificación 1) tiene una longitud de clave de 168 bits (tres claves DES de 56 bits), pero debido al ataque de encuentro en el medio, la seguridad efectiva que proporciona es de solo 112 bits. La opción de codificación 2 reduce el tamaño efectivo de la clave a 112 bits (porque la tercera clave es la misma que la primera). Sin embargo, esta opción es susceptible a ciertos ataques de texto sin formato elegido o de texto sin formato conocido y, por lo tanto, el NIST la designa para tener solo 80 bits de seguridad. Esto puede considerarse inseguro y, como consecuencia, Triple DES ha sido desaprobado por NIST en 2017.

Logo del ataque Sweet32

El tamaño de bloque corto de 64 bits hace 3DES vulnerables a bloquear ataques de colisión si se utiliza para cifrar grandes cantidades de datos con la misma clave. El ataque Sweet32 muestra cómo esto se puede explotar en TLS y OpenVPN. Práctico ataque Sweet32 a los cuartos de baño ciféricos 3DES en TLS requeridos 236,6{displaystyle 2^{36.6} bloques (785 GB) para un ataque completo, pero los investigadores tuvieron suerte de conseguir una colisión justo después de alrededor 220{displaystyle 2^{20} bloques, que tardaron sólo 25 minutos.

La seguridad de la TDEA se ve afectada por el número de bloques procesados con un paquete clave. Un paquete clave no se utilizará para aplicar protección criptográfica (por ejemplo, encriptación) más que 220{displaystyle 2^{20} bloques de datos de 64 bits.

Recomendación para Cifrado de Datos Triple Algoritmo (TDEA) Block Cipher (SP 800-67 Rev2)

OpenSSL no incluye 3DES de forma predeterminada desde la versión 1.1.0 (agosto de 2016) y lo considera un "cifrado débil".

Uso

La industria de pagos electrónicos usa Triple DES y continúa desarrollando y promulgando estándares basados en él, como EMV.

Las versiones anteriores de Microsoft OneNote, Microsoft Outlook 2007 y Microsoft System Center Configuration Manager 2012 usan Triple DES para proteger con contraseña el contenido del usuario y los datos del sistema. Sin embargo, en diciembre de 2018, Microsoft anunció el retiro de 3DES en todo su servicio Office 365.

Firefox y Mozilla Thunderbird utilizan Triple DES en modo CBC para cifrar las credenciales de inicio de sesión de autenticación del sitio web cuando se utiliza una contraseña maestra.

Implementaciones

A continuación se muestra una lista de bibliotecas de criptografía que admiten Triple DES:

  • Botan
  • Bouncy Castle
  • cryptlib
  • Crypto+
  • Libgcrypt
  • Nettle
  • OpenSSL
  • wolfSSL
  • Módulo de Plataforma Confiada (alias TPM, implementación de hardware)

Es posible que algunas implementaciones anteriores no incluyan 3DES en la compilación predeterminada, en versiones posteriores o más recientes.

Referencias y notas

  1. ^ Barker, Elaine; Roginsky, Allen (2019-03-01). "Transitioning the use of cryptographic algoritmos and key lengths" (PDF). NIST SP 800-131Ar2 (Rev2 ed.). Gaithersburg, MD: NIST Publicaciones: 7. doi:10.6028/nist.sp.800-131ar2. (PDF) del original en 2019-05-11. {{cite journal}}: Cite journal requires |journal= (Ayuda)
  2. ^ "Triple DES Encryption". IBM. Retrieved 2010-05-17.
  3. ^ Alanazi, Hamdan. O.; Zaidan, B. B.; Zaidan, A. A.; Jalab, Hamid A.; Shabbir, M.; Al-Nabhani, Y. (Marzo 2010). "Nuevo estudio comparativo entre DES, 3DES y AES dentro de nueve factores". Journal of Computing. 2 3). arXiv:1003.4085. Bibcode:2010arXiv1003.4085A. ISSN 2151-9617.
  4. ^ "Cisco PIX 515E Security Appliance Cómo empezar Guía: Obtener una licencia DES o una licencia 3DES-AES" (PDF)Cisco. 2006. Archivado (PDF) original el 2016-02-07. Retrieved 2017-09-05.
  5. ^ "3DES Update: La mayoría de los bancos están listos, pero..." ATM ' Debit News. 2007-03-29. Archivado desde el original el 2013-05-10. Retrieved 2017-09-05.
  6. ^ RFC 2828 y RFC 4949
  7. ^ Merkle, R. and M. Hellman, “On the Security of Multiple Encryption”, Communications of the ACM, vol. 24, no. 7, págs. 465 a 467, julio de 1981.
  8. ^ Karn, P.; Metzger, P.; Simpson, W. (septiembre de 1995). El ESP Triple DES Transform. doi:10.17487/RFC1851RFC 1851.
  9. ^ a b "ANSI X9.52-1998 Modos de Algoritmo de Cifrado de Datos Triple de Operación". Retrieved 2017-09-05. Extienda ANSI X3.92-1981 Algoritmo de cifrado de datos.
  10. ^ "ANSI Standards Action" (PDF). Vol. 39, no. 46. ANSI. 2008-11-14. Archivado (PDF) del original en 2017-09-06. Retrieved 2017-09-05. {{cite magazine}}: Cite magazine requiere |magazine= (Ayuda)
  11. ^ "FIPS PUB 46-3: Data Encryption Standard (DES)" (PDF). Departamento de Comercio de los Estados Unidos. 25 de octubre de 1999. Archivado (PDF) original el 2003-04-05. Retrieved 2017-09-05.
  12. ^ "Anunciando la aprobación del retiro de la norma federal de procesamiento de información (FIPS) 46-3..." (PDF). Federal Register. 70 2005-05-19. Archivado (PDF) original el 2008-09-17. Retrieved 2017-09-05.
  13. ^ a b c Barker, Elaine; Mouha, Nicky (noviembre de 2017). "NIST Special Publication 800-67 Revision 2: Recomendación para el algoritmo de cifrado de datos triples (TDEA) Block Cipher". NIST. doi:10.6028/NIST.SP.800-67r2. {{cite journal}}: Cite journal requires |journal= (Ayuda)
  14. ^ "ISO/IEC 18033-3:2010 Tecnología de la información - Técnicas de seguridad - algoritmos de cifrado - Parte 3: Cifras de bloque". ISO. Diciembre de 2010. Retrieved 2017-09-05.
  15. ^ a b c d e f Barker, Elaine (enero 2016). "NIST Special Publication 800-57: Recommendation for Key Management Primera parte: General (PDF) (4 ed.). NIST. Archivado (PDF) original el 2016-02-07. Retrieved 2017-09-05.
  16. ^ a b "The Cryptography Guide: Triple DES". Cryptography World. Archivado desde el original en 2017-03-12. Retrieved 2017-09-05.
  17. ^ Katz, Jonathan; Lindell, Yehuda (2015). Introducción a la Cryptografía Moderna. Chapman and Hall/CRC. p. 223. ISBN 9781466570269.
  18. ^ NIST Special Publication 800-38A, Recommendation for Block Cipher Modes of Operation, Methods and Techniques, 2001 Edition (PDF)
  19. ^ "ISO/IEC 10116:2006 Tecnología de la información - Técnicas de seguridad - Modos de operación para un código de bloques n-bit" (3 ed.). Febrero de 2006. Retrieved 2017-09-05.
  20. ^ Merkle, Ralph; Hellman, Martin (Julio 1981). "Sobre la seguridad de la encriptación múltiple" (PDF). Comunicaciones de la ACM. 24 (7): 465-467. CiteSeerX10.1.1.164.251. doi:10.1145/358699.358718. S2CID 11583508.
  21. ^ van Oorschot, Paul; Wiener, Michael J. (1990). Un ataque de texto conocido en la encriptación triple de dos teclasEUROCRYPT'90, LNCS 473. pp. 318-325. CiteSeerX10.1.1.66.6575.
  22. ^ "Actualizar el uso actual y la depretación de TDEA". nist.gov11 de julio de 2017. Retrieved 2 de agosto 2019.
  23. ^ "Sweet32: Ataques de cumpleaños a cifrados de bloques de 64 bits en TLS y OpenVPN". sweet32.info. Retrieved 2017-09-05.
  24. ^ Salz, Rich (2016-08-24). "El asunto SWEET32, CVE-2016-2183". OpenSSL. Retrieved 2017-09-05.
  25. ^ "Anexo B Algoritmos Críptos Aprobados – B1.1 Data Encryption Standard (DES)". EMV 4.2: Libro 2 - Seguridad y gestión clave (4.2 ed.). EMVCo. June 2008. p. 137. El algoritmo de enciframiento de triple DES de doble longitud (véase ISO/IEC 18033-3) es el algoritmo criptográfico aprobado que se utilizará en los mecanismos de enciframiento y MAC especificados en el Anexo A1. El algoritmo se basa en el algoritmo DES (single) estandarizado en ISO 16609.
  26. ^ El blog OneNote de Daniel Escapa, cifrado para secciones protegidas por contraseña, noviembre de 2006.
  27. ^ "Encriptar mensajes de correo electrónico – Outlook – Microsoft Office Online". office.microsoft.com. Archivado desde el original el 12 al 25 de septiembre de 2008. Aplica a: Microsoft Office Outlook 2007
  28. ^ Microsoft Tech Documentación de producto neta, Referencia Técnica para Controles Cryptográficos Utilizado en Configuration Manager, Octubre 2012.
  29. ^ https://portal.office.com/AdminPortal/home?switchtomodern=true#/MessageCenter?id=MC171089
  30. ^ Mozilla NSS código fuente. Véase Explicación de la estructura de directorios (especialmente las secciones introductorias y "seguridad") para información de antecedentes.

Contenido relacionado

Cohete de combustible sólido

Algoritmo de búsqueda de cadenas

Lycos

Más resultados...
Tamaño del texto:
Copiar