¿Cuál sería un protocolo para hacer que dos personas presenten dos números únicos en un intervalo sin revelar sus números?

Supongamos que nuestro intervalo, min..max , es de 1..10.

Deje que ambos A y B elijan un número aleatorio de un rango adecuadamente grande, por ejemplo, 10 * max a 90 * max . Denotemos esto [matemáticas] Z {a} [/ matemáticas] y [matemáticas] Z {b} [/ matemáticas], respectivamente. Deje que A y B intercambien [matemática] Z {a} [/ matemática] y [matemática] Z {b} [/ matemática], sin revelarlos a Z.

Ahora, A y B cada uno nomina su elección de número del 1 al 10. Llamémoslos [math] a [/ math] y [math] b [/ math] por simplicidad.

Ahora, A calcula [matemáticas] Z {a} + Z {b} + a [/ matemáticas]. B calcula [matemáticas] Z {a} + Z {b} + b [/ matemáticas]. Sin revelar ninguno de los términos individuales , A y B presentan sus sumas de respeto a Z.

Z, sin revelar ninguna de las sumas , simplemente tiene que verificar si ambas sumas son iguales.

Si lo son, entonces todo el proceso comienza de nuevo.

Si las sumas son diferentes, entonces A y B han elegido números diferentes y ahora pueden revelar sus elecciones.