Transformada de Pseudo-Hadamard en SAFER K-64

3

El PHT parece tan simple: b1 = 2*a1 + a2; b2 = a1 + a2 . y sin embargo, definitivamente me estoy perdiendo algo, ya que el documento para SAFER K-64 muestra:

INPUT VECTOR is 0 0 0 0 0 0 0 1
OUTPUT VECTOR is 1 1 1 1 1 1 1 1

donde cada valor es de 8 bits.

¿Alguien puede explicar cómo en el mundo 2 * 0 + 0 se convierte en 1 ? Creo que esto es lo único que impide que mi implementación más segura funcione correctamente.

    
pregunta calccrypto 07.07.2011 - 01:41
fuente

1 respuesta

5

Ha confundido la transformación PHT con las capas PHT de la función de redondeo del cifrado de bloque:

  • La transformación PHT asigna una entrada de dos bytes a una salida de dos bytes. Utiliza la fórmula que enumeraste. Por ejemplo, PHT (0,1) = (1,1).

  • Las capas PHT de la función de redondeo asignan una entrada de 8 bytes a una salida de 8 bytes. Cada ronda tiene una secuencia de 3 capas. Cada capa consta de 4 transformaciones PHT paralelas.

El vector de entrada / salida que lista es para las capas PHT de la función de redondeo, no para la transformación PHT en sí. Si sigue el diagrama de cálculo (consulte, por ejemplo, la Figura 7.12 y la Sección 7.7.1 en el capítulo apropiado del Manual sobre criptografía aplicada , verá cómo las capas PHT transforman la entrada (0,0,0,0,0,0,0,1) en (1,1,1,1,1). 1,1,1) mediante la aplicación de 12 transformaciones PHT en la secuencia apropiada.

Un último comentario: No recomiendo usar SAFER K-64. Es un cifrado obsoleto. Hay una serie de deficiencias: hay algunas debilidades criptoanalíticas menores en él; No se ha estudiado mucho; y peor aún, el tamaño de la llave y el tamaño del bloque son demasiado pequeños. Por estas razones, no recomiendo que use SAFER K-64 o que lo exponga como una opción para sus usuarios. En su lugar, te recomiendo que uses AES.

    
respondido por el D.W. 07.07.2011 - 06:31
fuente

Lea otras preguntas en las etiquetas