stringtranslate.com

Estándar de cifrado de datos

El estándar de cifrado de datos ( DES / ˌ d ˌ ˈ ɛ s , d ɛ z / ) es un algoritmo de clave simétrica para el cifrado de datos digitales. Aunque su corta longitud de clave de 56 bits la hace demasiado insegura para las aplicaciones modernas, ha tenido una gran influencia en el avance de la criptografía .

Desarrollado a principios de la década de 1970 en IBM y basado en un diseño anterior de Horst Feistel , el algoritmo fue presentado a la Oficina Nacional de Estándares (NBS) tras la invitación de la agencia para proponer un candidato para la protección de datos gubernamentales electrónicos sensibles y no clasificados. En 1976, después de consultar con la Agencia de Seguridad Nacional (NSA), la NBS seleccionó una versión ligeramente modificada (reforzada contra el criptoanálisis diferencial , pero debilitada contra ataques de fuerza bruta ), que se publicó como Estándar Federal de Procesamiento de Información (FIPS) oficial para Estados Unidos en 1977. [2]

La publicación de un estándar de cifrado aprobado por la NSA condujo a su rápida adopción internacional y a un escrutinio académico generalizado. Las controversias surgieron de elementos de diseño clasificados , una longitud de clave relativamente corta del diseño de cifrado de bloque de clave simétrica y la participación de la NSA, lo que generó sospechas sobre una puerta trasera . Las S-boxes que habían suscitado esas sospechas fueron diseñadas por la NSA para eliminar una puerta trasera que conocían en secreto ( criptoanálisis diferencial ). Sin embargo, la NSA también se aseguró de que el tamaño de la clave se redujera drásticamente para poder romper el cifrado mediante un ataque de fuerza bruta. [2] El intenso escrutinio académico que recibió el algoritmo a lo largo del tiempo condujo a la comprensión moderna de los cifrados en bloque y su criptoanálisis .

DES es inseguro debido al tamaño de clave relativamente corto de 56 bits . En enero de 1999, distribuido.net y Electronic Frontier Foundation colaboraron para descifrar públicamente una clave DES en 22 horas y 15 minutos (ver § Cronología). Sin embargo, las claves internas son mucho mayores que los 56 bits. El DES utiliza la clave de 56 bits para generar las subclaves de 16 * 48 bits, o 768 bits. La limitación de 56 bits de la clave es artificial, por lo que se puede ampliar hasta 768 bits. En 2014 se lanzó el DES-768, utiliza el mismo principio que el DES pero las 16 subclaves se generan mediante una función hash unidireccional. El resultado es un algoritmo que funciona a la misma velocidad que el DES, pero con una clave de 768 bits. [3] Lo mismo ocurre con el Triple DES con subclaves independientes, que permite obtener una clave de 2304 bits. [4]

También hay algunos resultados analíticos que demuestran debilidades teóricas en el cifrado, aunque son inviables en la práctica. Se cree que el algoritmo es prácticamente seguro en forma de Triple DES , aunque existen ataques teóricos. Este cifrado ha sido reemplazado por el Estándar de cifrado avanzado (AES). DES ha sido retirado como estándar por el Instituto Nacional de Estándares y Tecnología . [5]

Algunos documentos distinguen entre el estándar DES y su algoritmo, refiriéndose al algoritmo como DEA ( Algoritmo de cifrado de datos ).

Historia

Los orígenes de DES se remontan a 1972, cuando un estudio de la Oficina Nacional de Estándares sobre la seguridad informática del gobierno de EE. UU. identificó la necesidad de un estándar gubernamental para cifrar información confidencial y no clasificada. [6]

Casi al mismo tiempo, el ingeniero Mohamed Atalla fundó Atalla Corporation en 1972 y desarrolló el primer módulo de seguridad de hardware (HSM), el llamado "Atalla Box", que se comercializó en 1973. Protegía los dispositivos fuera de línea con una clave segura que generaba un PIN y fue un éxito comercial. Los bancos y las compañías de tarjetas de crédito temían que Atalla dominara el mercado, lo que impulsó el desarrollo de un estándar internacional de cifrado. [5] Atalla fue uno de los primeros competidores de IBM en el mercado bancario y fue citado como una influencia por los empleados de IBM que trabajaron en el estándar DES. [7] El IBM 3624 adoptó posteriormente un sistema de verificación de PIN similar al anterior sistema Atalla. [8]

El 15 de mayo de 1973, tras consultar con la NSA, la NBS solicitó propuestas para un cifrado que cumpliera con rigurosos criterios de diseño. Ninguna de las presentaciones fue adecuada. Se emitió una segunda solicitud el 27 de agosto de 1974. Esta vez, IBM presentó un candidato que se consideró aceptable: un cifrado desarrollado durante el período 1973-1974 basado en un algoritmo anterior, el cifrado Lucifer de Horst Feistel . El equipo de IBM involucrado en el diseño y análisis de cifrado incluía a Feistel, Walter Tuchman , Don Coppersmith , Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler , Edna Grossman , Bill Notz, Lynn Smith y Bryant Tuckerman .

La participación de la NSA en el diseño.

El 17 de marzo de 1975, el DES propuesto se publicó en el Registro Federal . Se solicitaron comentarios del público y al año siguiente se llevaron a cabo dos talleres abiertos para discutir la norma propuesta. Se recibieron críticas de los pioneros de la criptografía de clave pública Martin Hellman y Whitfield Diffie , [1] citando una longitud de clave más corta y las misteriosas " cajas S " como evidencia de interferencia indebida por parte de la NSA. La sospecha era que la agencia de inteligencia había debilitado encubiertamente el algoritmo para que ellos (pero nadie más) pudieran leer fácilmente mensajes cifrados. [9] Alan Konheim (uno de los diseñadores de DES) comentó: "Enviamos las S-boxes a Washington. Regresaron y eran todas diferentes". [10] El Comité Selecto de Inteligencia del Senado de los Estados Unidos revisó las acciones de la NSA para determinar si había habido alguna participación indebida. En el resumen no clasificado de sus hallazgos, publicado en 1978, el Comité escribió:

