Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un método para cifrar
información, escogido como un estándar FIPS en los Estados Unidos en 1976, y cuyo uso se ha
propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con
algunos elementos de diseño clasificados, una longitud de clave relativamente corta, y las
continuas sospechas sobre la existencia de alguna puerta trasera para la National Security Agency
(NSA). Posteriormente DES fue sometido a un intenso análisis académico y motivó el concepto
moderno del cifrado por bloques y su criptoanálisis.
Hoy en día, DES se considera inseguro para muchas aplicaciones. Esto se debe principalmente a
que el tamaño de clave de 56 bits es corto; las claves de DES se han roto en menos de 24 horas.
Existen también resultados analíticos que demuestran debilidades teóricas en su cifrado, aunque
son inviables en la práctica. Se cree que el algoritmo es seguro en la práctica en su variante de
Triple DES, aunque existan ataques teóricos.
Desde hace algunos años, el algoritmo ha sido sustituido por el nuevo AES (Advanced Encryption
Standard).
La historia de DES
Los orígenes de DES se remontan a principios de los 70. En 1972, tras terminar un estudio sobre
las necesidades del gobierno en materia de seguridad informática, la autoridad de estándares
estadounidense NBS (National Bureau of Standards), ahora rebautizado NIST (National Institute
of Standards and Technology), concluyó en la necesidad de un estándar a nivel gubernamental
para cifrar información confidencial. En consecuencia, el 15 de mayo de 1973, tras consultar con la
NSA, el NBS solicitó propuestas para un algoritmo que cumpliera rigurosos criterios de diseño. A
pesar de todo, ninguna de ellas parecía ser adecuada. Una segunda petición fue realizada el 27 de
agosto de 1974. En aquella ocasión, IBM presentó un candidato que fue considerado aceptable, un
algoritmo desarrollado durante el periodo 1973–1974 basado en otro anterior, el algoritmo Lucifer
de Horst Feistel. El equipo de IBM dedicado al diseño y análisis del algoritmo estaba formado por
Feistel, Walter Tuchman, Don Coppersmith, Alan Conheim, Carl Meyer, Mike Matyas, Roy Adler,
Edna Grossman, Bill Notz, Lynn Smith, y Bryant Tuckerman.
Algunas de las sospechas sobre puntos débiles ocultos en las S-cajas fueron descartadas en 1990,
con el descubrimiento independiente y la publicación libre por Eli Biham y Adi Shamir del
criptoanálisis diferencial, un método general para romper cifrados de bloque. Las S-cajas de DES
eran mucho más resistentes al ataque que si hubiesen sido escogidas al azar, lo que sugería que
IBM conocía la técnica allá en los 70. Este era de hecho, el caso, en 1994, Don Coppersmith publicó
los criterios de diseño originales para las S-cajas. IBM había descubierto el criptoanálisis
diferencial en los 70 y, tras asegurar DES, la NSA les ordenó mantener en secreto la técnica.
Coppersmith explica: "Esto era así porque el criptoanálisis diferencial puede ser una herramienta
muy potente, contra muchos esquemas diferentes, y había la preocupación de que aquella
información en dominio público podía afectar negativamente a la seguridad nacional". Shamir
también comentó "Yo diría, al contrario de lo que algunos creen, que no hay evidencias de
influencia alguna en el diseño de DES para que su estructura básica esté debilitada."
Las otras críticas, sobre que la longitud de clave era demasiado corta, se fundaban en el hecho de
que la razón dada por la NSA para reducir la longitud de la clave de 64 bits a 56 era que los 8 bits
restantes podían servir como bits de paridad, lo que en cierto modo resultaba sospechoso. Es
ampliamente aceptado que la decisión de la NSA estaba motivada por la posibilidad de que ellos
podrían llevar a cabo un ataque por fuerza bruta contra una clave de 56 bits varios años antes que
el resto del mundo.
A pesar de la polémica, 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 el uso no clasificado de
datos. Fue posteriormente confirmado como estándar en 1983, 1988 (revisado como FIPS-46-1),
1993 (FIPS-46-2), y de nuevo en 1998 (FIPS-46-3), este último definiendo "TripleDES" (véase
más abajo). El 26 de mayo de 2002, DES fue finalmente reemplazado por AES (Advanced
Encryption Standard), tras una competición pública (véase Proceso de Advanced Encryption
Standard). Hasta hoy día (2006), DES continúa siendo ampliamente utilizado.
Otro ataque teórico, el criptoanálisis lineal, fue publicado en 1994, pero fue un ataque por fuerza
bruta en 1998 el que demostró que DES podría ser atacado en la práctica, y se destacó la necesidad
de un algoritmo de repuesto. Estos y otros métodos de criptoanálisis se comentan con más detalle
posteriormente en este artículo.
Cambiando
Cronología
15 de mayo 1973 NBS publica una primera petición para un algoritmo estándar de cifrado
27 de agosto 1974 NBS publica una segunda petición para algoritmos de cifrado
15 de enero 1977 DES es publicado por el FIPS como estándar FIPS PUB 46
22 de enero 1988 DES es confirmado por segunda vez como FIPS 46-1, reemplazando a FIPS PUB 46
Biham y Shamir publican el primer ataque teórico con menos complejidad que el de fuerza
1992 bruta: el criptoanálisis diferencial. De cualquier modo, requiere una cantidad irreal de 247
textos planos escogidos (Biham and Shamir, 1992).
30 de
1993 DES es confirmado por tercera vez como FIPS 46-2
diciembre
El DES cracker de la EFF (Electronic Frontier Foundation) conocido como Deep Crack
Julio 1998
rompe una clave DES en 56 horas.
De forma conjunta, Deep Crack y distributed.net rompen una clave DES en 22 horas y 15
Enero 1999
minutos.
25 de DES es confirmado por cuarta vez como FIPS 46-3, que específica la preferencia de uso
1999
octubre de Triple DES, con DES simple permitido solo en sistemas heredados.
26 de
2001 El algoritmo AES (Advanced Encryption Standard) se publica como FIPS 197
noviembre
Algoritmos de reemplazo
Muchos de los anteriores usuarios de DES ahora utilizan Triple DES (3DES) que fue descrito y
analizado en una de las patentes de DES (véase FIPS PUB 46-3); consiste en la aplicación de DES
tres veces consecutivas empleando dos (2TDES, la primera clave en los pasos 1 y 3) o tres (3TDES)
claves. 3DES ha sido ampliamente reconocido como seguro por ahora, aunque es bastante lento.
Una alternativa más económica en términos computacionales es DES-X, que incrementa el tamaño
de clave haciendo un XOR lógico sobre los elementos extra de la clave antes y después de DES.
GDES fue una variante de DES propuesta para acelerar el proceso de cifrado, pero se demostró que
era susceptible de ser sometido al criptoanálisis diferencial.
En 2001, tras un concurso internacional, el NIST escogió un nuevo algoritmo: el AES (Advanced
Encryption Standard), para reemplazar a DES. El algoritmo elegido para ser el reemplazo fue
propuesto por sus diseñadores bajo el nombre de Rijndael. Otros finalistas en la competición AES
del NIST fueron RC6, Serpent, MARS, y Twofish.
En general, no hay ningún algoritmo que se adapte perfectamente a todos los usos. Un algoritmo
para uso en máquinas de uso general (por ejemplo, SSH, o algunos tipos de cifrado de correo
electrónico), no siempre funciona bien en sistemas embebidos o tarjetas inteligentes, y viceversa.
Descripción
Por brevedad, la descripción incluida a continuación omite las transformaciones y
permutaciones exactas que especifica el algoritmo.
DES es el algoritmo prototipo del cifrado por bloques — un algoritmo que toma un texto en claro
de una longitud fija de bits y lo transforma mediante una serie de operaciones básicas en otro texto
cifrado de la misma longitud. En el caso de DES el tamaño del bloque es de 64 bits. DES utiliza
también una clave criptográfica para modificar la transformación, de modo que el descifrado sólo
puede ser realizado por aquellos que conozcan la clave concreta utilizada en el cifrado. La clave
mide 64 bits, aunque en realidad, sólo 56 de ellos son empleados por el algoritmo. Los ocho bits
restantes se utilizan únicamente para comprobar la paridad, y después son descartados. Por tanto,
la longitud de clave efectiva en DES es de 56 bits, y así es como se suele especificar.
Al igual que otros cifrados de bloque, DES debe ser utilizado en el modo de operación de cifrado de
bloque si se aplica a un mensaje mayor de 64 bits. FIPS-81 específica varios modos para el uso con
DES, incluyendo uno para autenticación [1] (https://web.archive.org/web/20090604131329/htt
p://www.itl.nist.gov/fipspubs/fip81.htm). Se pueden consultar más documentos sobre el uso de
DES en FIPS-74 [2] (https://web.archive.org/web/20140103013152/http://www.itl.nist.gov/fipsp
ubs/fip74.htm).
Estructura básica
La estructura básica del algoritmo aparece representada en la Figura 1: hay 16 fases idénticas de
proceso, denominadas rondas. También hay una permutación inicial y final denominadas PI y PF,
que son funciones inversas entre sí (PI "deshace" la acción de PF, y viceversa). PI y PF no son
criptográficamente significativas, pero se incluyeron presuntamente para facilitar la carga y
descarga de bloques sobre el hardware de mediados de los 70. Antes de las rondas, el bloque es
dividido en dos mitades de 32 bits y procesadas alternativamente. Este entrecruzamiento se conoce
como esquema Feistel.
La estructura de Feistel asegura que el cifrado y el descifrado sean
procesos muy similares — la única diferencia es que las subclaves se
aplican en orden inverso cuando desciframos. El resto del algoritmo es
idéntico. Esto simplifica enormemente la implementación, en especial
sobre hardware, al no haber necesidad de algoritmos distintos para el
cifrado y el descifrado.
Generación de claves
La Figura 3 representa la generación de claves para el cifrado
— el algoritmo que se encarga de proporcionar las subclaves.
Primero, se seleccionan 56 bits de la clave de los 64 iniciales
mediante la Elección Permutada 1 (PC-1) — los ocho bits
restantes pueden descartarse o utilizarse como bits de
comprobación de paridad. Los 56 bits se dividen entonces en
dos mitades de 28 bits; a continuación cada mitad se trata
independientemente. En rondas sucesivas, ambas mitades se
desplazan hacia la izquierda uno o dos bits (dependiendo de
cada ronda), y entonces se seleccionan 48 bits de subclave
mediante la Elección Permutada 2 (PC-2) — 24 bits de la mitad
izquierda y 24 de la derecha. Los desplazamientos (indicados
por "<<<" en el diagrama) implican que se utiliza un conjunto
diferente de bits en cada subclave; cada bit se usa
aproximadamente en 14 de las 16 subclaves.
Existen tres ataques conocidos que pueden romper las dieciséis rondas completas de DES con
menos complejidad que un ataque por fuerza bruta: el criptoanálisis diferencial (CD), el
criptoanálisis lineal (CL) y el ataque de Davies. De todas maneras, estos ataques son sólo teóricos y
no es posible llevarlos a la práctica; este tipo de ataques se denominan a veces debilidades
certificacionales.
▪ El criptoanálisis diferencial fue descubierto a finales de los 80 por Eli Biham y Adi Shamir,
aunque era conocido anteriormente tanto por la NSA como por IBM y mantenido en secreto.
Para romper las 16 rondas completas, el criptoanálisis diferencial requiere 247 textos planos
escogidos. DES fue diseñado para ser resistente al CD.
▪ El criptoanálisis lineal fue descubierto por Mitsuru Matsui, y necesita 243 textos planos
conocidos (Matsui, 1993); el método fue implementado (Matsui, 1994), y fue el primer
criptoanálisis experimental de DES que se dio a conocer. No hay evidencias de que DES fuese
adaptado para ser resistente a este tipo de ataque. Una generalización del CL — el
criptoanálisis lineal múltiple — se propuso en 1994 (Kaliski and Robshaw), y fue mejorada por
Biryukov y otros (2004); su análisis sugiere que se podrían utilizar múltiples aproximaciones
lineales para reducir los requisitos de datos del ataque en al menos un factor de 4 (es decir,
241 en lugar de 243). Una reducción similar en la complejidad de datos puede obtenerse con
una variante del criptoanálisis lineal de textos planos escogidos (Knudsen y Mathiassen,
2000). Junod (2001) realizó varios experimentos para determinar la complejidad real del
criptoanálisis lineal, y descubrió que era algo más rápido de lo predicho, requiriendo un tiempo
equivalente a 239–241 comprobaciones en DES.
▪ El ataque mejorado de Davies: mientras que el análisis lineal y diferencial son técnicas
generales y pueden aplicarse a multitud de esquemas diferentes, el ataque de Davies es una
técnica especializada para DES. Propuesta por vez primera por Davies en los 80, y mejorada
por Biham and Biryukov (1997). La forma más potente del ataque requiere 250 textos planos
conocidos, tiene una complejidad computacional de 250, y tiene un 51% de probabilidad de
éxito.
Existen también ataques pensados para versiones del algoritmo con menos rondas, es decir
versiones de DES con menos de dieciséis rondas. Dichos análisis ofrecen una perspectiva sobre
cuantas rondas son necesarias para conseguir seguridad, y cuánto «margen de seguridad»
proporciona la versión completa. El criptoanálisis diferencial-lineal fue propuesto por Langford y
Hellman en 1994, y combina criptoanálisis diferencial y lineal en un mismo ataque. Una versión
mejorada del ataque puede romper un DES de 9 rondas con 215.8 textos planos conocidos y tiene
una complejidad temporal de 229.2 (Biham y otros, 2002).
Propiedades criptoanalíticas
DES posee también cuatro claves débiles. El cifrado (E) y el descifrado (D) con una clave débil
tienen el mismo efecto (véase involución):
Es bastante fácil evitar las claves débiles y semi-débiles en la implementación, ya sea probándolas
explícitamente, o simplemente escogiéndolas aleatoriamente; las probabilidades de coger una clave
débil o semidébil son despreciables.
Referencias
1. (en inglés) Registro Federal. Vol. 69, Nº 142 (26 de julio de 2004) (http://edocket.access.gpo.go
v/2004/04-16894.htm)
pp254–266
▪ Eli Biham, Adi Shamir, Differential
Cryptanalysis of the Data Encryption ▪ A.Biryukov, C.De Canniedsdrfegfegtggbfgfe,
Standard, Springer Verlag, 1993. ISBN Msa.Quisquater, "Onsadasdasdasd
0-387-97930-1, ISBN 3-540-97930-1. Multisdple Linear Approximadations",
CRYPTO 2004 (to appear); preprint
▪ Eli Biham, Alex Biryukov: An Improvement (daPDF) (https://web.archive.org/web/20040
of Davies' Attack on DES. J. Cryptologs 529162834/http://www.esat.kuleuven.ac.be/
10(3): 195-206 (1997) ~abiryuko/mla.pdf).
▪ Eli Biham, Orr Dunkelman, Nathan Keller: ▪ Keith W. Campbell, Michael J. Wiener: DES
Enhancing Differential-Linear is not a Group. CRYPTO 1992: pp512–520
Crypdstanalysis. ASIACRYPT 2002:
▪ Don Coppersmith. (1994). The data ▪ Lars R. Knudsen, John Erik Mathiassen: A
encryption standard (DES) and its strength Chosen-Plaintext Linear Attack on DES.
against attacks. IBM Journal of Research FSE 2000: pp262–272
and Development, 38(3), 243–250. [3] (http ▪ Susan K. Langford, Martin E. Hellman:
s://web.archive.org/web/20070615132907/ht Differential-Linear Cryptanalysis. CRYPTO
tp://www.research.ibm.com/journal/rd/383/co 1994: 17–25
ppersmith.pdf)
▪ Steven Levy, Crypto: How the Code Rebels
▪ Witfield Diffie, Martin Hellman, "Exhaustive Beat the Government Saving
Cryptanalysis of the NBS Data Encryption Privasdasdsadascy in the Digital Age (ISBN
Standard" IEEE Computer 10(6), June 1977, 0-14-024432-8)
pp74-84
▪ Mitsuru Matsui: Linear Cryptanalysis Method
▪ John Gilmore, "Cracking DES: Secrets of for DES Cipher. EUROCRYPT 1993:
Encryption Research, Wiretap Politics and pp386-397
Chip Design", 1998, O'Reilly, ISBN
▪ Mitsuru Matsui: The First Experimental
1-56592-520-3.
Cryptanalysis of the Data Encryption
▪ Pascal Junod, "On the Complexity of Standard. CRYPTO 1994: pp1-11
Matsui's Attack. Selected Areas in
▪ National Bureau of Standards, Data
Cryptography", 2001, pp199-211.
Encryption Standard, FIPS-Pub.46. National
▪ Burton S. Kaliski Jr., Matthew J. B. Bureau of Standards, U.S. Department of
Robshaw: Linear Cryptanalysis Using Commerce, Washington D.C., January
Multiple Approximations. CRYPTO 1994: 1977.
pp26–39
Véase también
▪ Criptografía simétrica
▪ IDEA
▪ Triple DES
Enlaces externos
▪ FIPS 46-3: The official document describing the DES standard (http://csrc.nist.gov/publications/
fips/fips46-3/fips46-3.pdf) (PDF); An older version in HTML. (https://web.archive.org/web/20040
410171758/http://www.itl.nist.gov/fipspubs/fip46-2.htm)
▪ The EFF DES cracker project (https://web.archive.org/web/20010818144309/http://www.eff.org
/Privacy/Crypto_misc/DESCracker/)
▪ Cryptography pointers for DES (https://web.archive.org/web/20041204065222/http://www.tcs.h
ut.fi/~helger/crypto/link/block/des.html)
▪ DES programa en Java (Inglés) (enlace roto disponible en Internet Archive; véase el historial (https://web.
archive.org/web/*/http://frank.anemaet.nl/crypto/DES), la primera versión (https://web.archive.org/web/1/http://fr
ank.anemaet.nl/crypto/DES) y la última (https://web.archive.org/web/2/http://frank.anemaet.nl/crypto/DES)).
▪ John Savard's description of DES (https://web.archive.org/web/20041209221702/http://home.e
cn.ab.ca/~jsavard/crypto/co0402.htm)
▪ A worked example of the DES algorithm (https://web.archive.org/web/20040820104020/http://w
ww.aci.net/Kalliste/des.htm)
▪ A Javascript DES calculator showing intermediate values (https://web.archive.org/web/200408
24183340/http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS-DES.html)
▪ Java implementation of DES (http://frank.anemaet.nl/crypto/DES) (enlace roto disponible en Internet
Archive; véase el historial (https://web.archive.org/web/*/http://frank.anemaet.nl/crypto/DES), la primera versión
(https://web.archive.org/web/1/http://frank.anemaet.nl/crypto/DES) y la última (https://web.archive.org/web/2/htt
p://frank.anemaet.nl/crypto/DES)).