ToolActToolAct

Herramienta de Cifrado y Descifrado DES

Compatible con DES y Triple DES (3DES), cinco modos de cifrado disponibles

Configuración de cifrado

Entrada
Caracteres: 0
Bytes: 0
Salida
Caracteres: 0
Bytes: 0

¿Qué es DES?

DES (Data Encryption Standard) nació en 1977, desarrollado por IBM y modificado por la NSA antes de convertirse en estándar federal de EE.UU. Usa una red de Feistel que divide el texto plano de 64 bits en dos mitades y las somete a 16 rondas de transformación. La clave es nominalmente de 64 bits, pero 8 se usan para comprobaciones de paridad, dejando 56 bits de clave efectiva. En su momento esos 56 bits eran suficientes, pero en 1999 ya se podía romper por fuerza bruta en 22 horas con hardware dedicado. Triple DES (3DES) surgió para alargar la vida útil de DES: aplica el cifrado tres veces con tres claves distintas, logrando 168 bits de clave efectiva. 3DES sigue siendo ampliamente utilizado en el sector financiero, presente en tarjetas EMV y numerosos protocolos bancarios. Aunque AES ha reemplazado oficialmente a DES como estándar de cifrado, DES y 3DES siguen activos en sistemas heredados, protocolos financieros y dispositivos embebidos. Esta herramienta soporta ambos algoritmos con los modos CBC, ECB, CFB, OFB y CTR.

Cómo usar

Cómo usar

  1. Elige el algoritmo: DES (clave de 56 bits) o 3DES (clave de 168 bits)
  2. Selecciona un modo de cifrado: CBC es el recomendado.
  3. Elige un esquema de relleno: PKCS#7 funciona en la mayoría de los casos.
  4. Introduce una clave o haz clic en 'Generar clave aleatoria'.
  5. Para modos que requieren un IV, introduce o genera uno.
  6. Escribe tu texto plano (para cifrar) o texto cifrado (para descifrar) a la izquierda.
  7. Los resultados aparecen a la derecha automáticamente.

Modos de cifrado

  • CBCCipher Block Chaining. Aplica XOR a cada bloque de texto plano con el bloque de texto cifrado anterior antes de cifrar. Requiere un IV. Ofrece buena seguridad y es el modo más utilizado.
  • ECBElectronic Codebook. Cada bloque se cifra de forma independiente: bloques idénticos de texto plano producen texto cifrado idéntico. Adecuado para bloques individuales de 8 bytes, no recomendado para datos más largos.
  • CFBCipher Feedback. Convierte el cifrado por bloques en un cifrado de flujo. Adecuado para procesar datos byte a byte o en fragmentos pequeños.
  • OFBOutput Feedback. Similar a CFB pero los errores no se propagan. Útil cuando el canal de comunicación es ruidoso.
  • CTRModo Counter. Usa un contador incremental para generar un flujo de claves. Permite cifrado y descifrado en paralelo con buen rendimiento.

Consejos

  • Usa AES si puedes: DES existe principalmente por compatibilidad con sistemas antiguos.
  • 3DES es mucho más seguro que DES, pero aproximadamente tres veces más lento.
  • Siempre usa un IV aleatorio diferente para cada cifrado.
  • Evita ECB para cifrar datos de más de 8 bytes.
  • Genera claves aleatorias en lugar de escribir cadenas fáciles de recordar.

Casos de uso