En el desarrollo de DES, la NSA convenció a IBM de que un tamaño de clave reducido era suficiente; ayudó indirectamente en el desarrollo de las estructuras S-box; y certificó que el algoritmo DES final estaba, hasta donde sabían, libre de cualquier debilidad estadística o matemática. [11]

Sin embargo, también encontró que

La NSA no alteró el diseño del algoritmo de ninguna manera. IBM inventó y diseñó el algoritmo, tomó todas las decisiones pertinentes al respecto y estuvo de acuerdo en que el tamaño de clave acordado era más que adecuado para todas las aplicaciones comerciales para las que estaba destinado el DES. [12]

Otro miembro del equipo DES, Walter Tuchman, afirmó: "Desarrollamos el algoritmo DES completamente dentro de IBM utilizando IBMers. ¡La NSA no dictó ni un solo cable!" [13] Por el contrario, un libro desclasificado de la NSA sobre historia criptológica afirma:

En 1973, la NBS solicitó a la industria privada un estándar de cifrado de datos (DES). Las primeras ofertas fueron decepcionantes, por lo que la NSA comenzó a trabajar en su propio algoritmo. Entonces Howard Rosenblum, subdirector de investigación e ingeniería, descubrió que Walter Tuchman de IBM estaba trabajando en una modificación de Lucifer para uso general. La NSA le dio autorización a Tuchman y lo contrató para trabajar junto con la Agencia en su modificación de Lucifer." [14]

y

La NSA trabajó estrechamente con IBM para fortalecer el algoritmo contra todos los ataques, excepto los de fuerza bruta, y para fortalecer las tablas de sustitución, llamadas S-boxes. Por el contrario, la NSA intentó convencer a IBM de que redujera la longitud de la clave de 64 a 48 bits. Al final se comprometieron con una clave de 56 bits. [15] [16]

Algunas de las sospechas sobre debilidades ocultas en las S-boxes se disiparon en 1990, con el descubrimiento independiente y la publicación abierta por parte de Eli Biham y Adi Shamir del criptoanálisis diferencial , un método general para descifrar cifrados en bloque. Las cajas S de DES eran mucho más resistentes al ataque que si hubieran sido elegidas al azar, lo que sugiere fuertemente que IBM conocía la técnica en los años 1970. De hecho, este fue el caso; En 1994, Don Coppersmith publicó algunos de los criterios de diseño originales para las S-boxes. [17] Según Steven Levy , los investigadores de IBM Watson descubrieron ataques criptoanalíticos diferenciales en 1974 y la NSA les pidió que mantuvieran la técnica en secreto. [18] Coppersmith explica la decisión de mantener el secreto de IBM diciendo: "eso se debió a que [el criptoanálisis diferencial] puede ser una herramienta muy poderosa, utilizada contra muchos esquemas, y existía la preocupación de que dicha información en el dominio público pudiera afectar negativamente a la seguridad nacional". Levy cita a Walter Tuchman: "Nos pidieron que selláramos todos nuestros documentos como confidenciales... De hecho, pusimos un número en cada uno y los encerramos en cajas fuertes, porque se consideraban clasificados por el gobierno de los EE. UU. Dijeron que lo hiciéramos. Así que Lo hice". [18] Bruce Schneier observó que "la comunidad académica tardó dos décadas en darse cuenta de que los 'ajustes' de la NSA en realidad mejoraban la seguridad del DES". [19]

El algoritmo como estándar.

A pesar de las críticas, DES fue aprobado como estándar federal en noviembre de 1976 y publicado el 15 de enero de 1977 como FIPS PUB 46, autorizado para su uso en todos los datos no clasificados. Posteriormente fue reafirmado como estándar en 1983, 1988 (revisado como FIPS-46-1), 1993 (FIPS-46-2) y nuevamente en 1999 (FIPS-46-3), prescribiendo este último " Triple DES " ( vea abajo). El 26 de mayo de 2002, DES fue finalmente reemplazado por el Estándar de cifrado avanzado (AES), tras un concurso público . El 19 de mayo de 2005, FIPS 46-3 se retiró oficialmente, pero el NIST aprobó Triple DES hasta el año 2030 para información gubernamental confidencial. [20]

El algoritmo también se especifica en ANSI X3.92 (hoy X3 se conoce como INCITS y ANSI X3.92 como ANSI INCITS 92), [21] NIST SP 800-67 [20] e ISO/IEC 18033-3 [22] ( como componente de TDEA ).

Otro ataque teórico, el criptoanálisis lineal, se publicó en 1994, pero fue el cracker DES de la Electronic Frontier Foundation en 1998 el que demostró que DES podía ser atacado de manera muy práctica y destacó la necesidad de un algoritmo de reemplazo. Estos y otros métodos de criptoanálisis se analizan con más detalle más adelante en este artículo.

Se considera que la introducción de DES ha sido un catalizador para el estudio académico de la criptografía, en particular de los métodos para descifrar cifrados en bloque. Según una retrospectiva del NIST sobre DES,

