stringtranslate.com

Triple DES

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 la supercomputación; Triple DES aumenta la seguridad efectiva a 112 bits. Una CVE publicada en 2016, CVE-2016-2183 , reveló una importante vulnerabilidad de seguridad en los algoritmos de cifrado DES y 3DES. Esta CVE, combinada con el tamaño de clave inadecuado de 3DES, llevó a que el NIST desestimara 3DES en 2019 y prohibiera todos los usos (excepto el procesamiento de datos ya cifrados) para fines de 2023. [1] Ha sido reemplazado por el AES más seguro y más robusto .

Si bien los estándares del gobierno y de la industria de los EE. UU. abrevian el nombre del algoritmo como TDES (Triple DES) y TDEA (Triple Data Encryption Algorithm), [2] RFC 1851 se refirió a él como 3DES desde el momento en que promulgó la idea por primera vez, y desde entonces este homónimo ha sido ampliamente utilizado por la mayoría de los proveedores, usuarios y criptógrafos. [3] [4] [5] [6]

Historia

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

Normas

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

Algoritmo

El tamaño de clave del cifrado DES original , de 56 bits, se consideró generalmente suficiente cuando se diseñó, pero la disponibilidad de una mayor potencia computacional hizo que los ataques de fuerza bruta fueran factibles. El triple DES proporciona un método relativamente simple para aumentar el tamaño de 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 utilizar dos claves en lugar de una y cifrar cada bloque dos veces: . Si la longitud de la clave original es de bits, se esperaría que este esquema proporcione una seguridad equivalente a utilizar una clave de bits de longitud. Desafortunadamente, este enfoque es vulnerable al ataque de encuentro en el medio : dado un par de texto simple conocido , tal que , se puede recuperar el par de claves en pasos, en lugar de los pasos que se esperarían de un algoritmo idealmente seguro con bits de clave.

Por lo tanto, Triple DES utiliza un "paquete de claves" que comprende tres claves DES , , y , cada una de 56 bits (excluidos los bits de paridad ). El algoritmo de cifrado es:

Es decir, cifrar con , descifrar con , luego cifrar con .

El descifrado es al revés:

Es decir, descifrar con , cifrar con , luego descifrar con .

Cada cifrado triple 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 solidez 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

Las normas definen tres opciones de codificación:

Opción de codificación 1
Las tres claves son independientes. A veces se las conoce como 3TDEA [16] o claves de triple longitud. [17]

Este es el más fuerte, con 3 × 56 = 168 bits de clave independientes. Aún es vulnerable al ataque de encuentro en el medio , pero el ataque requiere 2 pasos de 2 × 56 .

Opción de codificación 2
K 1 y K 2 son independientes y K 3 = K 1 . A veces se las 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 codificación 1, con la misma salvedad que la anterior. [18] Esto es una mejora con respecto al "DOBLE DES", que solo requiere 2 pasos de 56 para atacar. El NIST desautorizó esta opción en 2015. [16]

Opción de codificación 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. La norma ISO/IEC 18033-3 nunca permitió esta opción y el NIST ya no permite K 1 = K 2 o K 2 = K 3 . [16] [13]

Cada clave DES tiene 8 bytes de paridad impar , con 56 bits de clave y 8 bits de detección de errores. [9] 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 las especificaciones TCG versión 2.0 actuales de algoritmos aprobados para el Módulo de Plataforma Confiable ) también prohíben el uso de cualquiera de los siguientes 64 valores de 64 bits en ninguna clave (tenga en cuenta que 32 de ellos son el complemento binario de los otros 32; y que 32 de estas claves también son 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 por paridad impar, que se descarta al formar la clave efectiva de 56 bits):

01.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 sobre las claves permitidas, se volvió a aprobar Triple DES con las opciones de codificación 1 y 2 únicamente. Generalmente, las tres claves se generan tomando 24 bytes de un generador aleatorio fuerte, y solo se debe utilizar 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 aplicar y se considera que la mejor práctica es utilizar 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 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, [19] 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 debe ser diferente cada vez, mientras que ISO/IEC 10116 [20] 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 a 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. [16] La opción de codificación 2 reduce el tamaño de clave efectivo 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 simple elegido o de texto simple conocido , [21] [22] y, por lo tanto, el NIST la designa para que tenga solo 80  bits de seguridad . [16] Esto puede considerarse inseguro; como consecuencia, el NIST anunció la desaprobación planificada de Triple DES en 2017. [23]

Logotipo del ataque de Sweet32

El tamaño de bloque reducido 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. [24] Un ataque Sweet32 práctico a conjuntos de cifrados basados ​​en 3DES en TLS requirió bloques (785 GB) para un ataque completo, pero los investigadores tuvieron suerte de obtener una colisión justo después de alrededor de 25 bloques, lo que llevó solo 25 minutos.

La seguridad de TDEA se ve afectada por la cantidad de bloques procesados ​​con un paquete de claves. No se debe utilizar un paquete de claves para aplicar protección criptográfica (por ejemplo, cifrar) a más de 64 bloques de datos.

—  Recomendación para el algoritmo de cifrado de datos triple (TDEA) (SP 800-67 Rev2) [13]

OpenSSL no incluye 3DES por defecto desde la versión 1.1.0 (agosto de 2016) y lo considera un "cifrado débil". [25]

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 . [26]

Las versiones anteriores de Microsoft OneNote , [27] Microsoft Outlook 2007 [28] y Microsoft System Center Configuration Manager 2012 [29] 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ó el retiro de 3DES en todo su servicio Office 365. [30]

Firefox y Mozilla Thunderbird [31] 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:

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