Reproducir integraciones heredadas con DES o TripleDESElige DES con clave de 8 bytes o TripleDES con clave de 24 bytes, y selecciona el modo ECB, CBC, CFB, OFB o CTR al mantener protocolos antiguos de pago, telecomunicaciones, dispositivos o sistemas empresariales. La implementación de la red de Feistel se ejecuta completamente en el navegador mediante crypto-js, por lo que la clave de 56 bits (DES) o 168 bits (3DES) y el texto plano nunca salen de la pestaña local — útil al reproducir una muestra del proveedor sin enviar datos reales a una herramienta remota.
Alinear exactamente los formatos de clave, IV y texto cifradoIntroduce claves e IVs en hex, Base64 o texto, genera material aleatorio cuando sea necesario y valida el IV de 8 bytes requerido para modos no-ECB antes de comparar la salida con otro sistema. La página facilita confirmar si la discrepancia se debe a una longitud de clave incorrecta (DES necesita 8 bytes, 3DES necesita 24), un IV faltante o desactualizado, o un caso límite de relleno PKCS#7 en el último bloque.
Documentar por qué un cifrado heredado debe permanecer aisladoUsa la herramienta para pruebas de compatibilidad y notas de migración, no para nuevo diseño de seguridad. DES es obsoleto (una máquina dedicada lo descifró en 22 horas en 1999, y los clusters de GPU actuales lo hacen mucho más rápido) y TripleDES es legacy. Los sistemas modernos deberían preferir cifrado autenticado como AES-GCM, y los ejemplos con DES deben etiquetarse claramente para que no se copien en nuevos trabajos de seguridad.
Verificar ida y vuelta del texto cifrado contra una muestra del proveedorCifra un texto conocido con la clave e IV publicados por el socio, luego descifra y compara la salida byte a byte al integrar con terminales de pago, herramientas SIM o APIs heredadas. Usa el contador de longitud de bytes para confirmar que la salida coincide con el límite de bloque de 8 bytes esperado por el proveedor, ya que el relleno truncado o espacios extra alrededor del campo Base64 son causas comunes de fallos silenciosos.
Alternar entre hex, Base64 y texto para coincidir con formatos de transporteAdapta la opción de codificación al campo que recibe el texto cifrado, ya que un servicio downstream que solo acepte Base64 rechazará hex crudo aunque la salida DES subyacente sea idéntica. La misma clave en hex ('0123456789abcdef') y Base64 ('ASNFZ4mrze8=') descifra al mismo texto plano — útil para diagnosticar informes de 'formato incorrecto' de un sistema asociado.

Principio técnico

DES es un cifrado de bloques de Feistel publicado como FIPS 46 en 1977. Opera sobre bloques de 64 bits con una clave de 64 bits, de los cuales 8 bits son de paridad, dejando 56 bits de material de clave efectivo. El cifrado comienza con la Permutación Inicial (IP), divide el estado de 64 bits en dos mitades de 32 bits L0 y R0, y ejecuta 16 rondas de Feistel de la forma (L_{i+1}, R_{i+1}) = (R_i, L_i XOR F(R_i, K_i)). La función de ronda F expande 32 bits a 48 bits mediante la caja E, aplica XOR con la clave de ronda K_i de 48 bits derivada por el programa de claves PC-1/PC-2, aplica ocho cajas S de 6 a 4 bits (S1..S8) y ejecuta la permutación P-box. La Permutación Final (FP = IP^-1) produce el texto cifrado. Triple DES, definido en NIST SP 800-67, aplica DES tres veces en una construcción Cifrar-Descifrar-Cifrar (EDE): C = E_{K3}(D_{K2}(E_{K1}(P))). La opción de clave 1 usa tres claves independientes de 56 bits (168 bits brutos, ~112 bits de seguridad efectiva contra ataques de encuentro en el medio); la opción de clave 2 establece K1 = K3 (~80 bits efectivos). Los modos de cifrado por bloques envuelven DES/3DES para manejar mensajes de más de 64 bits: ECB cifra cada bloque de forma independiente y filtra patrones del texto plano; CBC encadena mediante C_i = E_K(P_i XOR C_{i-1}) con un IV aleatorio de 8 bytes; CFB y OFB convierten el cifrado por bloques en un cifrado de flujo autronomizador o síncrono; CTR aplica XOR al texto plano con E_K(nonce || counter). El espacio de claves de 56 bits de DES (2^56 ≈ 7,2 × 10^16) es exhaustible: el EFF DES Cracker rompió un desafío DES en 22 horas en 1998 con ASICs personalizados, y los clusters modernos de GPU/FPGA lo completan en horas. NIST SP 800-131A retiró DES simple en 2005 y desautorizó Triple DES para cifrado después de 2023; el ataque de cumpleaños Sweet32 (CVE-2016-2183) debilita aún más 3DES en TLS porque su tamaño de bloque de 64 bits permite colisiones después de ~2^32 bloques (~32 GB) bajo una sola clave. Los sistemas modernos deberían usar AES-128 o AES-256 en un modo autenticado como GCM o ChaCha20-Poly1305 en su lugar.

  • La clave DES es de 8 bytes incluyendo paridad (56 bits efectivos); las claves 3DES son de 16 bytes (2 claves, ~80 bits de seguridad) o 24 bytes (3 claves, ~112 bits de seguridad contra encuentro en el medio).
  • El tamaño de bloque es de 64 bits / 8 bytes; CBC, CFB, OFB y CTR requieren un IV/nonce de 8 bytes, ECB no usa IV (y filtra patrones a nivel de bloque).
  • El relleno PKCS#7 añade N bytes de valor N (1 ≤ N ≤ 8); se añade un bloque completo de 8 bytes de 0x08 cuando la longitud del texto plano ya es múltiplo de 8.
  • Las claves débiles 0x0101010101010101, 0xFEFEFEFEFEFEFEFE y los cuatro pares de claves semi-débiles hacen que K1 = K2 en el programa de claves, por lo que E_K = D_K — evítalas al generar claves aleatorias.
  • Sweet32 (CVE-2016-2183) explota el bloque de 64 bits de 3DES: una sola clave colisiona después de ~2^32 bloques (~32 GB de texto plano bajo una sola clave en modo CBC).
  • NIST SP 800-67 Rev. 2 desautorizó Triple DES para cifrado después del 31 de diciembre de 2023; los nuevos diseños deberían usar AES-GCM o ChaCha20-Poly1305, no DES ni 3DES.
  • El EFF DES Cracker (Deep Crack) rompió DES en 22 horas en julio de 1998 por menos de $250.000 en dólares de 1998; los clusters modernos de GPU lo hacen en horas, por lo que DES simple no es un control de confidencialidad.