Se puede decir que el DES ha "impulsado" el estudio no militar y el desarrollo de algoritmos de cifrado. En la década de 1970 había muy pocos criptógrafos, excepto los de organizaciones militares o de inteligencia, y pocos estudios académicos sobre criptografía. En la actualidad hay muchos criptólogos académicos activos, departamentos de matemáticas con sólidos programas en criptografía y empresas y consultores comerciales de seguridad de la información . Una generación de criptoanalistas se ha curtido analizando (es decir, intentando "descifrar") el algoritmo DES. En palabras del criptógrafo Bruce Schneier , [23] "DES hizo más para galvanizar el campo del criptoanálisis que cualquier otra cosa. Ahora había un algoritmo que estudiar". Una sorprendente parte de la literatura abierta sobre criptografía en los años 1970 y 1980 trató sobre el DES, y el DES es el estándar con el que se ha comparado cada algoritmo de clave simétrica desde entonces. [24]

Cronología

Descripción

Initial permutationFeistel functionFeistel functionFeistel functionFeistel functionFinal permutationXORXORXORXOR
Figura 1 : La estructura general de Feistel de DES

DES es el cifrado de bloques arquetípico : un algoritmo que toma una cadena de bits de texto sin formato de longitud fija y la transforma mediante una serie de operaciones complicadas en otra cadena de bits de texto cifrado de la misma longitud. En el caso de DES, el tamaño del bloque es de 64 bits. DES también utiliza una clave para personalizar la transformación, de modo que supuestamente solo aquellos que conocen la clave particular utilizada para cifrar pueden realizar el descifrado. La clave aparentemente consta de 64 bits; sin embargo, el algoritmo sólo utiliza 56 de ellos. Ocho bits se utilizan únicamente para comprobar la paridad y posteriormente se descartan. Por tanto, la longitud efectiva de la clave es de 56 bits.

La clave se almacena o transmite nominalmente en 8 bytes , cada uno con paridad impar. Según ANSI X3.92-1981 (ahora conocido como ANSI INCITS 92–1981), sección 3.5:

Se puede utilizar un bit de cada byte de 8 bits de la CLAVE para la detección de errores en la generación, distribución y almacenamiento de claves. Los bits 8, 16,..., 64 se utilizan para garantizar que cada byte tenga una paridad impar.

Al igual que otros cifrados de bloques, DES por sí solo no es un medio seguro de cifrado, sino que debe usarse en un modo de operación . FIPS-81 especifica varios modos para usar con DES. [29] En FIPS-74 se incluyen más comentarios sobre el uso de DES. [30]

El descifrado utiliza la misma estructura que el cifrado, pero con las claves utilizadas en orden inverso. (Esto tiene la ventaja de que se puede utilizar el mismo hardware o software en ambas direcciones).

Estructura general

La estructura general del algoritmo se muestra en la Figura 1: hay 16 etapas idénticas de procesamiento, denominadas rondas . También hay una permutación inicial y final , denominada IP y FP , que son inversas (IP "deshace" la acción de FP, y viceversa). IP y FP no tienen importancia criptográfica, pero se incluyeron para facilitar la carga de bloques dentro y fuera del hardware de 8 bits de mediados de la década de 1970. [31]

Antes de las rondas principales, el bloque se divide en dos mitades de 32 bits y se procesan alternativamente; este entrecruzamiento se conoce como el esquema Feistel . La estructura de Feistel garantiza que el descifrado y el cifrado sean procesos muy similares; la única diferencia es que las subclaves se aplican en orden inverso al descifrar. El resto del algoritmo es idéntico. Esto simplifica enormemente la implementación, particularmente en hardware, ya que no hay necesidad de algoritmos de cifrado y descifrado separados.

El símbolo ⊕ indica la operación OR exclusiva (XOR). La función F codifica media cuadra junto con algunas de las teclas. Luego, la salida de la función F se combina con la otra mitad del bloque y las mitades se intercambian antes de la siguiente ronda. Después de la ronda final, se intercambian las mitades; esta es una característica de la estructura de Feistel que hace que el cifrado y el descifrado sean procesos similares.

La función Feistel (F)

La función F, representada en la Figura 2, opera en medio bloque (32 bits) a la vez y consta de cuatro etapas:

Expansion functionSubstitution box 1Substitution box 2Substitution box 3Substitution box 4Substitution box 5Substitution box 6Substitution box 7Substitution box 8PermutationXOR
Figura 2 : La función Feistel (función F) de DES
  1. Expansión : el medio bloque de 32 bits se expande a 48 bits utilizando la permutación de expansión , denominada E en el diagrama, duplicando la mitad de los bits. La salida consta de ocho piezas de 6 bits (8 × 6 = 48 bits), cada una de las cuales contiene una copia de los 4 bits de entrada correspondientes, más una copia del bit inmediatamente adyacente de cada una de las piezas de entrada a cada lado.
  2. Mezcla de claves : el resultado se combina con una subclave mediante una operación XOR. Dieciséis subclaves de 48 bits, una para cada ronda, se derivan de la clave principal utilizando la programación de claves (que se describe a continuación).
  3. Sustitución : después de mezclar la subclave, el bloque se divide en ocho piezas de 6 bits antes de ser procesado por las S-boxes o cajas de sustitución . Cada una de las ocho S-boxes reemplaza sus seis bits de entrada con cuatro bits de salida según una transformación no lineal, proporcionada en forma de tabla de búsqueda . Las S-boxes proporcionan el núcleo de seguridad de DES; sin ellas, el cifrado sería lineal y trivialmente descifrable.
  4. Permutación : finalmente, las 32 salidas de las S-box se reordenan según una permutación fija , la P-box . Esto está diseñado para que, después de la permutación, los bits de la salida de cada S-box en esta ronda se distribuyan en cuatro S-boxes diferentes en la siguiente ronda.

