Este artículo detalla las distintas tablas a las que se hace referencia en el cifrado de bloques del Estándar de cifrado de datos (DES) .
En este documento, todos los bits y bytes están ordenados en orden big endian . Es decir, el bit número 1 es siempre el bit más significativo.
Esta tabla especifica la permutación de entrada en un bloque de 64 bits. El significado es el siguiente: el primer bit de la salida se toma del bit 58 de la entrada; el segundo bit, del bit 50, y así sucesivamente, hasta que el último bit de la salida se toma del bit 7 de la entrada.
Esta información se presenta como una tabla para facilitar la presentación; es un vector, no una matriz.
La permutación final es la inversa de la permutación inicial; la tabla se interpreta de manera similar.
La función de expansión se interpreta como para las permutaciones inicial y final. Nótese que algunos bits de la entrada se duplican en la salida; por ejemplo, el quinto bit de la entrada se duplica tanto en el sexto como en el octavo bit de la salida. Por lo tanto, el medio bloque de 32 bits se expande a 48 bits.
La permutación P baraja los bits de un medio bloque de 32 bits.
Las mitades "Izquierda" y "Derecha" de la tabla muestran qué bits de la clave de entrada forman las secciones izquierda y derecha del estado de programación de claves. Tenga en cuenta que solo se seleccionan 56 bits de los 64 bits de la entrada; los ocho restantes (8, 16, 24, 32, 40, 48, 56, 64) se especificaron para su uso como bits de paridad .
Esta permutación selecciona la subclave de 48 bits para cada ronda a partir del estado de programación de claves de 56 bits. Esta permutación ignorará los 8 bits siguientes:
La opción permutada 2 "PC-2" ignoró los bits 9, 18, 22, 25, 35, 38, 43, 54.
Esta tabla enumera las ocho cajas S utilizadas en DES. Cada caja S reemplaza una entrada de 6 bits por una salida de 4 bits. Dada una entrada de 6 bits, la salida de 4 bits se encuentra seleccionando la fila que utiliza los dos bits externos y la columna que utiliza los cuatro bits internos. Por ejemplo, una entrada " 0 1101 1 " tiene bits externos " 01 " y bits internos "1101"; teniendo en cuenta que la primera fila es "00" y la primera columna es "0000", la salida correspondiente para la caja S 5 sería "1001" (=9), el valor en la segunda fila, columna 14. (Ver caja S ).
La clave principal proporcionada por el usuario es de 64 bits. Con ella se realizan las siguientes operaciones.
Elimina los bits de las posiciones grises (8x) para crear 56 bits de espacio para operaciones posteriores en cada ronda.
Después de eso, los bits se permutan de acuerdo con la siguiente tabla:
La tabla es de orden mayor por filas, es decir,
Posición de bit actual = Sustituir con el bit de la fila * 8 + columna .
Antes de seleccionar la subclave redonda, cada mitad del estado de programación de la clave se rota hacia la izquierda una cantidad de lugares. Esta tabla especifica la cantidad de lugares rotados.
• La clave se divide en dos partes de 28 bits
• Cada parte se desplaza hacia la izquierda (circular) uno o dos bits
• Después del cambio, las dos partes se combinan para formar nuevamente una clave temporal de 56 bits.
• La caja de compresión P cambia la clave de 56 bits a una clave de 48 bits, que se utiliza como clave para la ronda correspondiente.
La tabla es de orden mayor por filas, es decir,
Posición de bit actual = Sustituir con el bit de la fila * 8 + columna .
Luego de esto retorna la Round-Key de 48 bits a la función llamada, es decir la Round.