Problema en matemáticas
El problema de los millonarios de Yao es un problema de computación multipartita seguro introducido en 1982 por el científico informático y teórico computacional Andrew Yao . El problema trata de dos millonarios, Alice y Bob, que están interesados en saber cuál de ellos es más rico sin revelar su riqueza real.
Este problema es análogo a un problema más general donde hay dos números y y el objetivo es determinar si la desigualdad es verdadera o falsa sin revelar los valores reales de y .
El problema de los millonarios es un problema importante en criptografía , cuya solución se utiliza en el comercio electrónico y la minería de datos . Las aplicaciones comerciales a veces tienen que comparar números que son confidenciales y cuya seguridad es importante.
Se han introducido muchas soluciones para el problema, incluidas soluciones físicas basadas en tarjetas. [1] La primera solución, presentada por Yao, es exponencial en el tiempo y el espacio. [2]
Protocolos y pruebas
El protocolo de Hsiao-Ying Lin y Wen-Guey Tzeng
Sea una cadena binaria de longitud n .
Denote la codificación 0 de s como y la codificación 1 de s como
Entonces, el protocolo [3] se basa en la siguiente afirmación:
- Supongamos que a y b son cadenas binarias de longitud n bits.
- Entonces, si los conjuntos y tienen un elemento común (donde a y b son las codificaciones binarias de los números enteros correspondientes).
El protocolo aprovecha esta idea para crear una solución práctica al problema de los millonarios de Yao realizando una intersección de conjuntos privados entre y .
El protocolo de Ioannidis y Ananth
El protocolo [4] utiliza una variante de transferencia ignorante , llamada transferencia ignorante 1-2. En esa transferencia, se transfiere un bit de la siguiente manera: un emisor tiene dos bits y . El receptor elige , y el emisor envía con el protocolo de transferencia ignorante de tal manera que
- El receptor no recibe ninguna información sobre ,
- El valor de no está expuesto al remitente.
Para describir el protocolo, el número de Alice se indica como , el número de Bob como , y se supone que la longitud de su representación binaria es menor que para algunos . El protocolo sigue los siguientes pasos.
- Alice crea una matriz de tamaño de números de bits, donde es la longitud de la clave en el protocolo de transferencia inconsciente. Además, elige dos números aleatorios y , donde y .
- será el bit -ésimo del número que aparece en la celda (donde indica el bit menos significativo ). Además, se denota como el bit -ésimo del número de Alice . Para cada , Alice realiza las siguientes acciones.
- Por cada bit que ella establece y bits aleatorios.
- Si , sea , en caso contrario sea y para cada conjunto en un bit aleatorio.
- Para establecer y para .
- Para cada , será un número de bits aleatorio, y será otro número de bits donde todos los bits excepto los dos últimos son aleatorios, y los dos últimos se calculan como y , donde es la operación XOR bit a bit .
- Para el conjunto . Donde indica la rotación bit a bit de hacia la izquierda en bits.
- Para cada , Bob transfiere con el protocolo de transferencia inconsciente, donde , y es el -ésimo bit de .
- Alice le envía a Bob .
- Bob calcula el XOR bit a bit de todos los números que obtuvo en el paso 3 y del paso 4. Bob escanea el resultado de izquierda a derecha hasta que encuentra una secuencia grande de bits cero. Sea el bit a la derecha de esa secuencia ( no es cero). Si el bit a la derecha de es igual a 1, entonces , de lo contrario .
Prueba
Exactitud
Bob calcula el resultado final a partir de , y el resultado depende de . K , y por lo tanto c también, se pueden dividir en 3 partes. La parte izquierda no afecta el resultado. La parte derecha tiene toda la información importante, y en el medio hay una secuencia de ceros que separa esas dos partes. La longitud de cada partición de c está vinculada al esquema de seguridad.
Para cada i , solo uno de tiene una parte derecha distinta de cero, y es si , y en caso contrario. Además, si , y tiene una parte derecha distinta de cero, entonces tiene también una parte derecha distinta de cero, y los dos bits más a la izquierda de esta parte derecha serán los mismos que el de . Como resultado, la parte derecha de c es una función de las entradas que Bob transfirió corresponden a los bits únicos en a y b , y los únicos bits en la parte derecha en c que no son aleatorios son los dos más a la izquierda, exactamente los bits que determinan el resultado de , donde i es el bit de orden más alto en el que a y b difieren. Al final, si , entonces esos dos bits más a la izquierda serán 11, y Bob responderá que . Si los bits son 10, entonces , y responderá . Si , entonces no habrá parte derecha en c , y en este caso los dos bits más a la izquierda en c serán 11, y indicarán el resultado.
Seguridad
La información que Bob envía a Alice es segura porque se envía a través de una transferencia inconsciente, lo cual es seguro.
Bob recibe 3 números de Alice:
- . Cada Bob recibe un número de este tipo, y es aleatorio, por lo que no se transforma ninguna información segura.
- N . Se trata de una operación XOR de números aleatorios y, por lo tanto, no revela información. La información relevante se revela solo después de calcular c .
- c . Lo mismo ocurre con c . La parte izquierda de c es aleatoria, y la parte derecha también lo es, excepto los dos bits más a la izquierda. Para deducir cualquier información de esos bits es necesario adivinar otros valores, y la probabilidad de adivinarlos correctamente es muy baja.
Complejidad
La complejidad del protocolo es . Alice construye un número de longitud d para cada bit de a , y Bob calcula XOR d veces de números de longitud d . La complejidad de esas operaciones es . La parte de comunicación también requiere . Por lo tanto, la complejidad del protocolo es
Véase también
Referencias
- ^ Miyahara, Daiki; Hayashi, Yu-ichi; Mizuki, Takaaki; Sone, Hideaki (2020). "Implementaciones prácticas basadas en tarjetas del protocolo del millonario de Yao". Ciencias de la Computación Teórica . 803 : 207–221. doi : 10.1016/j.tcs.2019.11.005 .
- ^ Yao, Andrew C. (noviembre de 1982). "Protocolos para cálculos seguros". 23.° Simposio anual sobre fundamentos de la informática (sfcs 1982) . Vol. 1. págs. 160–164. doi :10.1109/SFCS.1982.88.
- ^ Lin, Hsiao-Ying; Tzeng, Wen-Guey (7 de junio de 2005). "Una solución eficiente al problema de los millonarios basada en el cifrado homomórfico". Criptografía aplicada y seguridad de redes . Apuntes de clase en informática. Vol. 3531. págs. 456–466. CiteSeerX 10.1.1.75.4917 . doi :10.1007/11496137_31. ISBN . 978-3-540-26223-7.
- ^ Ioannidis, I.; Grama, A. (2003). "Un protocolo eficiente para el problema de los millonarios de Yao". 36.ª Conferencia Internacional Anual de Hawái sobre Ciencias de Sistemas, 2003. Actas de la . IEEE. pp. 6 págs. CiteSeerX 10.1.1.110.8816 . doi :10.1109/hicss.2003.1174464. ISBN 978-0769518749.S2CID6907526 .