La alternancia de sustitución de las cajas S y la permutación de bits de la caja P y la expansión E proporciona la llamada " confusión y difusión " respectivamente, un concepto identificado por Claude Shannon en la década de 1940 como una condición necesaria para una conexión segura. cifrado aún práctico.

Horario clave

Permuted choice 1Permuted choice 2Permuted choice 2Permuted choice 2Permuted choice 2Left shift by 1Left shift by 1Left shift by 1Left shift by 1Left shift by 2Left shift by 2Left shift by 1Left shift by 1
Figura 3 — El calendario clave del DES

La Figura 3 ilustra la programación de claves para el cifrado: el algoritmo que genera las subclaves. Inicialmente, se seleccionan 56 bits de la clave de los 64 iniciales mediante la Elección permutada 1 ( PC-1 ); los ocho bits restantes se descartan o se utilizan como bits de verificación de paridad . Luego, los 56 bits se dividen en dos mitades de 28 bits; A partir de entonces, cada mitad se trata por separado. En rondas sucesivas, ambas mitades se giran hacia la izquierda uno o dos bits (especificados para cada ronda) y luego se seleccionan 48 bits de subclave mediante Permuted Choice 2 ( PC-2 ): 24 bits de la mitad izquierda y 24 de la derecha. . Las rotaciones (indicadas por "<<<" en el diagrama) significan que se utiliza un conjunto diferente de bits en cada subclave; cada bit se utiliza en aproximadamente 14 de las 16 subclaves.

El programa de claves para el descifrado es similar: las subclaves están en orden inverso en comparación con el cifrado. Aparte de ese cambio, el proceso es el mismo que para el cifrado. Se pasan los mismos 28 bits a todas las cajas de rotación.

Pseudocódigo

A continuación se muestra el pseudocódigo para el algoritmo DES.

// Todas las variables son de 64 bits sin firmar// Preprocesamiento: rellenar con la diferencia de tamaño en bytes el mensaje de relleno para alcanzar un múltiplo de 64 bits de longitud         clave var // Las claves proporcionadas por el usuario claves var [ 16 ] var izquierda , derecha     // Generar claves// Tecla PC1 (64 bits a 56 bits) : = permutación ( tecla , PC1 ) izquierda : = ( tecla desplazamiento a la derecha 28 ) y 0xFFFFFFF derecha : = tecla y 0xFFFFFFF             para i de 0 a 16, haga lo correcto : = derecha, rotación izquierda , KEY_shift [ i ] izquierda : = izquierda, rotación izquierda, KEY_shift [ i ] var concat : = ( izquierda izquierda , desplazamiento 28 ) o derecha // teclas PC2 (56 bits a 48 bits) [ i ] : = permutación ( concat , PC2 ) final para                         // Para descifrar un mensaje invierte el orden de las claves si descifrar las claves inversas finalizan si    // Cifrar o descifrar para cada fragmento de 64 bits de mensaje acolchado do var tmp        // fragmento de IP : = permutación ( fragmento , IP ) izquierda : = fragmento desplazamiento a la derecha 32 derecha : = fragmento y 0xFFFFFFFF para i de 0 a 16 hacer tmp : = derecha // E (32 bits a 48 bits) derecha : = expansión ( derecha , E ) derecha : = derecha xor teclas [ i ] // Sustitución (48 bits a 32 bits) derecha : = sustitución ( derecha ) // P derecha : = permutación ( derecha , P ) derecha : = derecha xor izquierda izquierda : = tmp fin para // Concat var derecha e izquierda cipher_chunk := ( desplazamiento a la izquierda derecha 32 ) o izquierda // FP cipher_chunk := permutación ( cipher_chunk , FP ) final para                                                 

Seguridad y criptoanálisis

Aunque se ha publicado más información sobre el criptoanálisis de DES que sobre cualquier otro cifrado de bloque, el ataque más práctico hasta la fecha sigue siendo un enfoque de fuerza bruta. Se conocen varias propiedades criptoanalíticas menores y son posibles tres ataques teóricos que, si bien tienen una complejidad teórica menor que un ataque de fuerza bruta, requieren una cantidad poco realista de textos claros conocidos o elegidos para llevarse a cabo, y no son una preocupación en la práctica.

Ataque de fuerza bruta

Para cualquier cifrado , el método de ataque más básico es la fuerza bruta : probar todas las claves posibles por turno. La longitud de la clave determina el número de claves posibles y, por tanto, la viabilidad de este enfoque. Para DES, surgieron dudas sobre la idoneidad de su tamaño de clave desde el principio, incluso antes de que fuera adoptado como estándar, y fue el pequeño tamaño de clave, más que el criptoanálisis teórico, lo que dictó la necesidad de un algoritmo de reemplazo . Como resultado de discusiones que involucraron a consultores externos, incluida la NSA, el tamaño de la clave se redujo de 256 bits a 56 bits para que quepa en un solo chip. [32]

La máquina de craqueo DES de la EFF , valorada en 250.000 dólares , contenía 1.856 chips personalizados y podía forzar una clave DES en cuestión de días; la foto muestra una placa de circuito DES Cracker equipada con varios chips Deep Crack.

