generador de números aleatorios isaac y el tipo de cifrado para el que se utiliza (cifrado de paquetes de juego)?

2

Recientemente encontré isaac pero no estoy seguro de qué tipo de cifrado es posible usarlo. ¿El propio generador de números aleatorios se convierte en el mensaje de alguna manera o se usa como semilla para un método de codificación? Entonces qué; y alguien puede dar algún ejemplo de código en un lenguaje basado en C (si es posible). Si acaba de mencionar el nombre de cifrado que está bien. Básicamente, necesito esto para cifrar los paquetes tcp de mmorpg (juegos en línea para los no jugadores) para prevenir los ataques MITM y cualquier otro ataque posible.

    
pregunta pandoragami 03.04.2013 - 05:44
fuente

2 respuestas

4

Si desea garantizar la seguridad de sus comunicaciones, en particular, evite los ataques Man-in-the-Middle , necesitas mucho más que cifrado. El cifrado solo proporciona confidencialidad , pero no evita las alteraciones (por ejemplo, la reproducción de paquetes, la eliminación de paquetes, la reordenación de paquetes, la conmutación de bits ...). También necesita algunas comprobaciones de integridad y una forma de garantizar que el cliente está hablando con el servidor correcto. Ensamblar protocolos criptográficos es muy difícil (no es difícil hacer que se ejecute; alcanzar seguridad es difícil), por lo que lo más inteligente es reutilizar un protocolo ya definido que hace el trabajo y ha sido bien estudiado. Esto se denomina SSL (también conocido como "TLS" en sus versiones recientes). Será mucho mejor que cualquier esquema propio y mucho más fácil para usted ya que las bibliotecas que lo implementan ya existen. El software que es más fácil de implementar es el software que ya se ha implementado.

Para su pregunta específica, es posible convertir un determinista PRNG criptográficamente seguro en un esquema de encriptación utilizando como clave el estado de inicio interno del PRNG: genera la secuencia pseudoaleatoria dependiente de la clave, que luego XOR con los datos para cifrar; El descifrado es idéntico. Así es como funciona la mayoría de los cifrados de flujo . El uso es delicado: NUNCA debe cifrar dos mensajes con la misma clave, ya que sería el infame dos veces el pad . Cuando SSL usa RC4 (otro cifrado de flujo más conocido), cada conexión usa una nueva clave.

Si ISAAC es criptográficamente seguro queda por verse. Es antiguo, y ha atraído algunas revisiones por parte de los criptógrafos, lo cual es bueno; sin embargo, no formaba parte del proyecto eSTREAM y ni siquiera se ha enviado a eBASC (para la evaluación comparativa en muchos tipos de PC), por lo que parece un poco "abandonado". Como no se especifica la parte "inicializadora" (convertir una clave inicial, como una pequeña secuencia de bits, en el estado inicial inicial del PRNG), se puede argumentar que ISAAC, como algoritmo criptográfico, nunca se "completó", excluyendo Cualquier esfuerzo decente en criptoanálisis. Estudiarlo con fines académicos está bien, pero debo recomendarlo en contra de su uso en producción. Y, de todos modos, deberías usar SSL.

    
respondido por el Thomas Pornin 03.04.2013 - 13:05
fuente
-1

En resumen, dado que no puedes o no quieres usar SSL (sería una buena elección en este caso), aquí te explicamos cómo usar ISAAC para cifrar una transmisión

  • Elija una clave, ya sea ingresada por el usuario o derivada de la información que tenga sobre él (material almacenado en algún lugar y / o recuperado de la conexión actual)

  • Use PKCS # 5 v2.0 para generar un número adecuado de bytes que se derivan de la tecla arriba

  • Siembre el ISAAC CSPRNG utilizando el bloque de bytes derivado

  • Ahora, para cada byte de entrada, obtenga un byte de ISAAC y use XOR para en / decodificar el byte

Eso es todo, el enfoque es el mismo que el uso de OTP y, básicamente, le brinda el mismo nivel de seguridad del XOR de vainilla aplicado a un flujo de entrada y tiene una clave totalmente aleatoria de la misma longitud del flujo de entrada.

    
respondido por el GrayHat 29.08.2016 - 15:34
fuente

Lea otras preguntas en las etiquetas