Criptografía – Criptografía de Clave Secreta Planificación de claves DES En 1973, el gobierno de EUA publicó una solicitud de propuestas para algoritmos criptográficos para proteger la transmisión y almacenamiento de datos. En 1974 IBM entregó su algoritmo candidato, conocido internamente con el nombre de LUCIFER. En 1977 fue evaluado y adoptado, con ciertas modificaciones, como el nuevo estándar. Primero se seleccionan 56 bits de la clave de los 64 iniciales mediante la permutación 1 (PC1). 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 permutación 2 (PC2). Los corrimientos implican un conjunto diferente de bits en cada subclave; cada bit se usa en aproximadamente 14 de las 16 subclaves. La Agencia Nacional de Seguridad (NSA) de EUA, intervino en el desarrollo de este algoritmo. LUCIFER sufrió varias revisiones hasta concluir con una versión liberada en 1971. IBM estaba listo para comenzar su comercialización. La NSA, encargada del espionaje de las comunicaciones de todo el mundo, se preocupó por tener que lidiar con un paquete comercial que superaba su capacidad de análisis. La primera intervención de la NSA fue la disminución de la clave de 128 bits a 56; la segunda fue el diseño de las cajas de sustitución, dejando como secretos los detalles de las transformaciones o cálculos para la obtención de las cajas. k (64 bits) PC1 <<< Subclave 1 (48 bits) PC2 Subclave 2 (48 bits) <<< PC2 <<< <<< Subclave 16 (48 bits) PC2 Cifrado y descifrado Descripción Cifrado por bloques de 64 bits. Clave inicial de 64 bits; 56 de ellos son empleados por el algoritmo, los otros 8 son de paridad. 16 rondas de cifrado. Implementa una permutación inicial y una final denominadas PI y PF, inversas entre sí. Consiste en una función Feistel donde se combinan la clave, y tablas de expansión y sustitución con el mensaje en claro. 1 <<< <<< Se considera inseguro para muchas aplicaciones. Esto se debe principalmente a que el tamaño de clave es corto; las claves se han roto en menos de 24 horas. Existen también resultados analíticos que demuestran debilidades teóricas en su cifrado, aunque no son viables en la práctica. Se cree, que en la práctica el algoritmo es seguro en su variante Triple DES, aunque existan ataques teóricos. D C El Data Encryption Standart (DES) es un algoritmo de cifrado en bloques que implementa la difusión y la confusión a lo largo de una serie de vueltas, tanto de los datos que se cifran como de la clave original. Fue criticado por universidades como Stanford y compañías como la Bell Telephone Company. Sin embargo, las voces no fueron escuchadas por una comisión del Senado estadounidense. Así fue como DES fue adoptado comercialmente. 2015 Ing. Aldo Jiménez Arteaga El algoritmo utiliza el bloque de 64 bits aplicándole una permutación inicial (PI) para desordenar los bits. Al término de este paso, se trabaja sobre dos bloques (izquierdo y derecho) de 32 bits aplicando cuatro pasos: 1. Expansión 𝐸(𝑅𝑖−1 ). El bloque derecho de 32 bits se expande a 48 bits mediante la permutación de expansión (E), duplicando algunos de los bits. Criptografía – Criptografía de Clave Secreta 2. 3. 4. Mezcla 𝐸(𝑅𝑖−1 ) ⊕ 𝐾𝑖 . El resultado anterior se combina con una subclave utilizando una operación XOR. La subclave utilizada depende de la ronda (subclave 1 en la ronda 1, subclave 2 en la 2, etc.). Sustitución 𝑆(𝐸(𝑅𝑖−1 ) ⊕ 𝐾𝑖 ). Tras mezclar el mensaje con la subclave de ronda, el bloque es dividido en ocho segmentos de 6 bits antes de ser procesados por la sustitución (S). Se utilizan ocho cajas S, y cada una de ellas reemplaza sus seis bits de entrada con cuatro bits de salida, de acuerdo con una trasformación no lineal, especificada por una búsqueda de coordenadas. Éste paso constituye el núcleo de la seguridad de DES; sin ellas, el cifrado sería lineal, y fácil de romper. Permutación 𝑃�𝑆(𝐸(𝑅𝑖−1 ) ⊕ 𝐾𝑖 )�. Finalmente, la salida de la sustitución sufre una permutación fija (P). 2015 Texo plano (64 bits) PI F F Bloque R (32 bits) E Subclave (48 bits) F S1 S2 S3 S4 S5 S6 S7 S8 PI-1 P Bloque F(R) (32 bits) A la salida de la red Feistel se le aplica una XOR con el bloque izquierdo que aún no ha sido trabajado. Finalmente, la ronda termina al intercambiar los bloques; es decir, la última XOR pasa a ser el bloque derecho y el bloque derecho original (antes de entrar a la función Feistel) se convierte en bloque izquierdo. Este proceso se realiza en 16 rondas. Terminando todas las rondas de cifrado, ambos bloques se concatenan y entra a una permutación final (PI-1). El resultado es el criptograma. 2 Ing. Aldo Jiménez Arteaga Texto cifrado (64 bits) El descifrado ocupa la misma estructura que el cifrado. Las permutaciones inicial y final son inversas, entonces se puede revertir el proceso de esos pasos a ambos lados del algoritmo. La red Feistel permite el descifrado correcto al operar las mismas subclaves pero en sentido inverso; es decir, para descifrar la primera subclave es la número 16, la segunda la número 15, y así sucesivamente hasta que la subclave en la ronda 16 de descifrado es la 1.
© Copyright 2024