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 técnicas criptoanalíticas modernas y la potencia de supercomputación. Sin embargo, una versión adaptada de DES, Triple DES (3DES), utiliza el mismo algoritmo para producir un cifrado más seguro.
General | |
---|---|
Publicado por primera vez | 1995 (RFC 1851) |
Derivado de | DES |
Detalle de cifrado | |
Tamaños de clave | 56 bits |
Tamaños de bloque | 64 bits |
Estructura | Red Feistel |
Rondas | 48 rondas equivalentes a DES |
Mejor criptoanálisis público | |
Suertes: 2 32 textos sin formato conocidos, 2 113 operaciones, incluidas 2 encriptaciones de 90 DES, 2 88 de memoria; Biham: encuentre una de las 2 28 claves de destino con un puñado de textos sin formato elegidos por clave y 2 84 cifrados |
Mientras que los estándares gubernamentales y de la industria abrevian el nombre del algoritmo como TDES (Triple DES) y TDEA (Triple Data Encryption Algorithm), [1] RFC 1851 se refirió a él como 3DES desde el momento en que promulgó la idea por primera vez, y este homónimo ha llegado desde entonces. en un amplio uso por la mayoría de los proveedores, usuarios y criptógrafos. [2] [3] [4] [5]
Estándares
El algoritmo de cifrado de datos triple se define de diversas formas en varios documentos de estándares:
- RFC 1851, The ESP Triple DES Transform [6] (aprobado en 1995)
- ANSI ANS X9.52-1998 Modos de funcionamiento del algoritmo de cifrado de datos triple [7] (aprobado en 1998, retirado en 2008 [8] )
- Estándar de cifrado de datos (DES) FIPS PUB 46-3 [9] (aprobado en 1999, retirado en 2005 [10] )
- Publicación especial del NIST 800-67 Revisión 2 Recomendación para el cifrado en bloque del algoritmo de cifrado de datos triple (TDEA) [11] (aprobado en 2017)
- ISO / IEC 18033-3: 2010: Parte 3: Cifrados en bloque [12] (aprobado en 2005)
Algoritmo
El tamaño de clave del cifrado DES original de 56 bits fue generalmente suficiente cuando se diseñó ese algoritmo, pero la disponibilidad de un poder computacional creciente hizo factibles los ataques de fuerza bruta . Triple DES proporciona un método relativamente simple de aumentar el tamaño de la clave de DES para protegerse 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 una longitud de clave corta (como DES) sería usar dos claves en lugar de uno, y encriptar cada bloque dos veces: . Si la longitud de la clave original es bits, uno esperaría que este esquema proporcione seguridad equivalente al uso de claves bits de largo. Desafortunadamente, este enfoque es vulnerable al ataque de encuentro en el medio : dado un par de texto plano conocido, tal que , se puede recuperar el par de claves en pasos, en lugar de los pasos que uno esperaría de un algoritmo idealmente seguro con bits de clave.
Por lo tanto, Triple DES utiliza un "paquete de claves" que consta de tres claves DES ,, y , cada uno de 56 bits (excluidos los bits de paridad ). El algoritmo de cifrado es:
Es decir, DES encripta con , DES descifrar con, luego DES encripta con .
El descifrado es al revés:
Es decir, descifrar con , cifrar con, luego descifra con .
Cada triple cifrado 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 fuerza del algoritmo cuando se utiliza la opción de codificación 2 y proporciona compatibilidad con versiones anteriores de DES con la opción de codificación 3.
Opciones de codificación
Los estándares definen tres opciones de codificación:
- Opción de codificación 1
- Las tres claves son independientes. A veces conocidas como 3TDEA [13] o teclas de triple longitud. [14]
- Este es el más fuerte, con 3 × 56 = 168 bits de clave independientes. Todavía es vulnerable al ataque de encuentro en el medio , pero el ataque requiere 2 2 × 56 pasos.
- Opción de codificación 2
- K 1 y K 2 son independientes y K 3 = K 1 . A veces conocidas como 2TDEA [13] o teclas de doble longitud. [14]
- Esto proporciona una longitud de clave más corta de 112 bits y un compromiso razonable entre DES y la opción de codificación 1, con la misma advertencia que la anterior. [15] Esta es una mejora con respecto al "doble DES" que solo requiere 2 56 pasos para atacar. NIST ha desaprobado esta opción. [13]
- Opción de codificación 3
- Las tres claves son idénticas, es decir, K 1 = K 2 = K 3 .
- Esto es retrocompatible con DES, ya que dos 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 . [13] [11]
Cada clave DES tiene 8 bytes de paridad impar , con 56 bits de clave y 8 bits de detección de errores. [7] 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 las especificaciones TCG actuales versión 2.0 de los algoritmos aprobados para Trusted Platform Module ) tampoco permite el uso de cualquiera de los 64 siguientes valores de 64 bits 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), enumeradas aquí en hexadecimal (en cada byte, el bit menos significativo es un bit generado por paridad impar, se descarta al formar las claves efectivas 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.0 E.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 se ha vuelto a aprobar con las opciones de clave 1 y 2 únicamente. En general, las tres claves se generan tomando 24 bytes de un generador aleatorio fuerte y solo se debe usar la opción de clave 1 (la opción 2 necesita solo 16 bytes aleatorios, pero los generadores aleatorios fuertes son difíciles de afirmar y se considera una mejor práctica usar solo la opción 1) ).
Cifrado de más de un bloque
Al igual que con todos los cifrados de bloques, el cifrado y el descifrado de múltiples bloques de datos se pueden realizar utilizando 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 [16] que algunos modos solo se utilizarán 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 será diferente cada vez, mientras que ISO / IEC 10116 [17] no lo hace. FIPS PUB 46-3 e ISO / IEC 18033-3 definen solo el algoritmo de bloque único y no imponen restricciones sobre los modos de funcionamiento de varios 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 solo 112 bits. [13] 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 , [18] [19] y, por lo tanto, el NIST la designa para tener solo 80 bits de seguridad . [13] Esto puede considerarse inseguro y, como consecuencia, el NIST ha desaprobado Triple DES en 2017. [20]
El tamaño de bloque corto de 64 bits hace que 3DES sea vulnerable a los 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 aprovechar esto en TLS y OpenVPN. [21] Se requiere un ataque práctico Sweet32 en conjuntos de cifrado basados en 3DES en TLS bloques (785 GB) para un ataque completo, pero los investigadores tuvieron suerte de conseguir una colisión justo después de bloques, que tomó solo 25 minutos.
La seguridad de TDEA se ve afectada por la cantidad de bloques procesados con un paquete de claves. No se utilizará un paquete de claves para aplicar protección criptográfica (p. Ej., Cifrar) más de Bloques de datos de 64 bits.
- Recomendación para el cifrado en bloque del algoritmo de cifrado de datos triple (TDEA) (SP 800-67 Rev2) [11]
OpenSSL no incluye 3DES por defecto desde la versión 1.1.0 (agosto de 2016) y lo considera un "cifrado débil". [22]
Uso
La industria de pagos electrónicos utiliza Triple DES y continúa desarrollando y promulgando estándares basados en él, como EMV . [23]
Las versiones anteriores de Microsoft OneNote , [24] Microsoft Outlook 2007 [25] y Microsoft System Center Configuration Manager 2012 [26] 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. [27]
Firefox y Mozilla Thunderbird [28] usan Triple DES en modo CBC para cifrar las credenciales de inicio de sesión de autenticación de sitios web cuando se usa una contraseña maestra.
Implementaciones
A continuación se muestra una lista de bibliotecas de criptografía que admiten Triple DES:
- Botan
- Castillo inflable
- cryptlib
- Cripto ++
- Libgcrypt
- Ortiga
- OpenSSL
- loboSSL
- Módulo de plataforma confiable (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.
Ver también
- DES-X
- Estándar de cifrado avanzado (AES)
- Cifrado Feistel
- Walter Tuchman
Referencias y notas
- ^ "Triple cifrado DES" . IBM . Consultado el 17 de mayo de 2010 .
- ^ Alanazi, Hamdan. O .; Zaidan, BB; Zaidan, AA; Jalab, Hamid A .; Shabbir, M .; Al-Nabhani, Y. (marzo de 2010). "Nuevo estudio comparativo entre DES, 3DES y AES dentro de nueve factores". Revista de Computación . 2 (3). arXiv : 1003.4085 . Código bibliográfico : 2010arXiv1003.4085A . ISSN 2151-9617 .
- ^ "Guía de introducción del dispositivo de seguridad Cisco PIX 515E: obtención de una licencia DES o una licencia 3DES-AES" (PDF) . Cisco . 2006 . Consultado el 5 de septiembre de 2017 .
- ^ "3DES Actualización: La mayoría de los bancos están por hacer, pero ..." ATM y de débito Noticias . 2007-03-29. Archivado desde el original el 10 de mayo de 2013 . Consultado el 5 de septiembre de 2017 .
- ^ RFC 2828 y RFC 4949
- ^ Karn, P .; Metzger, P .; Simpson, W. (septiembre de 1995). La transformación ESP Triple DES . doi : 10.17487 / RFC1851 . RFC 1851 .
- ^ a b "Modos de operación del algoritmo de cifrado de datos triple ANSI X9.52-1998" . Consultado el 5 de septiembre de 2017 .Amplía el algoritmo de cifrado de datos ANSI X3.92-1981 .
- ^ "Acción de las normas ANSI" (PDF) . Vol. 39 no. 46. ANSI . 2008-11-14 . Consultado el 5 de septiembre de 2017 . La revista Cite requiere
|magazine=
( ayuda ) - ^ "FIPS PUB 46-3: Estándar de cifrado de datos (DES)" (PDF) . Departamento de Comercio de los Estados Unidos . 25 de octubre de 1999 . Consultado el 5 de septiembre de 2017 .
- ^ "Anuncio de la aprobación de la retirada del estándar federal de procesamiento de información (FIPS) 46–3 ..." (PDF) . Registro Federal . 70 (96). 2005-05-19 . Consultado el 5 de septiembre de 2017 .
- ^ a b c Barker, Elaine; Mouha, Nicky (noviembre de 2017). "Publicación especial NIST 800-67 Revisión 2: Recomendación para el cifrado en bloque del algoritmo de cifrado de datos triple (TDEA)" . NIST . doi : 10.6028 / NIST.SP.800-67r2 . Cite journal requiere
|journal=
( ayuda ) - ^ "ISO / IEC 18033-3: 2010 Tecnología de la información - Técnicas de seguridad - Algoritmos de cifrado - Parte 3: Cifrados en bloque" . ISO . Diciembre de 2010 . Consultado el 5 de septiembre de 2017 .
- ^ a b c d e f 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 . Consultado el 5 de septiembre de 2017 .
- ^ a b "La Guía de Criptografía: Triple DES" . Mundo de la criptografía. Archivado desde el 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 y Hall / CRC . pag. 223. ISBN 9781466570269.
- ^ Publicación especial NIST 800-38A, Recomendación para modos de operación, métodos y técnicas de cifrado en bloque , 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 bloque de n bits" (3 ed.). Febrero de 2006 . Consultado el 5 de septiembre de 2017 .
- ^ Merkle, Ralph ; Hellman, Martin (julio de 1981). "Sobre la seguridad del cifrado múltiple" (PDF) . Comunicaciones de la ACM . 24 (7): 465–467. CiteSeerX 10.1.1.164.251 . doi : 10.1145 / 358699.358718 . S2CID 11583508 .
- ^ van Oorschot, Paul ; Wiener, Michael J. (1990). Un ataque de texto plano conocido en el cifrado triple de dos claves . EUROCRYPT '90, LNCS 473. págs. 318–325. CiteSeerX 10.1.1.66.6575 .
- ^ "Actualización al uso actual y la obsolescencia de TDEA" . nist.gov . Consultado el 2 de agosto de 2019 .
- ^ "Sweet32: ataques de cumpleaños en cifrados de bloque de 64 bits en TLS y OpenVPN" . sweet32.info . Consultado el 5 de septiembre de 2017 .
- ^ Salz, Rich (24 de agosto de 2016). "El número SWEET32, CVE-2016-2183" . OpenSSL . Consultado el 5 de septiembre de 2017 .
- ^ "Algoritmos criptográficos aprobados por el anexo B - Estándar de cifrado de datos (DES) B1.1" . EMV 4.2: Libro 2 - Seguridad y administración de claves (4.2 ed.). EMVCo . Junio de 2008. p. 137.
El algoritmo de cifrado DES triple de clave de doble longitud (véase ISO / CEI 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.
- ^ Blog de OneNote de Daniel Escapa, Cifrado para secciones protegidas con contraseña , noviembre de 2006.
- ^ "Cifrar mensajes de correo electrónico - Outlook - Microsoft Office Online" . office.microsoft.com . Archivado desde el original el 25 de diciembre de 2008.
Se aplica a: Microsoft Office Outlook 2007
- ^ Documentación del producto Microsoft TechNet, Referencia técnica para controles criptográficos usados en Configuration Manager , octubre de 2012.
- ^ https://portal.office.com/AdminPortal/home?switchtomodern=true#/MessageCenter?id=MC171089
- ^ Código fuente de Mozilla NSS . Consulte la Explicación de la estructura de directorios (especialmente las secciones de introducción y "seguridad") para obtener información general.