¿Cuál es el cifrado de bloque para un mensaje muy corto (40 bits)?

5

Pregunta :

Estoy tratando de cifrar un mensaje de 32 bits para producir un texto cifrado que no supere los 40 bits. ¿Existen cifrados codificados en bloque u otras buenas maneras de cifrar mensajes muy cortos? ¿Hay algún cifrado conocido con un tamaño de bloque tan pequeño?

Contexto y motivación:

Los videojuegos para plataformas retro pueden tener una campaña más larga que una sesión pero no una memoria no volátil para almacenar el estado de la campaña. Para continuar una campaña a lo largo de un ciclo de energía, el juego emite una " contraseña " y el jugador la ingresa la próxima vez. Esta contraseña es un breve mensaje cifrado que contiene el estado de una campaña más algunos bits adicionales que se utilizan para garantizar que las contraseñas ingresadas aleatoriamente con algunos bits volteados probablemente no funcionen. Para esta aplicación, el mensaje de 32 bits incluye el capítulo en el que se encuentra el jugador, las banderas de búsqueda, el dinero, la experiencia y demás. Una contraseña típica tiene 8 caracteres con 32 posibilidades (5 bits) por carácter (dígitos, consonantes y guión), para un total de 40 bits. Las contraseñas más largas son mucho más tediosas de escribir e ingresar.

No conozco ningún cifrado conocido con un tamaño de bloque tan corto. El robo de texto cifrado funciona cuando es más largo que un bloque pero no es un múltiplo exacto del tamaño de bloque de un cifrado. Por ejemplo, si hubiera un cifrado de bloque de 32 bits, uno podría cifrar los primeros 32 bits y luego los últimos 32 bits, que tocan los 24 bits del medio dos veces. Pero por lo que puedo decir, no se aplica a un mensaje más corto que un bloque. Así que actualmente estoy usando un cifrado casero (sí, eww) con una estructura inspirada en XXTEA , con cinco bits de 8 bits. Palabras en lugar de varias palabras de 32 bits. Después de empaquetar el estado de la campaña en los primeros 32 bits, relleno los bits restantes con una constante antes del cifrado y rechazo las contraseñas en las que el relleno no se descifra a la constante deseada. ¿Hay algo mejor para un bloque de 40 bits que rodar el tuyo?

El cifrado y el descifrado deben ejecutarse en un microprocesador de 8 bits en menos de un millón de ciclos. Me preocupan los ataques en línea y los ataques con lápiz y papel de los jugadores aburridos, como se ha publicado en la sección "Información clasificada" de la revista Nintendo Power . Pero no estoy tan preocupado por los ataques automáticos de alguien que lee el algoritmo y la clave simétrica fuera del código del juego y utiliza esta información para colocar un generador de contraseñas en un sitio web, ya que esto requeriría un esfuerzo consciente por parte de un jugador para engañar. el juego.

    
pregunta Damian Yerrick 15.03.2016 - 19:13
fuente

1 respuesta

9

El nombre genérico para ese tipo de cosas es cifrado para preservar el formato . El Thorp shuffle es un buen candidato, siempre que use una función redonda adecuada (por ejemplo, truncado salida para una función hash criptográficamente segura) y suficientes rondas, como se indica en el documento.

Dicho esto, con 1 millón de ciclos en una computadora de 8 bits, puede ser difícil de ejecutar, digamos, un Thorp shuffle de 64 rondas con SHA-1 truncado como función de ronda.

Lamentablemente, no existe un cifrado de bloques estándar bien estudiado con bloques cortos y buen rendimiento en arquitecturas pequeñas. Por otro lado, tu modelo de ataque indica que los atacantes no se esforzarán mucho, por lo que no necesitas seguridad absoluta de grado criptográfico; una construcción que es académicamente débil todavía puede ser lo suficientemente fuerte para ti.

Le sugiero que hojee esta página que enumera "cifrados de bloques ligeros" con algunos análisis. Algunos de ellos ofrecen bloques de 32 bits. Lo que necesita es un cifrado de bloque, como un ataque conocido en un número reducido de rondas, lo que indica que algunos criptógrafos intentaron romperlo y no tuvieron éxito con el cifrado completo. De una mirada superficial, al menos KATAN, KTANTAN, SIMECK-32, SIMON-32 y SPECK-32 coinciden con estos criterios; RC5 también se puede utilizar con un número adecuado de rondas.

    
respondido por el Thomas Pornin 15.03.2016 - 19:36
fuente

Lea otras preguntas en las etiquetas