En el mundo académico se presentaron varias propuestas para una máquina de craqueo DES. En 1977, Diffie y Hellman propusieron una máquina con un coste estimado de 20 millones de dólares que podría encontrar una clave DES en un solo día. [1] [33] En 1993, Wiener había propuesto una máquina de búsqueda de claves que costaba 1 millón de dólares y que encontraría una clave en 7 horas. Sin embargo, ninguna de estas primeras propuestas se implementó jamás o, al menos, ninguna implementación fue reconocida públicamente. La vulnerabilidad del DES quedó prácticamente demostrada a finales de los años 1990. [34] En 1997, RSA Security patrocinó una serie de concursos, ofreciendo un premio de 10.000 dólares al primer equipo que rompiera un mensaje cifrado con DES para el concurso. Ese concurso lo ganó el Proyecto DESCHALL , dirigido por Rocke Verser, Matt Curtin y Justin Dolske, utilizando ciclos inactivos de miles de computadoras en Internet. La viabilidad de descifrar DES rápidamente quedó demostrada en 1998 cuando la Electronic Frontier Foundation (EFF), un grupo de derechos civiles del ciberespacio, construyó un cracker DES personalizado , a un costo de aproximadamente 250.000 dólares estadounidenses (ver Cracker DES de EFF ). Su motivación era demostrar que DES era rompible tanto en la práctica como en la teoría: " Hay muchas personas que no creerán en una verdad hasta que puedan verla con sus propios ojos. Mostrándoles una máquina física que puede descifrar DES en unos pocos días es la única manera de convencer a algunas personas de que realmente no pueden confiar su seguridad a DES ". La máquina forzó una clave por fuerza bruta en poco más de 2 días de búsqueda.

El siguiente cracker DES confirmado fue la máquina COPACOBANA construida en 2006 por equipos de las universidades de Bochum y Kiel , ambas en Alemania . A diferencia de la máquina EFF, COPACOBANA consta de circuitos integrados reconfigurables disponibles comercialmente. 120 de estos conjuntos de puertas programables en campo (FPGA) del tipo XILINX Spartan-3 1000 funcionan en paralelo. Están agrupados en 20 módulos DIMM, cada uno de los cuales contiene 6 FPGA. El uso de hardware reconfigurable hace que la máquina también sea aplicable a otras tareas de descifrado de códigos. [35] Uno de los aspectos más interesantes de COPACOBANA es su factor de costo. Se puede construir una máquina por aproximadamente 10.000 dólares. [36] La disminución del costo en aproximadamente un factor de 25 con respecto a la máquina EFF es un ejemplo de la mejora continua del hardware digital ; consulte la ley de Moore . Ajustando la inflación a lo largo de 8 años se obtiene una mejora aún mayor, de aproximadamente 30 veces. Desde 2007, SciEngines GmbH , una empresa derivada de los dos socios del proyecto de COPACOBANA, ha mejorado y desarrollado sucesores de COPACOBANA. En 2008, su COPACOBANA RIVYERA redujo el tiempo para romper DES a menos de un día, utilizando 128 Spartan-3 5000. SciEngines RIVYERA ostentaba el récord en DES de ruptura de fuerza bruta, habiendo utilizado 128 FPGA Spartan-3 5000. [37] Su modelo 256 Spartan-6 LX150 ha bajado aún más esta vez.

En 2012, David Hulton y Moxie Marlinspike anunciaron un sistema con 48 FPGA Xilinx Virtex-6 LX240T, cada FPGA contiene 40 núcleos DES completamente canalizados que funcionan a 400 MHz, para una capacidad total de 768 gigakeys/seg. El sistema puede buscar exhaustivamente todo el espacio de claves DES de 56 bits en aproximadamente 26 horas y este servicio se ofrece mediante una tarifa en línea. [38] [39]

Ataca más rápido que la fuerza bruta.

Se conocen tres ataques que pueden romper las 16 rondas completas de DES con menos complejidad que una búsqueda de fuerza bruta: criptoanálisis diferencial (DC), [40] criptoanálisis lineal (LC), [41] y el ataque de Davies . [42] Sin embargo, los ataques son teóricos y generalmente se considera que no es factible montarlos en la práctica; [43] Estos tipos de ataques a veces se denominan debilidades de certificación.

También se han propuesto ataques contra versiones de ronda reducida del cifrado, es decir, versiones de DES con menos de 16 rondas. Este análisis da una idea de cuántas rondas se necesitan para la seguridad y de cuánto "margen de seguridad" conserva la versión completa.

Langford y Hellman propusieron el criptoanálisis lineal diferencial en 1994 y combina el criptoanálisis diferencial y lineal en un solo ataque. [48] ​​Una versión mejorada del ataque puede romper DES de 9 rondas con 2 15,8 textos planos elegidos y tiene una complejidad temporal de 2 29,2 (Biham y otros, 2002). [49]

Propiedades criptoanalíticas menores

DES exhibe la propiedad de complementación, es decir, que

donde está el complemento bit a bit de denota cifrado con clave y denota bloques de texto sin formato y texto cifrado respectivamente. La propiedad de complementación significa que el trabajo para un ataque de fuerza bruta podría reducirse en un factor de 2 (o un solo bit) bajo el supuesto de texto sin formato elegido . Por definición, esta propiedad también se aplica al cifrado TDES. [50]

DES también tiene cuatro llamadas claves débiles . El cifrado ( E ) y el descifrado ( D ) bajo una clave débil tienen el mismo efecto (ver involución ):

o equivalente,

También hay seis pares de claves semidébiles . El cifrado con una de las dos claves semidébiles funciona de manera idéntica al descifrado con la otra :

o equivalente,

Es bastante fácil evitar las claves débiles y semidébiles en una implementación, ya sea probándolas explícitamente o simplemente eligiendo claves al azar; las probabilidades de elegir una clave débil o semidébil por casualidad son insignificantes. De todos modos, las claves no son realmente más débiles que otras claves, ya que no dan ninguna ventaja al ataque.

