La computación segura de dos partes (2PC) es un subproblema de la computación segura de múltiples partes (MPC) que ha recibido especial atención por parte de los investigadores debido a su estrecha relación con muchas tareas criptográficas . El objetivo de 2PC es crear un protocolo genérico que permita a dos partes calcular conjuntamente una función arbitraria en sus entradas sin compartir el valor de sus entradas con la parte contraria. Uno de los ejemplos más conocidos de 2PC es el problema del millonario de Yao , en el que dos partes, Alice y Bob, son millonarios que desean determinar quién es más rico sin revelar su riqueza. Formalmente, Alice tiene riqueza , Bob tiene riqueza y ellos desean calcular sin revelar los valores o.
El protocolo de circuito distorsionado de Yao para el cálculo de dos partes [1] solo proporcionaba seguridad contra adversarios pasivos. Goldreich, Micali y Wigderson [2] introdujeron una de las primeras soluciones generales para lograr la seguridad contra un adversario activo mediante la aplicación de prueba de conocimiento cero [3] para imponer un comportamiento semi-honesto. Se sabía que este enfoque no era práctico durante años debido a los gastos generales de alta complejidad. Sin embargo, se han realizado mejoras significativas hacia la aplicación de este método en 2PC y Abascal, Faghihi Sereshgi, Hazay, Ishai y Venkitasubramaniam dieron el primer protocolo eficiente basado en este enfoque. [4]Lindell y Pinkas, [5] Ishai, Prabhakaran y Sahai [6] y Nielsen y Orlandi propusieron otro tipo de protocolos 2PC que son seguros contra adversarios activos . [7] Jarecki y Shmatikov propusieron otra solución para este problema, que funciona explícitamente con entradas comprometidas. [8]
La seguridad de un protocolo de cálculo de dos partes generalmente se define mediante una comparación con un escenario idealizado que es seguro por definición. El escenario idealizado involucra a una parte confiable que recopila la información de las dos partes a través de canales seguros y devuelve el resultado si ninguna de las partes elige abortar. El protocolo de cálculo criptográfico de dos partes es seguro, si no se comporta peor que este protocolo ideal, pero sin los supuestos de confianza adicionales . Esto generalmente se modela usando un simulador. La tarea del simulador es actuar como un envoltorio alrededor del protocolo idealizado para que parezca el protocolo criptográfico. La simulación tiene éxito con respecto a una teoría de la información , respectivamente.adversario limitado computacionalmente si la salida del simulador es estadísticamente cercana , respectivamente computacionalmente indistinguible, de la salida del protocolo criptográfico. Un protocolo de cálculo de dos partes es seguro, si para todos los adversarios existe un simulador exitoso.