Block Cipher Pseudocode

1

Supongamos que tengo un cifrado de bloque cuyo tamaño de clave es de 128 bits. pero la longitud del bloque es de ocho bits. Sea E (m ’) un oráculo de cifrado que se encripta ejecutando nuestro cifrado de bloque" corto "en modo CBC.

¿Cómo escribiría pseudocódigo para un adversario, A (m), que, dado E (m '), probablemente pueda descifrar cualquier entrada en un tiempo razonable usando el hardware moderno?

Mis pensamientos: el m 'que A pasa a E no se basará en el m dado a A. ¿Pero cómo produciría un pseudocódigo para esto ...?

    
pregunta Sungwon Lee 26.01.2014 - 01:28
fuente

1 respuesta

1

El término relevante es libro de códigos . Un cifrado de bloque es una permutación determinística : para una clave determinada, asigna valores de bloque de entrada a valores de bloque de salida, de manera que dos valores de bloque de entrada distintos se asignan a valores de bloque de salida distintos. El "libro de códigos" es la descripción completa de esa permutación: para cada valor de bloque de entrada posible, proporciona la salida correspondiente.

Se puede decir que la clave y el algoritmo son una representación compacta del libro de códigos, que permite la evaluación del algoritmo sobre cualquier entrada dada sin tener que almacenar el libro de códigos completo en algún lugar. Sin embargo, si puede, como atacante, reconstruir el libro de códigos, puede descifrar todo lo que está cifrado con el mismo algoritmo y la misma clave: simplemente tiene una gran tabla de consulta.

Con los bloques de 8 bits, solo hay 2 8 = 256 valores de bloque posibles, por lo que el libro de códigos es notablemente pequeño: es solo un mapa de 256 valores posibles. Con el oráculo de cifrado a la mano, es fácil obtener una copia del libro de códigos completo, por ejemplo. enviando 256 mensajes de un byte para cifrar al oráculo. Puede haber detalles, dependiendo de lo siguiente:

  • ¿El oráculo elige un IV al azar o usará el valor IV que proporciona el atacante?
  • ¿Es un objetivo minimizar el número de solicitudes al oráculo? ¿Y / o el número total de bytes enviados al oráculo?

Aquí puede haber un análisis interesante. Por ejemplo, si envía una solicitud de cifrado para una secuencia de 256 bytes de valor 0, entonces el resultado del cifrado describirá un ciclo de permutación ; La IV selecciona qué ciclo obtienes. Diseñar una estrategia para la recuperación del libro de códigos que minimice el número de solicitudes distintas, mientras que imponer un tamaño máximo bajo en cada solicitud, puede ser un desafío, por lo que es una buena tarea para las tareas.

    
respondido por el Thomas Pornin 26.01.2014 - 15:51
fuente

Lea otras preguntas en las etiquetas