También se ha demostrado que DES no es un grupo , o más precisamente, el conjunto (para todas las claves posibles ) bajo composición funcional no es un grupo, ni está "cerca" de ser un grupo. [51] Esta fue una pregunta abierta durante algún tiempo, y si hubiera sido el caso, habría sido posible romper DES, y múltiples modos de cifrado como Triple DES no aumentarían la seguridad, porque el cifrado (y descifrado) repetidos bajo claves diferentes equivaldría a cifrar bajo otra clave única. [52]

DES simplificado

DES simplificado (SDES) fue diseñado únicamente con fines educativos, para ayudar a los estudiantes a aprender sobre técnicas criptoanalíticas modernas. SDES tiene una estructura y propiedades similares a DES, pero se ha simplificado para que sea mucho más fácil realizar el cifrado y descifrado a mano con lápiz y papel. Algunas personas sienten que aprender SDES les da una idea de DES y otros cifrados de bloque, y de varios ataques criptoanalíticos contra ellos. [53] [54] [55] [56] [57] [58] [59] [60] [61]

DES-768

DES utiliza claves de 56 bits. Sin embargo, las claves internas son mucho más grandes. El DES utiliza la clave de 56 bits para generar las subclaves de 16 * 48 bits, o 768 bits. La limitación de 56 bits de la clave es artificial, por lo que se puede ampliar hasta 768 bits. En 2014 se lanzó el DES-768, utiliza el mismo principio que el DES pero las 16 subclaves se generan mediante una función hash unidireccional. El resultado es un algoritmo que funciona a la misma velocidad que el DES pero con una clave de 768 bits. [62] Lo mismo ocurre con Triple DES con subclaves independientes, lo que da como resultado una clave de 2304 bits. [63] Tenga en cuenta que las claves débiles no existen en DES-768 ni en Triple DES-2304, ya que las subclaves se generan mediante una función hash unidireccional.

Algoritmos de reemplazo

Las preocupaciones sobre la seguridad y el funcionamiento relativamente lento de DES en el software motivaron a los investigadores a proponer una variedad de diseños de cifrado de bloques alternativos , que comenzaron a aparecer a finales de los 80 y principios de los 90: los ejemplos incluyen RC5 , Blowfish , IDEA , NewDES , SAFER , CAST5 y FEAL . La mayoría de estos diseños mantuvieron el tamaño de bloque de 64 bits de DES y podrían actuar como un reemplazo "directo", aunque normalmente usaban una clave de 64 o 128 bits. En la Unión Soviética se introdujo el algoritmo GOST 28147-89 , con un tamaño de bloque de 64 bits y una clave de 256 bits, que también se utilizó posteriormente en Rusia .

El propio DES se puede adaptar y reutilizar en un esquema más seguro. Muchos antiguos usuarios de DES ahora utilizan Triple DES (TDES), que fue descrito y analizado por uno de los titulares de patentes de DES (consulte FIPS Pub 46–3); Implica aplicar DES tres veces con dos (2TDES) o tres (3TDES) claves diferentes. TDES se considera suficientemente seguro, aunque es bastante lento. Una alternativa menos costosa desde el punto de vista computacional es DES-X , que aumenta el tamaño de la clave aplicando XOR al material de clave adicional antes y después de DES. GDES fue una variante de DES propuesta como una forma de acelerar el cifrado, pero se demostró que era susceptible al criptoanálisis diferencial.

El 2 de enero de 1997, NIST anunció que deseaba elegir un sucesor de DES. [64] En 2001, después de una competencia internacional, el NIST seleccionó un nuevo cifrado, el Estándar de cifrado avanzado (AES), como reemplazo. [65] El algoritmo que fue seleccionado como AES fue presentado por sus diseñadores con el nombre de Rijndael . Otros finalistas en la competencia NIST AES fueron RC6 , Serpent , MARS y Twofish .

Ver también

