Protocolo de comunicación seguro para la prueba de igualdad

1

Estoy resolviendo un problema teórico con dos entidades, cada una con un número secreto. Deben averiguar si estos números son iguales sin revelar su número cuando difieren.

Una solución fácil es cifrar ambos números y comparar estos mensajes cifrados. En este caso, todavía es posible, en teoría, calcular / adivinar el otro número secreto (incluso si es muy improbable).

¿Hay algún protocolo que sea 'totalmente seguro', lo que significa que una entidad no puede adivinar el otro número secreto independientemente de su capacidad de cálculo?

    
pregunta Honza 21.09.2016 - 15:34
fuente

1 respuesta

1

No hay necesidad de cifrar nada en este caso de uso. Hashing con un algoritmo no invertible es suficiente. Para evitar dar un hash constante, puedes imaginar un protocolo de desafío :

  • cada parte construye (por separado) una cadena aleatoria y la envía a la otra
  • cada parte concatena la cadena aleatoria recibida con su propio secreto, calcula un hash fuerte (sha512 generalmente se considera lo suficientemente fuerte)
  • cada parte concatena la cadena aleatoria producida con su propio secreto y calcula el hash
  • cada parte envía a la otra el hash producido con la cadena aleatoria de la otra

Si los secretos eran idénticos, los hashes deberían ser iguales. Si no lo son, ninguna parte puede adivinar el secreto de su par porque solo se han intercambiado hashes no invertibles de una sola vez. Incluso si un hombre en el medio pudiera interceptar los mensajes, no podría adivinar el secreto ni pretender saberlo más tarde debido a la parte aleatoria.

    
respondido por el Serge Ballesta 21.09.2016 - 17:08
fuente

Lea otras preguntas en las etiquetas