5 votos

¿Cómo convencer públicamente a alguien de que conoces su secreto sin que nadie más lo sepa?

Para fijar las ideas, suponga que está sentado a la mesa con unos amigos, entre los que hay una pareja embarazada. Saben, pero quieren mantenerlo en secreto, si su hijo será niño o niña, por lo que utilizan el pronombre neutro de género "eso" al referirse al niño. En algún momento de la conversación, uno de los miembros de la pareja utiliza un pronombre específico de género. Tú eres el único que se da cuenta, y en ese momento estás seguro de que conoces el secreto. Nadie más sabe que lo sabes.

Le cuentas a la pareja lo que le has oído decir, pero no te creen. Quieres convencerles de que sabes el sexo, pero por respeto a su secreto no quieres contarlo de inmediato para que todo el mundo se entere. Llamemos "protocolo" al supuesto procedimiento para convencerles.

Aclaraciones y restricciones

  • Secreto" significa aquí el género del niño.
  • Toda la comunicación es pública. No puedes susurrarles al oído.
  • El protocolo no debería confirmar que está en lo cierto. La pareja no sabe que tú conoces el secreto, y no quiere que el protocolo te dé información sobre si tu "conjetura" (como ellos la perciben) es correcta o no: si sólo pretendieras saberlo, dar información podría filtrarte el secreto.
    Todo lo que quieres es convencerlos.

Pregunta 1. ¿Es posible convencerles de que conoces el secreto, sin filtrar el secreto a nadie más, y de tal manera que si sólo pretendieras saberlo, no obtendrías ninguna información a través del protocolo?

Hay dos interpretaciones posibles de "convincente", que conducen a dos preguntas diferentes:

  1. ¿Es posible decirles simplemente cuál es el secreto, pero encriptando el mensaje para que sólo ellos puedan leerlo? Parece que habría que encriptar el secreto utilizando el propio secreto, ya que toda comunicación es pública...
  2. ¿Es posible convencerlos al estilo de un Prueba de conocimiento cero ¿ lo que significa que, si suena convincente, sólo hay una probabilidad insignificante de que esté adivinando?

Ten en cuenta que en 1. pueden pensar que sólo tienes suerte de acertar (dependiendo de cómo funcione el protocolo).

Quizá sólo sea posible si el secreto no es binario:

Pregunta 2. ¿Y si el secreto puede tomar más de 2 valores, por ejemplo cuando puede ser cualquier número real?

Intento/ejemplo

Algo que se me ocurrió fue utilizar un dispositivo que emita por cada cadena de entrada otra, única, fija y elegida al azar. Entonces tú y la pareja introduciríais cada uno el secreto, y si el dispositivo emite dos veces la misma cadena, significa que has acertado.
El problema con esto es que, si no fuera correcto, lo sabrías, y como el secreto sólo puede tomar dos valores, se te filtra. Y si la salida sólo se muestra a la pareja, no es esencialmente diferente de susurrarle el secreto, es decir, la comunicación ya no es pública.

Sin embargo, esto proporciona una solución aceptable si el secreto puede ser cualquier número real (o puede tomar infinitos valores): es prácticamente imposible de adivinar, y una conjetura errónea no le da esencialmente ninguna información.

1 votos

Si sólo hay 2 valores, entonces es imposible distinguir entre alguien que conoce el secreto, y alguien que adivinó correctamente.

0 votos

Hmm sí... Por otra parte, parte de la cuestión es si es posible (públicamente) hacer una conjetura.

2voto

Mandy Puntos 26

Dado que has permitido el uso de un dispositivo ficticio, asumiré que la viabilidad no es una preocupación importante, sin embargo todo lo que sugeriré puede en teoría hacerse también en una hoja de papel.

  1. La pareja genera un par de claves públicas/privadas para cualquier esquema de cifrado asimétrico, con una seguridad de $k$ bits, digamos.
  2. Usted genera $k-1$ bits de datos aleatorios y añadir su suposición a estos datos como el $k$ -enésimo bit. Usted encripta esto $k$ cadena de bits con su clave pública y transmitirles estos datos encriptados.
  3. Descifran su conjetura pero no responden de ninguna manera a ella.

Si suponemos que el esquema de cifrado asimétrico es seguro, entonces nadie en la mesa podrá recuperar el $k$ -enésima parte de su mensaje. La única información que recibiste fue su clave pública, y te la enviaron incluso antes de que hicieras tu conjetura, así que no obtendrás ninguna información de esto.

2voto

kelalaka Puntos 204

Hay un problema en criptología, llamado Socialist millionaires . Aquí la definición del wikipedia ;

En criptografía, el problema del millonario socialista es aquel en el que dos millonarios quieren determinar si su riqueza es igual sin revelar ninguna información sobre sus riquezas al otro. Es una variante del Problema del Millonario, en el que dos millonarios desean comparar sus riquezas para determinar quién tiene más riqueza sin sin revelar ninguna información sobre sus riquezas al otro.

Para ello, puede utilizar una solución para comparar sus aportaciones sin revelar sus conocimientos a la otra parte y a los terceros.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X