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.