En criptografía , Triple DES ( 3DES o TDES ), oficialmente el Algoritmo de Cifrado de Datos Triple ( TDEA o Triple DEA ), es un cifrado de bloques 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 técnicas criptoanalíticas modernas y la potencia de supercomputación; Triple DES aumenta la seguridad efectiva a 112 bits. Un CVE publicado en 2016, CVE-2016-2183 , reveló una vulnerabilidad de seguridad importante en los algoritmos de cifrado DES y 3DES. Este CVE, combinado con el tamaño de clave inadecuado de 3DES, llevó a NIST a desaprobar 3DES en 2019 y a prohibir todos los usos (excepto el procesamiento de datos ya cifrados) para finales de 2023. [ 1 ] Ha sido reemplazado por el más seguro y más robusto AES .
Si bien los estándares del gobierno y la industria de EE. UU. abrevian el nombre del algoritmo como TDES (Triple DES) y TDEA (Triple Data Encryption Algorithm), [ 2 ] el RFC 1851 se refirió a él como 3DES desde el momento en que promulgó la idea por primera vez, y este nombre se ha generalizado desde entonces entre la mayoría de los proveedores, usuarios y criptógrafos. [ 3 ] [ 4 ] [ 5 ]
Historia
En 1978, Walter Tuchman propuso un método de cifrado triple que utilizaba DES con dos claves de 56 bits ; en 1981, Merkle y Hellman propusieron una versión de triple clave más segura de 3DES con 112 bits de seguridad. [ 6 ]
Estándares
El algoritmo de cifrado de datos triple se define de diversas maneras en varios documentos de estándares:
- RFC 1851, La transformación ESP Triple DES [ 7 ] (aprobada en 1995)
- ANSI ANS X9.52-1998 Modos de operación del algoritmo de cifrado de datos triple [ 8 ] (aprobado en 1998, retirado en 2008 [ 9 ] )
- Estándar de cifrado de datos (DES) FIPS PUB 46-3 [ 10 ] (aprobado en 1999, retirado en 2005 [ 11 ] )
- Recomendación de la publicación especial 800-67 Revisión 2 del NIST para el cifrado de bloques del algoritmo de cifrado de datos triple (TDEA) [ 12 ] (aprobada en 2017, retirada en 2024 [ 13 ] )
- ISO / IEC 18033-3:2010: Parte 3: Cifrados de bloques [ 14 ] (aprobado en 2005)
Algoritmo
El tamaño de clave de 56 bits del cifrado DES original se consideró generalmente suficiente en el momento de su diseño, pero la creciente capacidad de procesamiento hizo posibles los ataques de fuerza bruta . Triple DES proporciona un método relativamente sencillo para aumentar el tamaño de clave de DES y protegerse contra dichos ataques, sin necesidad de diseñar un algoritmo de cifrado por bloques completamente nuevo.
Un enfoque ingenuo para aumentar la seguridad de un algoritmo de cifrado por bloques con una longitud de clave corta (como DES) sería utilizar dos claves.en lugar de uno, y cifrar cada bloque dos veces:. Si la longitud de clave original esbits, uno esperaría que este esquema proporcionara una seguridad equivalente a la de usar una clavebits de longitud. Desafortunadamente, este enfoque es vulnerable al ataque de encuentro en el medio : dado un par de texto plano conocido, de tal manera que, se puede recuperar el par de clavesenpasos, en lugar de lapasos que cabría esperar de un algoritmo idealmente seguro conpiezas de llave.
Por lo tanto, Triple DES utiliza un "paquete de claves" que comprende tres claves DES ,,y, cada uno de 56 bits (excluyendo los bits de paridad ). El algoritmo de cifrado es:
Es decir, cifrar con, descifrar con, luego cifrar con.
El descifrado es el proceso inverso:
Es decir, descifrar con, cifrar con, luego descifrar con.
Cada triple encriptación cifra un bloque de 64 bits de datos.
En cada caso, la operación intermedia es la inversa de la primera y la última. Esto mejora la robustez del algoritmo al usar la opción de clave 2 y proporciona compatibilidad con versiones anteriores de DES con la opción de clave 3.
Operación EEE
El texto anterior describe la secuencia EDE (cifrar-descifrar-cifrar) común y estandarizada. Existe una secuencia "EEE" (cifrar-cifrar-cifrar) independiente compatible con algunas bibliotecas en configuraciones de dos o tres claves. [ 15 ]
Opciones de clave
Las normas definen tres opciones de clave:
- Opción de introducción de datos 1
- Las tres claves son independientes. A veces se las conoce como 3TDEA [ 16 ] o claves de triple longitud. [ 17 ]
Esta es la más segura, con 3 × 56 = 168 bits de clave independientes. Aún es vulnerable al ataque de encuentro en el medio , pero este requiere 2 × 56 pasos.
- Opción de introducción de datos 2
- K 1 y K 2 son independientes, y K 3 = K 1. A veces se les conoce como 2TDEA [ 16 ] o claves de doble longitud. [ 17 ]
Esto proporciona una longitud de clave más corta de 56 × 2 o 112 bits y un compromiso razonable entre DES y la opción de clave 1, con la misma salvedad que la anterior. [ 18 ] Esto es una mejora con respecto al "doble DES", que solo requiere 2 56 pasos para ser atacado. El NIST prohibió esta opción en 2015. [ 16 ]
- Opción de introducción de datos 3
- Las tres claves son idénticas, es decir, K 1 = K 2 = K 3 .
Esto es compatible con versiones anteriores de DES, ya que dos de las operaciones se cancelan. ISO/IEC 18033-3 nunca permitió esta opción, y NIST ya no permite K 1 = K 2 o K 2 = K 3. [ 16 ] [ 12 ]
Cada clave DES es de 8 bytes de paridad impar , con 56 bits de clave y 8 bits de detección de errores. [ 8 ] 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.
El NIST (y la versión 2.0 de las especificaciones TCG actuales de los algoritmos aprobados para el Módulo de Plataforma Segura ) también prohíbe el uso de cualquiera de los 64 valores de 64 bits siguientes en cualquier 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), que se enumeran aquí en hexadecimal (en cada byte, el bit menos significativo es un bit generado de paridad impar, que se descarta al formar la clave efectiva de 56 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.FE.01.01.FE.FE, FE.FE.01.01.FE.FE.01.01, E0.FE.01.1F.F1.FE.01.0E, 1F.01.FE.E0.0E.01.FE.F1, 01.01.E0.E0.01.01.F1.F1, FE.FE.1F.1F.FE.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.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, 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.F1.01, FE.1F.1F.FE.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, 01.1F.01.1F.01.0E.01.0E, FE.E0.FE.E0.FE.F1.FE.F1, E0.E0.FE.FE.F1.F1.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.FE.0E.0E.FE.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, 01.1F.1F.01.01.0E.0E.01, FE.E0.E0.FE.FE.F1.F1.FE, E0.E0.E0.E0.F1.F1.F1.F1, 1F.1F.1F.1F.0E.0E.0E.0E
Con estas restricciones en las claves permitidas, Triple DES fue aprobado nuevamente con las opciones de clave 1 y 2 únicamente. Generalmente, las tres claves se generan tomando 24 bytes de un generador de números aleatorios robusto, y solo debe usarse la opción de clave 1 (la opción 2 solo necesita 16 bytes aleatorios, pero los generadores de números aleatorios robustos son difíciles de verificar y se considera una buena práctica usar solo la opción 1).
Cifrado de más de un bloque
Como ocurre con todos los cifrados de bloques, el cifrado y descifrado de múltiples bloques de datos puede realizarse utilizando diversos modos de operación , que generalmente pueden definirse 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, [ 19 ] que algunos modos solo deben utilizarse con ciertas restricciones que no necesariamente se aplican a las especificaciones generales de dichos 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 [ 20 ] no lo hace. FIPS PUB 46-3 e ISO/IEC 18033-3 definen únicamente el algoritmo de un solo bloque y no imponen ninguna restricción a los modos de operación para múltiples bloques.
Seguridad
En general, Triple DES con tres claves independientes ( opción de clave 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. [ 16 ] La opción de clave 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 plano elegido o texto plano conocido , [ 6 ] [ 21 ] y por lo tanto, NIST la designa con solo 80 bits de seguridad . [ 16 ] Esto puede considerarse inseguro; como consecuencia, NIST anunció la descontinuación planificada de Triple DES en 2017. [ 22 ]
El tamaño de bloque corto de 64 bits hace que 3DES sea vulnerable a ataques de colisión de bloques si se utiliza para cifrar grandes cantidades de datos con la misma clave. El ataque Sweet32 muestra cómo se puede explotar esto en TLS y OpenVPN. [ 23 ] Se requiere un ataque Sweet32 práctico en conjuntos de cifrado basados en 3DES en TLSbloques (785 GB) para un ataque completo, pero los investigadores tuvieron suerte de obtener una colisión justo después de aproximadamentebloques, que solo tardaron 25 minutos.
La seguridad de TDEA se ve afectada por el número de bloques procesados con un paquete de claves. Un paquete de claves no debe usarse para aplicar protección criptográfica (por ejemplo, cifrar) más deBloques de datos de 64 bits.
— Recomendación para el algoritmo de cifrado de datos triple (TDEA) en bloque (SP 800-67 Rev2) [ 12 ]
OpenSSL no incluye 3DES por defecto desde la versión 1.1.0 (agosto de 2016) y lo considera un "cifrado débil". [ 24 ]
Uso
A partir de 2008, la industria de pagos electrónicos utiliza Triple DES y continúa desarrollando y promulgando estándares basados en él, como EMV . [ 25 ]
Las versiones anteriores de Microsoft OneNote , [ 26 ] Microsoft Outlook 2007 [ 27 ] y Microsoft System Center Configuration Manager 2012 [ 28 ] utilizan Triple DES para proteger con contraseña el contenido del usuario y los datos del sistema. Sin embargo, en diciembre de 2018, Microsoft anunció la retirada de 3DES en todo su servicio Office 365. [ 29 ]
En 2025, a partir de la versión 144, Firefox abandonó 3DES-CBC para cifrar las credenciales en el ordenador del usuario y cambió a AES-256-CBC. [ 30 ]
Implementaciones
A continuación se muestra una lista de bibliotecas de criptografía que admiten Triple DES:
- Botánica
- Castillo hinchable
- cryptlib
- Cripto++
- Libgcrypt
- Ortiga
- NSS
- OpenSSL
- loboSSL
- Módulo de plataforma segura (TPM)
Es posible que algunas de las implementaciones mencionadas anteriormente no incluyan 3DES en la compilación predeterminada, en versiones posteriores o más recientes, pero aún así pueden admitir el descifrado para poder manejar los datos existentes.
Véase también
Referencias y notas
- ↑ Barker, Elaine; Roginsky, Allen (1 de marzo de 2019). "Transición del uso de algoritmos criptográficos y longitudes de clave" (PDF) . Gaithersburg, MD: Publicaciones del NIST. pág. 7. doi : 10.6028/nist.sp.800-131ar2 . NIST SP 800-131A Revisión 2. Archivado (PDF) del original el 11 de mayo de 2019. Recuperado el 20 de septiembre de 2022 .
- ↑ "Cifrado Triple DES" . IBM . Consultado el 17 de mayo de 2010 .
- ↑ "Guía de inicio rápido del dispositivo de seguridad Cisco PIX 515E: Obtención de una licencia DES o una licencia 3DES-AES" (PDF) . Cisco . 2006. Archivado (PDF) del original el 7 de febrero de 2016. Consultado el 5 de septiembre de 2017 .
- ↑ "Actualización 3DES: La mayoría de los bancos ya terminaron, pero..." Noticias sobre cajeros automáticos y débitos . 29 de marzo de 2007. Archivado del original el 10 de mayo de 2013. Consultado el 5 de septiembre de 2017 .
- ↑ RFC 2828 y RFC 4949
- 1 2 Merkle, Ralph ; Hellman, Martin (julio de 1981). "Sobre la seguridad del cifrado múltiple" (PDF) . Communications of the ACM . 24 (7): 465– 467. CiteSeerX 10.1.1.164.251 . doi : 10.1145/358699.358718 . S2CID 11583508. Archivado del original (PDF) el 10 de febrero de 2013. Recuperado el 15 de noviembre de 2013 .
- ↑ Karn, P.; Metzger, P.; Simpson, W. (septiembre de 1995). La transformación ESP Triple DES . IETF . doi : 10.17487/RFC1851 . RFC 1851 .
- 1 2 "ANSI X9.52-1998 Modos de operación del algoritmo de cifrado de datos triple" . Recuperado el 5 de septiembre de 2017 .Extiende el algoritmo de cifrado de datos ANSI X3.92-1981 .
- ↑ "Aviso de retirada: ANS con al menos 10 años de antigüedad respecto a la fecha de aprobación" (PDF) . ANSI Standards Action . Vol. 39, n.º 46. ANSI . 14-11-2008. pág. 5. ISSN 0038-9633 . Archivado (PDF) del original el 6-09-2017 . Consultado el 5-09-2017 .
- ↑ "FIPS PUB 46-3: Estándar de cifrado de datos (DES)" (PDF) . Departamento de Comercio de los Estados Unidos . 25 de octubre de 1999. Archivado (PDF) del original el 5 de abril de 2003. Consultado el 5 de septiembre de 2017 .
- ↑ "Anuncio de la aprobación de la retirada de la norma federal de procesamiento de información (FIPS) 46-3..." (PDF) . Registro Federal . 70 (96). 19 de mayo de 2005. Archivado (PDF) del original el 17 de septiembre de 2008. Consultado el 5 de septiembre de 2017 .
- 1 2 3 Barker, Elaine; Mouha, Nicky (noviembre de 2017). "Publicación especial NIST 800-67 Revisión 2: Recomendación para el cifrado de bloques del algoritmo de cifrado de datos triple (TDEA)" (PDF) . NIST . doi : 10.6028/NIST.SP.800-67r2 . Archivado (PDF) del original el 1 de diciembre de 2017. Recuperado el 21 de noviembre de 2017 .
- ↑ El NIST retirará la publicación especial 800-67 Revisión 2 https://csrc.nist.gov/news/2023/nist-to-withdraw-sp-800-67-rev-2
- ↑ "ISO/IEC 18033-3:2010 Tecnología de la información -- Técnicas de seguridad -- Algoritmos de cifrado -- Parte 3: Cifrados por bloques" . ISO . Diciembre de 2010. Consultado el 5 de septiembre de 2017 .
- ↑ "Crypt::DES_EEE3 - Cifrado/descifrado Triple-DES EEE - metacpan.org" . metacpan.org .
- 1 2 3 4 5 6 Barker, Elaine (enero de 2016). "Publicación especial NIST 800-57: Recomendación para la gestión de claves Parte 1: General" (PDF) (4.ª ed.). NIST . Archivado (PDF) del original el 7 de febrero de 2016. Recuperado el 5 de septiembre de 2017 .
- 1 2 "La guía de criptografía: Triple DES" . Cryptography World. Archivado del original el 12 de marzo de 2017. Consultado el 5 de septiembre de 2017 .
- ↑ Katz, Jonathan; Lindell, Yehuda (2015). Introducción a la criptografía moderna . Chapman and Hall/CRC . pág. 223. ISBN 9781466570269.
- ↑ Publicación especial 800-38A del NIST, Recomendaciones para los modos de operación, métodos y técnicas del cifrado por bloques , edición de 2001 (PDF)
- ↑ "ISO/IEC 10116:2006 Tecnología de la información - Técnicas de seguridad - Modos de operación para un cifrado de bloques de n bits" (3.ª ed.). Febrero de 2006. Consultado el 5 de septiembre de 2017 .
- ↑ van Oorschot, Paul ; Wiener, Michael J. (1990). Un ataque de texto plano conocido contra el cifrado triple de dos claves . EUROCRYPT '90, LNCS 473. pp. 318–325 . CiteSeerX 10.1.1.66.6575 .
- ↑ "Actualización sobre el uso actual y la descontinuación de TDEA" . nist.gov . 11 de julio de 2017. Consultado el 2 de agosto de 2019 .
- ↑ "Sweet32: Ataques de cumpleaños a cifrados de bloques de 64 bits en TLS y OpenVPN" . sweet32.info . Consultado el 5 de septiembre de 2017 .
- ↑ Salz, Rich (24-08-2016). "El problema SWEET32, CVE-2016-2183" . OpenSSL . Recuperado el 11-10-2024 .
- ↑ "Anexo B Algoritmos criptográficos aprobados – B1.1 Estándar de cifrado de datos (DES)" . EMV 4.2: Libro 2 – Seguridad y gestión de claves ( ed. 4.2). EMVCo . Junio de 2008. pág. 137. Archivado del original el 18 de julio de 2017. Recuperado el 21 de marzo de 2009. El
algoritmo de cifrado DES triple de clave de doble longitud (véase ISO/IEC 18033-3) es el algoritmo criptográfico aprobado que se utilizará en los mecanismos de cifrado y MAC especificados en el Anexo A1. El algoritmo se basa en el algoritmo DES (único) estandarizado en ISO 16609.
- ↑ Escapa, Daniel (09/11/2006). "Cifrado para secciones protegidas con contraseña" . Blog de OneNote de Daniel Escapa . Archivado del original el 16/12/2009 . Consultado el 28/01/2010 .
- ↑ "Cifrar mensajes de correo electrónico – Outlook – Microsoft Office Online" . office.microsoft.com . Archivado del original el 25/12/2008.
Se aplica a: Microsoft Office Outlook 2007
- ↑ Documentación de producto de Microsoft TechNet, Referencia técnica para controles criptográficos utilizados en Configuration Manager , octubre de 2012.
- ↑ "Portal de administración" . portal.office.com . Consultado el 14 de marzo de 2023 .
- ↑ "1974184 - Habilitar la compatibilidad con AES para cifrar inicios de sesión con SDR y migrar todos los inicios de sesión existentes" . bugzilla.mozilla.org . Consultado el 14 de septiembre de 2025 .
- Cifrados de bloques
- Cifrados de bloques rotos
- Estándar de cifrado de datos