Véase también

Referencias y notas

  1. ^ Barker, Elaine; Roginsky, Allen (1 de marzo de 2019). "Transición del uso de algoritmos criptográficos y longitudes de clave" (PDF) . Gaithersburg, MD: NIST Publications. pág. 7. doi :10.6028/nist.sp.800-131ar2. NIST SP 800-131A Revisión 2. Archivado (PDF) desde el original el 11 de mayo de 2019 . Consultado el 20 de septiembre de 2022 .
  2. ^ "Cifrado Triple DES". IBM . Consultado el 17 de mayo de 2010 .
  3. ^ 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". Journal of Computing . 2 (3). arXiv : 1003.4085 . Código Bibliográfico :2010arXiv1003.4085A. ISSN  2151-9617.
  4. ^ "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) desde el original el 2016-02-07 . Consultado el 2017-09-05 .
  5. ^ "Actualización de 3DES: la mayoría de los bancos ya no funcionan, pero..." ATM & Debit News . 2007-03-29. Archivado desde el original el 2013-05-10 . Consultado el 2017-09-05 .
  6. ^ RFC  2828 y RFC 4949
  7. ^ Merkle, R. y M. Hellman, "Sobre la seguridad del cifrado múltiple", Communications of the ACM, vol. 24, núm. 7, págs. 465–467, julio de 1981.
  8. ^ Karn, P.; Metzger, P.; Simpson, W. (septiembre de 1995). La transformada ESP Triple DES. doi : 10.17487/RFC1851 . RFC 1851.
  9. ^ ab "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 .
  10. ^ "Aviso de retiro: ANS al menos 10 años después de la fecha de aprobación" (PDF) . Acción de Normas ANSI . Vol. 39, no. 46. ANSI . 2008-11-14. p. 5. ISSN  0038-9633. Archivado (PDF) desde el original el 2017-09-06 . Consultado el 2017-09-05 .
  11. ^ "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) desde el original el 5 de abril de 2003 . Consultado el 5 de septiembre de 2017 .
  12. ^ "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). 19 de mayo de 2005. Archivado (PDF) desde el original el 17 de septiembre de 2008 . Consultado el 5 de septiembre de 2017 .
  13. ^ abc Barker, Elaine; Mouha, Nicky (noviembre de 2017). "Publicación especial NIST 800-67 Revisión 2: Recomendación para el algoritmo de cifrado de triple datos (TDEA)" (PDF) . NIST . doi : 10.6028/NIST.SP.800-67r2 . Archivado (PDF) desde el original el 2017-12-01 . Consultado el 2017-11-21 .
  14. ^ 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
  15. ^ "ISO/IEC 18033-3:2010 Tecnología de la información - Técnicas de seguridad - Algoritmos de cifrado - Parte 3: Cifrados de bloque". ISO . Diciembre de 2010 . Consultado el 5 de septiembre de 2017 .
  16. ^ abcdef 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) desde el original el 2016-02-07 . Consultado el 2017-09-05 .
  17. ^ ab "La guía de criptografía: Triple DES". Cryptography World. Archivado desde el original el 2017-03-12 . Consultado el 2017-09-05 .
  18. ^ Katz, Jonathan; Lindell, Yehuda (2015). Introducción a la criptografía moderna . Chapman y Hall/CRC . pág. 223. ISBN 9781466570269.
  19. ^ Publicación especial 800-38A del NIST, Recomendación sobre modos de operación, métodos y técnicas de cifrado de bloques, edición 2001 (PDF)
  20. ^ "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 .
  21. ^ 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. Archivado desde el original (PDF) el 2013-02-10 . Consultado el 2013-11-15 . 
  22. ^ van Oorschot, Paul ; Wiener, Michael J. (1990). Un ataque de texto plano conocido sobre cifrado triple de dos claves . EUROCRYPT '90, LNCS 473. págs. 318–325. CiteSeerX 10.1.1.66.6575 . 
  23. ^ "Actualización del uso actual y desuso de TDEA". nist.gov . 11 de julio de 2017 . Consultado el 2 de agosto de 2019 .
  24. ^ "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 .
  25. ^ Salz, Rich (24 de agosto de 2016). "El problema SWEET32, CVE-2016-2183". OpenSSL . Consultado el 5 de septiembre de 2017 .
  26. ^ "Anexo B Algoritmos criptográficos aprobados – Estándar de cifrado de datos B1.1 (DES)". EMV 4.2: Libro 2 – Seguridad y gestión de claves (4.2 ed.). EMVCo . Junio ​​de 2008. p. 137. Archivado desde el original el 18 de julio de 2017 . Consultado el 21 de marzo de 2009 . El algoritmo de cifrado triple DES de clave de doble longitud (véase ISO/IEC 18033-3) es el algoritmo criptográfico aprobado para su uso 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.
  27. ^ Escapa, Daniel (9 de noviembre de 2006). "Cifrado para secciones protegidas con contraseña". Blog de OneNote de Daniel Escapa . Archivado desde el original el 16 de diciembre de 2009. Consultado el 28 de enero de 2010 .
  28. ^ "Encriptar mensajes de correo electrónico – Outlook – Microsoft Office Online". office.microsoft.com . Archivado desde el original el 25 de diciembre de 2008. Válido para: Microsoft Office Outlook 2007
  29. ^ Documentación del producto Microsoft TechNet, Referencia técnica para controles criptográficos utilizados en Configuration Manager, octubre de 2012.
  30. ^ "Portal de administración". portal.office.com . Consultado el 14 de marzo de 2023 .
  31. ^ 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.