¿Es esta "Función" de hash segura para la integridad?

0

Me preguntaba cuáles eran los posibles problemas de seguridad (no de eficiencia) con esta función "hash":

Aunque no es una función real, este método convierte un mensaje de cualquier longitud en un mensaje de longitud fija. Cuando no sea factible derivar el mensaje del hash de longitud fija.

-Alice quiere enviar un mensaje (m) a Bob.

-Alice y Bob utilizan un cifrado simétrico con una clave compartida de alguna otra manera.

-Alice luego genera dos números verdaderamente aleatorios de la misma longitud que el mensaje (m) y realiza una OTP en el mensaje dos veces, una tecla aplicada a my una tecla aplicada al resultado de la otra tecla y m .. Alice destruye las llaves.

: hay un servidor llamado "servidor hash" que es un miembro de terceros en el que confían Alice y Bob y todos los demás remitentes de mensajes.

-Alice envía el doble texto cifrado OTP al servidor.

-El servidor responde con un mensaje de longitud fija más corto que el texto cifrado y lo llama el hash de (m) que el servidor no conoce. Este mensaje de longitud fija es un número verdaderamente aleatorio que se almacena en el servidor y se envía a Alice.

-Alice concatena la OTP encriptada doble con m y usa el cifrado simétrico para cifrar eso.

-Alice envía el (MAC) junto con el texto cifrado

-Bob envía el doble cifrado de texto cifrado al servidor. El servidor verifica si eso coincide con algo en su base de datos y envía el "hash" resultante a Bob. Si el resultado coincide con el MAC de Alice, el mensaje está intacto.

No hay colisiones ya que el servidor nunca enviará el mismo número aleatorio para dos mensajes diferentes. El doble cifrado es para que Bob no pueda derivar la clave OTP de Alice del mensaje que recibió de ella.

    
pregunta dylan7 01.07.2015 - 01:06
fuente

1 respuesta

5

Estoy un poco confundido acerca de lo que estás tratando de lograr con este protocolo bastante complicado y propenso a errores.

Si entiendo su idea correctamente, básicamente está trasladando el problema de integridad a las comunicaciones con el "servidor hash". Si alguien podía MITM tanto el tráfico entrante y saliente de Alice como el de Bob, podría alterar el mensaje de Alice, y luego hacer que el servidor envíe un "hash" arbitrario a Alice cuando ella solicite uno y devolver el mismo valor a Bob cuando él solicite un "hash" la próxima vez.

También hay otras suposiciones que me parecen contradictorias; Por ejemplo, es matemáticamente imposible que el servidor "nunca envíe el mismo número aleatorio para dos mensajes diferentes" si también requiere que cada hash sea un "mensaje de longitud fija más corto que el texto cifrado". Además, no veo ninguna razón por la que a Bob no se le permita "derivar la clave OTP de Alice". ¿Qué haría con eso de todos modos? Por lo tanto, el cifrado de "doble OTP" me parece innecesario.

Probablemente lo hayas escuchado antes, pero hay una regla en la criptografía que dice "no hagas tu propio rollo", lo que básicamente significa que no debes intentar inventar tu propio protocolo si hay soluciones establecidas que no han sido roto hasta ahora. La razón es que estos protocolos bien establecidos generalmente han sido investigados por un gran número de personas muy inteligentes, a diferencia de su algoritmo "nuevo" que ha puesto en los foros de stackexchange para discusión;)

    
respondido por el zinfandel 01.07.2015 - 03:03
fuente

Lea otras preguntas en las etiquetas