Estoy revisando para un examen de seguridad informática. Aquí hay un escenario simple:
Supongamos que alguien sugiere la siguiente forma para confirmar que ambos están en posesión de la misma clave secreta. Usted crea un flujo de bits aleatorio a lo largo de la clave, XOR con la clave y lo envía por el canal. Su compañero XORs el bloque entrante con la clave (que debería ser el mismo que su clave) y lo envía de vuelta. Verifica y si lo que recibe es su cadena aleatoria original, ha verificado que su compañero tiene la misma clave secreta, pero ninguno de los dos ha transmitido la clave. ¿Hay algún defecto en este esquema? ¿Por qué o por qué no?
-por causa del XOR, no creo que sea posible obtener el mismo hash desde diferentes teclas (lo que significaría que es una mala función ...)
Luego está esta extensión en el escenario:
Se olvida de usar una clave y simplemente usa un flujo de bits aleatorio para XOR con el mensaje y su compañero usa el mismo flujo de bits aleatorio (aprovechando el hecho de que para una semilla dada, la salida de un generador de números aleatorios es exactamente repetible y completamente determinista.) ¿Existe alguna falla posible con este esquema?
-Diría que esto rompe una de las reglas fundamentales de un buen hash: no es aleatorio. ¿Derecha? Sé que no es realmente posible generar verdaderos valores aleatorios ... ¿es un defecto viable aquí?