Ejemplos

Cifrado DES-CBC

Texto plano: Hello World
Clave (hex): 0123456789abcdef
IV (hex): fedcba9876543210
Modo: CBC / PKCS#7
Salida: texto cifrado codificado en Base64

Cifrado 3DES

Algoritmo: Triple DES
Clave (hex): 24 bytes (48 caracteres hex)
Modo: CBC / PKCS#7
Nota: La clave de 168 bits aún se considera segura hoy en día, pero se prefiere AES para nuevos proyectos

Bloque único ECB

Texto plano: 8 bytes (exactamente un bloque DES)
Clave:  0123456789abcdef
Modo:   ECB / PKCS#7
Nota:   ECB solo es seguro para un único bloque de 8 bytes; nunca lo uses para datos más largos

Preguntas frecuentes

¿DES sigue siendo seguro?

No. El DES estándar tiene una clave efectiva de 56 bits y se rompió públicamente en 1998: hardware dedicado puede romperlo por fuerza bruta en menos de un día y las GPU modernas en la nube lo hacen en minutos. NIST retiró formalmente DES en 2005. Para cualquier sistema nuevo, usa AES.

¿Y el Triple DES (3DES)?

3DES aplica DES tres veces con dos o tres claves, lo que da unos 112 bits de seguridad efectiva. NIST lo deprecó en 2017 y prohibió su uso en aplicaciones nuevas a partir de 2023 por los ataques basados en la paradoja del cumpleaños (Sweet32) sobre su tamaño de bloque de 64 bits. Solo sobrevive en sistemas heredados (redes bancarias antiguas y TPV); migra cuando puedas.

¿Por qué la página sigue ofreciendo DES?

Porque hay sistemas heredados reales que aún lo usan. La herramienta resulta útil cuando tienes que interoperar con un formato bancario antiguo, un firmware embebido o un ejercicio académico. No es una recomendación: el código nuevo debería usar AES.

¿Qué modos de DES existen y qué significan?

ECB cifra cada bloque de forma independiente y deja al descubierto patrones. CBC encadena bloques y necesita un IV. CFB y OFB convierten DES en un cifrado de flujo. CTR usa un contador como nonce. Para DES, prefiere CBC con relleno PKCS#7 cuando lo importante sea la interoperabilidad; nunca uses ECB con datos reales.

¿Qué tamaño de bloque y de clave usa DES?

DES tiene un tamaño de bloque de 64 bits y una clave de 64 bits, de los cuales solo 56 son material de clave (los otros 8 son de paridad). 3DES con tres claves sigue teniendo bloque de 64 bits, y por eso Sweet32 se convirtió en un problema con grandes volúmenes de datos.

¿El cálculo se hace en mi navegador?

Sí. DES se calcula en local mediante JavaScript. Las claves y el texto en claro no salen del dispositivo. Puedes comprobarlo en la pestaña Red mientras cifras o descifras.

¿Por qué mi salida 3DES no coincide con la del sistema con el que me comunico?

Causas habituales: bits de paridad de la clave incorrectos, bytes de la clave en otro orden, modo equivocado (ECB frente a CBC), IV ausente o de más, relleno incorrecto (PKCS#7 frente a ZeroPadding) o entrada codificada como UTF-8 por un lado y UTF-16 por el otro. Antes de depurar con datos reales, comprueba con la otra parte un vector de prueba conocido.