Notas

  1. ^ abcd Diffie, Whitfield; Hellman, Martin E. (junio de 1977). "Criptoanálisis exhaustivo del estándar de cifrado de datos NBS" (PDF) . Computadora . 10 (6): 74–84. doi :10.1109/CM.1977.217750. S2CID  2412454. Archivado desde el original (PDF) el 26 de febrero de 2014.
  2. ^ ab "El legado de DES - Schneier sobre la seguridad". www.schneier.com . 6 de octubre de 2004.
  3. ^ "DES-768 para CCG". Página web de Alejandro Pukall . 2014.
  4. ^ "3DES-2304 para GCC". Página web de Alejandro Pukall . 2014.
  5. ^ ab Bátiz-Lazo, Bernardo (2018). Cash and Dash: cómo los cajeros automáticos y las computadoras cambiaron la banca. Prensa de la Universidad de Oxford . págs.284 y 311. ISBN 9780191085574.
  6. ^ Walter Tuchman (1997). "Una breve historia del estándar de cifrado de datos". Internet asediada: contrarrestar los infractores de las leyes del ciberespacio . ACM Press/Addison-Wesley Publishing Co. Nueva York, NY, Estados Unidos. págs. 275–280.
  7. ^ "Los impactos económicos del programa del estándar de cifrado de datos (DES) del NIST" (PDF) . Instituto Nacional de Estándares y Tecnología . Departamento de Comercio de Estados Unidos . Octubre de 2001. Archivado desde el original (PDF) el 30 de agosto de 2017 . Consultado el 21 de agosto de 2019 .
  8. ^ Konheim, Alan G. (1 de abril de 2016). "Cajeros automáticos: su historial y protocolos de autenticación". Revista de ingeniería criptográfica . 6 (1): 1–29. doi :10.1007/s13389-015-0104-3. ISSN  2190-8516. S2CID  1706990. Archivado desde el original el 22 de julio de 2019 . Consultado el 28 de agosto de 2019 .
  9. ^ Laboratorios RSA. "¿Se ha roto DES?". Archivado desde el original el 17 de mayo de 2016 . Consultado el 8 de noviembre de 2009 .
  10. ^ Schneier. Criptografía aplicada (2ª ed.). pag. 280.
  11. ^ Davies, DW; Precio WL (1989). Seguridad para redes informáticas, 2ª ed . John Wiley e hijos.
  12. ^ Robert Sugarman, ed. (Julio de 1979). "Sobre frustrar los delitos informáticos". Espectro IEEE .
  13. ^ P. Kinnucan (October 1978). "Data Encryption Gurus: Tuchman and Meyer". Cryptologia. 2 (4): 371. doi:10.1080/0161-117891853270.
  14. ^ Thomas R. Johnson (2009-12-18). "American Cryptology during the Cold War, 1945-1989.Book III: Retrenchment and Reform, 1972-1980, page 232" (PDF). National Security Agency, DOCID 3417193 (file released on 2009-12-18, hosted at nsa.gov). Archived from the original (PDF) on 2013-09-18. Retrieved 2014-07-10.
  15. ^ Thomas R. Johnson (2009-12-18). "American Cryptology during the Cold War, 1945-1989.Book III: Retrenchment and Reform, 1972-1980, page 232" (PDF). National Security Agency. Archived (PDF) from the original on 2015-04-25. Retrieved 2015-07-16 – via National Security Archive FOIA request. This version is differently redacted than the version on the NSA website.
  16. ^ Thomas R. Johnson (2009-12-18). "American Cryptology during the Cold War, 1945-1989.Book III: Retrenchment and Reform, 1972-1980, page 232" (PDF). National Security Agency. Archived (PDF) from the original on 2015-04-25. Retrieved 2015-07-16 – via National Security Archive FOIA request. This version is differently redacted than the version on the NSA website.
  17. ^ Konheim. Computer Security and Cryptography. p. 301.
  18. ^ a b Levy, Crypto, p. 55
  19. ^ Schneier, Bruce (2004-09-27). "Saluting the data encryption legacy". CNet. Retrieved 2015-07-22.
  20. ^ a b National Institute of Standards and Technology, NIST Special Publication 800-67 Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher, Version 1.1
  21. ^ American National Standards Institute, ANSI X3.92-1981 (now known as ANSI INCITS 92-1981)American National Standard, Data Encryption Algorithm
  22. ^ "ISO/IEC 18033-3:2010 Information technology—Security techniques—Encryption algorithms—Part 3: Block ciphers". Iso.org. 2010-12-14. Retrieved 2011-10-21.
  23. ^ Bruce Schneier, Applied Cryptography, Protocols, Algorithms, and Source Code in C, Second edition, John Wiley and Sons, New York (1996) p. 267
  24. ^ William E. Burr, "Data Encryption Standard", in NIST's anthology "A Century of Excellence in Measurements, Standards, and Technology: A Chronicle of Selected NBS/NIST Publications, 1901–2000. HTML Archived 2009-06-19 at the Wayback Machine PDF Archived 2006-08-23 at the Wayback Machine
  25. ^ "FR Doc 04-16894". Edocket.access.gpo.gov. Retrieved 2009-06-02.
  26. ^ S. Kumar, C. Paar, J. Pelzl, G. Pfeiffer, A. Rupp, M. Schimmler, "Cómo romper DES por 8.980 euros". Segundo taller sobre hardware de propósito especial para atacar sistemas criptográficos: SHARCS 2006, Colonia, Alemania, 3 y 4 de abril de 2006.
  27. ^ "8x1080Ti.md".
  28. ^ "Crack.sh | el cracker DES más rápido del mundo".
  29. ^ "FIPS 81 - Modos de funcionamiento Des". csrc.nist.gov . Consultado el 2 de junio de 2009 .
  30. ^ "FIPS 74 - Directrices para la implementación y el uso de datos NBS". Itl.nist.gov. Archivado desde el original el 3 de enero de 2014 . Consultado el 2 de junio de 2009 .
  31. ^ Schneier. Criptografía aplicada (1ª ed.). pag. 271.
  32. ^ Stallings, W. Criptografía y seguridad de redes: principios y práctica . Prentice Hall, 2006. pág. 73
  33. ^ "Bruting DES".
  34. ^ van Oorschot, Paul C.; Wiener, Michael J. (1991), Damgård, Ivan Bjerre (ed.), "Un ataque de texto plano conocido contra el cifrado triple de dos claves", Avances en criptología – EUROCRYPT '90 , Berlín, Heidelberg: Springer Berlin Heidelberg, vol. 473, págs. 318–325, doi : 10.1007/3-540-46877-3_29 , ISBN 978-3-540-53587-4
  35. ^ "Primeros pasos, COPACOBANA: descifrador de códigos paralelo de costo optimizado" (PDF) . 12 de diciembre de 2006 . Consultado el 6 de marzo de 2012 .
  36. ^ Reinhard Wobst (16 de octubre de 2007). Criptología desbloqueada. John Wiley e hijos. ISBN 9780470060643.
  37. ^ Romper DES en menos de un solo día Archivado el 28 de agosto de 2017 en Wayback Machine [Comunicado de prensa de la empresa, demostrado en el taller de 2009]
  38. ^ "El cracker DES más rápido del mundo".
  39. ^ ¿Piensa que las contraseñas complejas lo salvarán?, David Hulton, Ian Foster, BSidesLV 2017
  40. ^ ab Biham, E. y Shamir, A (1993). Criptoanálisis diferencial del estándar de cifrado de datos. Shamir, Adi. Nueva York: Springer-Verlag. págs. 487–496. doi :10.1007/978-1-4613-9314-6. ISBN 978-0387979304. OCLC  27173465. S2CID  6361693.{{cite book}}: CS1 maint: multiple names: authors list (link)
  41. ^ ab Matsui, Mitsuru (23 de mayo de 1993). "Método de criptoanálisis lineal para cifrado DES". Avances en criptología - EUROCRYPT '93 . Apuntes de conferencias sobre informática. vol. 765. Springer, Berlín, Heidelberg. págs. 386–397. doi : 10.1007/3-540-48285-7_33 . ISBN 978-3540482857.
  42. ^ ab Davies, DW (1987). "Investigación de una potencial debilidad en el algoritmo DES, Comunicaciones privadas". Comunicaciones privadas .
  43. ^ Alanazi, Hamdan O.; et al. (2010). "Nuevo estudio comparativo entre DES, 3DES y AES dentro de nueve factores". Revista de Computación . 2 (3). arXiv : 1003.4085 . Código Bib : 2010arXiv1003.4085A.
  44. ^ Biryukov, Alex; Cannière, Christophe De; Quisquater, Michael (15 de agosto de 2004). "Sobre múltiples aproximaciones lineales". Avances en Criptología – CRYPTO 2004 . Apuntes de conferencias sobre informática. vol. 3152. Springer, Berlín, Heidelberg. págs. 1–22. doi :10.1007/978-3-540-28628-8_1. ISBN 9783540226680.
  45. ^ Knudsen, Lars R.; Mathiassen, John Erik (10 de abril de 2000). "Un ataque lineal de texto plano elegido contra DES". Cifrado de software rápido . Apuntes de conferencias sobre informática. vol. 1978. Springer, Berlín, Heidelberg. págs. 262-272. doi :10.1007/3-540-44706-7_18. ISBN 978-3540447061.
  46. ^ Junod, Pascal (16 de agosto de 2001). "Sobre la complejidad del ataque de Matsui". Áreas seleccionadas en criptografía . Apuntes de conferencias sobre informática. vol. 2259. Springer, Berlín, Heidelberg. págs. 199-211. doi :10.1007/3-540-45537-X_16. ISBN 978-3540455370.
  47. ^ Biham, Elí; Biryukov, Alex (1 de junio de 1997). "Una mejora del ataque de Davies al DES". Revista de criptología . 10 (3): 195–205. doi : 10.1007/s001459900027 . ISSN  0933-2790. S2CID  4070446.
  48. ^ Langford, Susan K.; Hellman, Martín E. (21 de agosto de 1994). "Criptoanálisis lineal diferencial". Avances en criptología - CRYPTO '94 . Apuntes de conferencias sobre informática. vol. 839. Springer, Berlín, Heidelberg. págs. 17-25. doi :10.1007/3-540-48658-5_3. ISBN 978-3540486589.
  49. ^ Biham, Elí; Dunkelman, Orr; Keller, Nathan (1 de diciembre de 2002). "Mejora del criptoanálisis lineal diferencial". Avances en criptología - ASIACRYPT 2002 . Apuntes de conferencias sobre informática. vol. 2501. Springer, Berlín, Heidelberg. págs. 254–266. doi :10.1007/3-540-36178-2_16. ISBN 978-3540361787.
  50. ^ Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (1996). Manual de criptografía aplicada . Prensa CRC. pag. 257.ISBN 978-0849385230.
  51. ^ Campbell y Wiener, 1992. 16 de agosto de 1992, págs. 512–520. ISBN 9783540573401.
  52. ^ "Doble DES" (PDF) . Archivado (PDF) desde el original el 9 de abril de 2011.
  53. ^ Sanjay Kumar; Sandeep Srivastava. "Cifrado de imágenes mediante el estándar de cifrado de datos simplificado (S-DES)" Archivado el 22 de diciembre de 2015 en Wayback Machine . 2014.
  54. ^ Alasdair McAndrew. "Introducción a la criptografía con software de código abierto". 2012. Sección "8.8 DES simplificado: sDES". pag. 183 a 190.
  55. ^ William Stallings. "Apéndice G: DES simplificado". 2010.
  56. ^ Nalini N; G Raghavendra Rao. "Criptoanálisis del estándar de cifrado de datos simplificado mediante heurísticas de optimización". 2006.
  57. ^ Minh Van Nguyen. "DES simplificado". 2009.
  58. ^ Dr. Manoj Kumar. "Criptografía y seguridad de redes". Sección 3.4: La versión simplificada de DES (S-DES). pag. 96.
  59. ^ Edward F. Schaefer. "Un algoritmo estándar de cifrado de datos simplificado". doi :10.1080/0161-119691884799 1996.
  60. ^ LavkushSharma; Bhupendra Kumar Pathak; y Nidhi Sharma. "Romper el estándar de cifrado de datos simplificado mediante optimización de enjambre de partículas binarias". 2012.
  61. ^ "Investigación sobre criptografía: diseño de una mejor manera de enseñar y aprender el estándar de cifrado avanzado".
  62. ^ "DES-768 para CCG". Página web de Alejandro Pukall . 2014.
  63. ^ "3DES-2304 para CCG". Página web de Alejandro Pukall . 2014.
  64. ^ "Anuncio del desarrollo de FIPS para el estándar de cifrado avanzado | CSRC". 10 de enero de 2017.
  65. ^ http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf 26 de noviembre de 2001.

Referencias

enlaces externos