En criptografía , una clave débil es una clave que, utilizada con un cifrado específico , hace que el cifrado se comporte de alguna manera indeseable. Las claves débiles suelen representar una fracción muy pequeña del espacio de claves total, lo que normalmente significa que es muy poco probable que una clave de cifrado creada mediante generación de números aleatorios genere un problema de seguridad. Sin embargo, se considera deseable que un cifrado no tenga claves débiles. Se dice que un cifrado sin claves débiles tiene un espacio de claves plano o lineal .
Prácticamente todas las máquinas de cifrado basadas en rotores (desde 1925 en adelante) tienen fallas de implementación que conducen a la creación de una cantidad sustancial de claves débiles. Algunas máquinas de rotores tienen más problemas con las claves débiles que otras, como los cifrados de bloque y de flujo modernos.
Las primeras máquinas de cifrado de flujo también eran máquinas de rotor y tenían algunos de los mismos problemas de claves débiles que las máquinas de rotor más tradicionales. La T52 fue una de esas máquinas de cifrado de flujo que tenía problemas de claves débiles.
Los británicos detectaron por primera vez el tráfico de T52 en el verano y el otoño de 1942. Un enlace era entre Sicilia y Libia , con el nombre en código " Sturgeon ", y otro desde el Egeo hasta Sicilia , con el nombre en código " Mackerel ". Los operadores de ambos enlaces tenían la costumbre de cifrar varios mensajes con la misma configuración de máquina, lo que producía un gran número de profundidades .
Hubo varias versiones (en su mayoría incompatibles) del T52: el T52a y el T52b (que se diferenciaban únicamente en su supresión de ruido eléctrico), el T52c, el T52d y el T52e. Si bien el T52a/b y el T52c eran criptológicamente débiles, los dos últimos eran dispositivos más avanzados; el movimiento de las ruedas era intermitente, y la decisión de avanzarlas o no estaba controlada por circuitos lógicos que tomaban como datos de entrada las propias ruedas.
Además, se habían eliminado una serie de fallos conceptuales (incluso algunos muy sutiles). Uno de ellos era la posibilidad de restablecer el flujo de claves a un punto fijo, lo que provocaba la reutilización de claves por parte de operadores de máquinas indisciplinados.
El cifrado de bloques DES tiene algunas claves específicas denominadas "claves débiles" y "claves semidébiles". Se trata de claves que hacen que el modo de cifrado de DES actúe de forma idéntica al modo de descifrado de DES (aunque potencialmente con una clave diferente).
En funcionamiento, la clave secreta de 56 bits se divide en 16 subclaves según el programa de claves DES ; se utiliza una subclave en cada una de las dieciséis rondas DES. Las claves débiles DES producen dieciséis subclaves idénticas. Esto ocurre cuando la clave (expresada en hexadecimal ) es: [1]
Si una implementación no considera los bits de paridad, las claves correspondientes con los bits de paridad invertidos también pueden funcionar como claves débiles:
Usando claves débiles, el resultado de la Elección Permutada 1 (PC-1) en el esquema de claves DES lleva a que las claves redondas sean todas ceros, todos unos o patrones alternados de cero-uno.
Dado que todas las subclaves son idénticas y DES es una red Feistel , la función de cifrado se invierte automáticamente; es decir, a pesar de que al cifrar una vez se obtiene un texto cifrado de apariencia segura, al cifrar dos veces se obtiene el texto simple original.
DES también tiene claves semidébiles , que solo producen dos subclaves diferentes, cada una utilizada ocho veces en el algoritmo: Esto significa que vienen en pares K 1 y K 2 , y tienen la propiedad de que:
donde E K (M) es el algoritmo de cifrado que cifra el mensaje M con la clave K. Hay seis pares de claves semidébiles:
También hay 48 claves posiblemente débiles que producen solo cuatro subclaves distintas (en lugar de 16). Se pueden encontrar en una publicación del NIST. [2]
Estas claves débiles y semidébiles no se consideran "fallas fatales" de DES. Hay 256 ( 7,21 × 10 16 , aproximadamente 72 cuatrillones) de claves posibles para DES, de las cuales cuatro son débiles y doce son semidébiles. Esta es una fracción tan pequeña del espacio de claves posible que los usuarios no necesitan preocuparse. Si así lo desean, pueden verificar las claves débiles o semidébiles cuando se generan las claves. Son muy pocas y fáciles de reconocer. Sin embargo, tenga en cuenta que actualmente DES ya no se recomienda para uso general, ya que todas las claves DES se pueden forzar brutamente; han pasado décadas desde que la máquina Deep Crack las descifraba en el orden de los días y, como suelen hacer las computadoras, las soluciones más recientes son mucho más baratas en esa escala de tiempo. Hay ejemplos de progreso en el artículo de Deep Crack.
El objetivo de tener un espacio de claves "plano" (es decir, que todas las claves sean igualmente fuertes) es siempre un objetivo de diseño de cifrado. Como en el caso de DES, a veces es aceptable una pequeña cantidad de claves débiles, siempre que todas estén identificadas o sean identificables. Un algoritmo que tenga claves débiles desconocidas no inspira mucha confianza. [ cita requerida ]
Las dos principales contramedidas contra el uso inadvertido de una clave débil son:
Una gran cantidad de claves débiles es un grave defecto en cualquier diseño de cifrado, ya que habrá una probabilidad (quizás demasiado) grande de que una clave generada aleatoriamente sea débil, lo que comprometerá la seguridad de los mensajes cifrados con ella. También llevará más tiempo comprobar si las claves generadas aleatoriamente son débiles en esos casos, lo que tentará a utilizar atajos en aras de la "eficiencia".
Sin embargo, las claves débiles son mucho más a menudo un problema cuando el adversario tiene cierto control sobre qué claves se utilizan, como cuando se utiliza un cifrado de bloque en un modo de operación destinado a construir una función hash criptográfica segura (por ejemplo , Davies-Meyer ).