¿Cómo buscar tablas de permutación en DES?

0

Para averiguar la permutación final o la permutación inicial en DES Encryption, necesitamos buscar tablas de permutación.

Tomando un ejemplo: Encuentre la salida del cuadro de permutación inicial cuando la entrada se da en hexadecimal como: 0x0000 0080 0000 0002. Después de leer la solution , no soy capaz de entender:

  1. ¿Cómo es el bit 25 y el bit 64 1s?

  2. ¿Cómo se convierte el bit 25 en la permutación final, el bit 64 y el bit 63 en el bit 15?

Por favor, explique los resultados.

    
pregunta Sahil Babbar 21.09.2015 - 20:27
fuente

1 respuesta

3

El DES se especifica en FIPS 46-3 , que es más bien un antiguo estándar que usa una numeración poco común de bits dentro de bytes. Es decir, comienzan en 1 y cuentan los bits de izquierda a derecha.

Entonces, en la siguiente secuencia de bytes:

00 00 00 80 00 00 00 02

El primer byte es los bits 1 a 8, el segundo byte es los bits 9 a 16, el tercer byte es los bits 17 a 24, el cuarto byte (el que tiene el valor 80 ) es el bit 25 a 32, y así sucesivamente. Si considera que 80 está escrito en binario 10000000 , y que estos bits están numerados de 25 a 32 de izquierda a derecha, entonces el bit 25 tiene el valor 1. Del mismo modo, el último byte ( 02 ) contiene bits 57 a 64; el bit 63 tiene valor 1.

La "solución" en el documento al que se vincula contiene la oración:

  

Dada la entrada hexadecimal, cuando la expandimos a binario, encontramos que solo el bit 64 y el bit 25 son 1s y los otros bits son 0s.

que es incorrecto, y probablemente un error tipográfico. Debe leer "solo el bit 63 y el bit 25 son 1s".

La "permutación inicial" se especifica en la página 10 de FIPS 46-3; enumera los bits de la salida de la permutación, y dice de dónde vienen (esta es una tabla "proviene de", no una tabla "va a"). El bit de entrada 25 va al bit de salida 37 (el valor "25" es el número 37 en la tabla), mientras que el bit de entrada 63 va al bit de salida 57. Esto debería producir:

00 00 00 00 08 00 00 80

que no es en absoluto lo que el documento enumera como "solución". De hecho, la solución habla de la "permutación final" (mientras que la pregunta era acerca de la "permutación inicial"). Si suponemos que la pregunta también tiene un error tipográfico (el autor escribió "inicial" pero pensó "final"), entonces podemos probar la permutación final, cuya tabla también se encuentra en la página 10 de FIPS 46- 3. En esa tabla, el bit 25 de la entrada va al bit 64 de la salida (el número "25" aparece como el 64, es decir, el último elemento de la tabla de IP -1 ), mientras que el bit 63 de la entrada va al bit 15 de la salida (el número "63" aparece como el elemento 15 en la tabla). En ese caso, esto daría este resultado:

00 02 00 00 00 00 00 01

que es lo que la "solución" da como respuesta correcta.

Resumen: el documento contiene dos errores:

  • En la pregunta, dice "permutación inicial", pero debería ser "permutación final".
  • En la solución, dice "bit 64 y 25", pero debería ser "bit 63 y 25".

Con estas dos correcciones, la pregunta y la solución ahora coinciden.

No he analizado las otras preguntas / soluciones, pero dos errores de este tipo en la primera pregunta arrojan una mala opinión sobre la calidad del documento.

    
respondido por el Tom Leek 21.09.2015 - 21:37
fuente

Lea otras preguntas en las etiquetas