Computación multipartita segura
Cálculo multipartito seguro (también conocido como cómputo seguro, cómputo multipartito (MPC) o computación que preserva la privacidad) es un subcampo de la criptografía con el objetivo de crear métodos para que las partes calculen conjuntamente una función sobre sus entradas mientras mantienen esas entradas privadas. A diferencia de las tareas criptográficas tradicionales, donde la criptografía garantiza la seguridad y la integridad de la comunicación o el almacenamiento y el adversario está fuera del sistema de los participantes (un espía del remitente y del receptor), la criptografía en este modelo protege la seguridad de los participantes. privacidad unos de otros.
La base para la computación multipartita segura comenzó a finales de la década de 1970 con el trabajo sobre el póquer mental, un trabajo criptográfico que simula tareas de juego/computación a distancia sin necesidad de un tercero de confianza. Tradicionalmente, la criptografía consistía en ocultar contenido, mientras que este nuevo tipo de cálculo y protocolo consiste en ocultar información parcial sobre los datos mientras se calcula con datos de muchas fuentes y se producen resultados correctamente. A finales de la década de 1980, Michael Ben-Or, Shafi Goldwasser y Avi Wigderson, e independientemente David Chaum, Claude Crépeau e Ivan Damgård, habían publicado artículos que mostraban "cómo calcular de forma segura cualquier función en la configuración de canales seguros" .
Historia
Los protocolos de propósito especial para tareas específicas comenzaron a finales de los años 1970. Posteriormente, la computación segura se introdujo formalmente como computación bipartita segura (2PC) en 1982 (para el llamado Problema de los Millonarios, un problema específico que es un predicado booleano), y en general (para cualquier computación factible) en 1986 por Andrew Yao. El área también se conoce como Evaluación de funciones seguras (SFE). Al caso bipartidista le siguió una generalización al multipartidismo por parte de Oded Goldreich, Silvio Micali y Avi Wigderson. El cálculo se basa en el intercambio secreto de todas las entradas y pruebas de conocimiento cero para un caso potencialmente malicioso, donde la mayoría de los actores honestos en el caso del adversario malicioso aseguran que se detecta el mal comportamiento y el cálculo continúa con la persona deshonesta eliminada o su entrada revelada. Este trabajo sugirió el esquema general muy básico que deben seguir esencialmente todos los futuros protocolos multipartitos para la informática segura. Este trabajo introdujo un enfoque, conocido como paradigma GMW, para compilar un protocolo de cálculo multipartito que sea seguro contra adversarios semihonestos en un protocolo que sea seguro contra adversarios maliciosos. Este trabajo fue seguido por el primer protocolo seguro y robusto que tolera amablemente el comportamiento defectuoso sin revelar el resultado de nadie a través de un trabajo que inventó para este propósito la "idea de compartir acciones" de uso frecuente. y un protocolo que permite a una de las partes ocultar su aportación incondicionalmente. El paradigma GMW se consideró ineficaz durante años debido a los enormes gastos generales que supone para el protocolo base. Sin embargo, está demostrado que es posible conseguir protocolos eficientes, lo que hace que esta línea de investigación sea aún más interesante desde una perspectiva práctica. Los resultados anteriores se encuentran en un modelo en el que el adversario está limitado a cálculos de tiempo polinómico y observa todas las comunicaciones, por lo que el modelo se denomina "modelo computacional". Además, se demostró que el protocolo de transferencia ajena estaba completo para estas tareas. Los resultados anteriores establecieron que, con las variaciones anteriores, es posible lograr un cálculo seguro cuando la mayoría de los usuarios son honestos.
La siguiente cuestión a resolver fue el caso de canales de comunicación seguros donde la comunicación punto a punto no está disponible para el adversario; en este caso se demostró que se pueden lograr soluciones cuando hasta 1/3 de las partes se portan mal y son maliciosas, y las soluciones no aplican herramientas criptográficas (ya que hay comunicación segura disponible). Agregar un canal de transmisión permite que el sistema tolere hasta la mitad de una minoría que se porta mal, mientras que las limitaciones de conectividad en el gráfico de comunicación se investigaron en el libro Perfectly Secure Message Transmission.
A lo largo de los años, la noción de protocolos multipartitos de propósito general se convirtió en un área fértil para investigar cuestiones básicas y generales de protocolos, como la componibilidad universal o el adversario móvil como en el intercambio proactivo de secretos.
Desde finales de la década de 2000, y ciertamente desde 2010 en adelante, el dominio de los protocolos de propósito general se ha movido para abordar mejoras de eficiencia de los protocolos con aplicaciones prácticas en mente. Se han propuesto protocolos cada vez más eficientes para MPC, y ahora MPC puede considerarse como una solución práctica a varios problemas de la vida real (especialmente aquellos que solo requieren compartir linealmente los secretos y principalmente operaciones locales sobre las acciones sin muchas interacciones entre las partes). ), como votación distribuida, licitaciones y subastas privadas, uso compartido de funciones de firma o descifrado y recuperación de información privada. La primera aplicación práctica y a gran escala de la computación multipartita fue la ejecución de una doble subasta electrónica en la subasta danesa de remolacha azucarera, que tuvo lugar en enero de 2008. Obviamente, se necesitan nociones e investigaciones teóricas, así como construcciones aplicadas (p. ej. , se defendieron y presentaron las condiciones para trasladar MPC a parte del negocio diario en).
En 2020, varias empresas que trabajan con computación multipartita segura fundaron la alianza MPC con el objetivo de "acelerar el conocimiento, la aceptación y la adopción de la tecnología MPC".
Definición y descripción general
En un MPC, un número determinado de participantes, p1, p2,..., pN, cada uno tiene datos, respectivamente d1, d2,..., dN. Los participantes quieren calcular el valor de una función pública sobre esos datos privados: F(d1, d2,..., dN ) manteniendo en secreto sus propias aportaciones.
Por ejemplo, supongamos que tenemos tres partes, Alice, Bob y Charlie, con las respectivas entradas x, y y z que indican sus salarios. Quieren saber cuál es el salario más alto de los tres, sin revelarse cuánto gana cada uno. Matemáticamente, esto se traduce en computación:
- F(x, y, z) = max(x, y, z)
Si hubiera alguna parte externa de confianza (digamos, tenían un amigo en común, Tony, que sabían que podía guardar un secreto), cada uno podría decirle su salario a Tony, él podría calcular el máximo y decirle ese número a todos. a ellos. El objetivo de MPC es diseñar un protocolo en el que, al intercambiar mensajes sólo entre ellos, Alice, Bob y Charlie aún puedan aprender F(x, y, z) sin revelando quién hace qué y sin tener que depender de Tony. No deberían aprender más al participar en su protocolo de lo que aprenderían interactuando con un Tony incorruptible y perfectamente confiable.
En particular, todo lo que las partes pueden aprender es lo que pueden aprender de los resultados y de sus propios aportes. Entonces, en el ejemplo anterior, si la salida es z, entonces Charlie aprende que su z es el valor máximo, mientras que Alice y Bob aprenden (if x , y y z son distintos), que su entrada no es igual al máximo y que el máximo mantenido es igual a z. El escenario básico se puede generalizar fácilmente donde las partes tienen varias entradas y salidas, y la función genera diferentes valores para diferentes partes.
Hablando informalmente, las propiedades más básicas que un protocolo de cálculo multipartito pretende garantizar son:
- Privacidad de entrada: No se puede inferir información sobre los datos privados de las partes de los mensajes enviados durante la ejecución del protocolo. La única información que se puede inferir sobre los datos privados es lo que se puede inferir de ver la salida de la función por sí sola.
- Corrección: Cualquier subconjunto adecuado de las partes en conflicto que estén dispuestas a compartir información o a desviarse de las instrucciones durante la ejecución del protocolo no debe ser capaz de obligar a las partes honestas a producir un resultado incorrecto. Este objetivo de corrección viene en dos sabores: o bien las partes honestas están garantizadas para calcular la salida correcta (un protocolo "robustible"), o abortan si encuentran un error (un protocolo MPC "con abortar").
Hay una amplia gama de aplicaciones prácticas, que varían desde tareas simples como el lanzamiento de monedas a subastas más complejas como subastas electrónicas (por ejemplo, calcular el precio de compensación del mercado), votación electrónica o extracción de datos de reserva de privacidad. Un ejemplo clásico es el problema de los millonarios: dos millonarios quieren saber quién es más rico, de tal manera que ninguno de ellos aprende el valor neto del otro. Una solución a esta situación es esencialmente evaluar con seguridad la función de comparación.
Definiciones de seguridad
Un protocolo de cálculo multipartito debe ser seguro para ser eficaz. En la criptografía moderna, la seguridad de un protocolo está relacionada con una prueba de seguridad. La prueba de seguridad es una prueba matemática en la que la seguridad de un protocolo se reduce a la seguridad de sus primitivas subyacentes. Sin embargo, no siempre es posible formalizar la verificación de seguridad del protocolo criptográfico basándose en el conocimiento de las partes y la corrección del protocolo. Para los protocolos MPC, el entorno en el que opera el protocolo está asociado con el paradigma del mundo real/mundo ideal. No se puede decir que las partes no aprenden nada, ya que necesitan aprender el resultado de la operación, y el resultado depende de los insumos. Además, la exactitud de los resultados no está garantizada, ya que la exactitud de los resultados depende de los aportes de las partes, y se debe suponer que los aportes son correctos.
El paradigma del mundo real/mundo ideal establece dos mundos: (i) En el modelo del mundo ideal, existe una parte confiable e incorruptible a quien cada participante del protocolo envía su información. Esta parte de confianza calcula la función por sí sola y envía el resultado apropiado a cada parte. (ii) Por el contrario, en el modelo del mundo real, no existe una parte confiable y lo único que las partes pueden hacer es intercambiar mensajes entre sí. Se dice que un protocolo es seguro si no se puede aprender más sobre las aportaciones privadas de cada parte en el mundo real de lo que se podría aprender en el mundo ideal. En el mundo ideal, no se intercambian mensajes entre las partes, por lo que los mensajes intercambiados en el mundo real no pueden revelar ninguna información secreta.
El paradigma del mundo real/mundo ideal proporciona una abstracción simple de las complejidades de MPC para permitir la construcción de una aplicación bajo el pretexto de que el protocolo MPC en su núcleo es en realidad una ejecución ideal. Si la aplicación es segura en el caso ideal, también lo será cuando se ejecute un protocolo real.
Los requisitos de seguridad de un protocolo MPC son estrictos. Sin embargo, en 1987 se demostró que cualquier función se puede calcular de forma segura, con seguridad para adversarios maliciosos y los demás trabajos iniciales mencionados anteriormente. A pesar de estas publicaciones, MPC no fue diseñado para ser lo suficientemente eficiente como para usarse en la práctica en ese momento. El MPC incondicionalmente o teóricamente seguro de la información está estrechamente relacionado y se basa en el problema del intercambio de secretos y, más específicamente, el intercambio de secretos verificable (VSS), que muchos protocolos MPC seguros utilizan contra adversarios activos.
A diferencia de las aplicaciones criptográficas tradicionales, como la encriptación o la firma, hay que asumir que el adversario en un protocolo MPC es uno de los jugadores involucrados en el sistema (o controlando partidos internos). Esa parte o partes corruptas pueden chocar para violar la seguridad del protocolo. Vamos. ser el número de partes en el protocolo y el número de partidos que pueden ser adversarios. Los protocolos y soluciones para el caso (es decir, cuando se asume una mayoría honesta) son diferentes de aquellos donde no se hace tal suposición. Este último caso incluye el importante caso de computación bipartidista donde uno de los participantes puede ser corrupto, y el caso general donde un número ilimitado de participantes se corrompe y choca para atacar a los participantes honestos.
Los adversarios que enfrentan los diferentes protocolos se pueden clasificar según su disposición a desviarse del protocolo. Básicamente, existen dos tipos de adversarios, cada uno de los cuales da lugar a diferentes formas de seguridad (y cada uno encaja en diferentes escenarios del mundo real):
- Semi-Honest (Passive) Security: En este caso, se asume que las partes corruptas simplemente cooperan para recopilar información del protocolo, pero no se apartan de la especificación del protocolo. Este es un modelo ingenuo de adversarios, dando una seguridad débil en situaciones reales. Sin embargo, los protocolos que logran este nivel de seguridad impiden la fuga involuntaria de información entre las partes (otras colaboradoras) y son útiles si esta es la única preocupación. Además, los protocolos del modelo semihonest son bastante eficientes, y a menudo son un primer paso importante para lograr niveles más altos de seguridad.
- Malicious (Active) Security: En este caso, el adversario puede desviarse arbitrariamente de la ejecución del protocolo en su intento de engañar. Los protocolos que logran la seguridad en este modelo ofrecen una garantía de seguridad muy alta. En el caso de la mayoría de las partes que se comportan mal: Lo único que un adversario puede hacer en el caso de la mayoría deshonesta es hacer que los partidos honestos "aborten" habiendo detectado engaños. Si las partes honestas obtienen la salida, entonces se garantiza que es correcto. Su privacidad siempre se conserva.
La seguridad contra adversarios activos normalmente conduce a una reducción de la eficiencia. La seguridad encubierta es una alternativa que pretende permitir una mayor eficiencia a cambio de debilitar la definición de seguridad; es aplicable a situaciones en las que los adversarios activos están dispuestos a hacer trampa, pero sólo si no son atrapados. Por ejemplo, su reputación podría verse dañada, impidiendo la colaboración futura con otras partes honestas. Por lo tanto, los protocolos que son encubiertamente seguros proporcionan mecanismos para garantizar que, si algunas de las partes no siguen las instrucciones, se notará con una alta probabilidad, digamos 75% o 90%. En cierto modo, los adversarios encubiertos son aquellos activos obligados a actuar pasivamente debido a preocupaciones externas no criptográficas (por ejemplo, comerciales). Este mecanismo tiende un puente entre ambos modelos con la esperanza de encontrar protocolos que sean lo suficientemente eficientes y seguros en la práctica.
Como muchos protocolos criptográficos, la seguridad de un protocolo MPC puede depender de diferentes suposiciones:
- Puede ser computacional (es decir, basado en algún problema matemático, como el factoring) o incondicional, a saber, depender de la falta física de mensajes en canales (normalmente con cierta probabilidad de error que se puede hacer arbitrariamente pequeño).
- El modelo podría suponer que los participantes utilizan una red sincronizada, donde un mensaje enviado a un "tick" siempre llega al siguiente "tick", o que existe un canal de transmisión seguro y fiable, o que existe un canal de comunicación seguro entre cada par de participantes donde un adversario no puede leer, modificar o generar mensajes en el canal, etc.
El conjunto de partes honestas que pueden ejecutar una tarea computacional está relacionado con el concepto de estructura de acceso. Las estructuras adversarias pueden ser estáticas, donde el adversario elige a sus víctimas antes del inicio del cómputo multipartito, o dinámicas, donde elige a sus víctimas durante el curso de la ejecución del cómputo multipartito, lo que dificulta la defensa. Una estructura de adversario puede definirse como una estructura de umbral o como una estructura más compleja. En una estructura de umbral, el adversario puede corromper o leer la memoria de varios participantes hasta cierto umbral. Mientras tanto, en una estructura compleja puede afectar a ciertos subconjuntos predefinidos de participantes, modelando diferentes posibles colusiones.
Protocolos
Existen diferencias importantes entre los protocolos propuestos para la computación bipartita (2PC) y la computación multipartita (MPC). Además, muchas veces para protocolos de propósito especial de importancia se debe diseñar un protocolo especializado que se desvíe de los genéricos (votación, subastas, pagos, etc.)
Cómputo bipartito
La configuración de dos partes es particularmente interesante, no sólo desde la perspectiva de las aplicaciones sino también porque se pueden aplicar técnicas especiales en la configuración de dos partes que no se aplican en el caso de múltiples partes. De hecho, la computación multipartita segura (de hecho, el caso restringido de evaluación de función segura, donde solo se evalúa una función) se presentó por primera vez en el entorno bipartito. A menudo se cita el trabajo original como perteneciente a uno de los dos artículos de Yao; aunque los documentos en realidad no contienen lo que ahora se conoce como el protocolo de circuito confuso de Yao.
El protocolo básico de Yao es seguro contra adversarios semi-honestos y es extremadamente eficiente en términos de número de rondas, que es constante e independiente de la función objetivo que se evalúa. La función se ve como un circuito booleano, con entradas en binario de longitud fija. Un circuito booleano es un conjunto de puertas conectadas con tres tipos diferentes de cables: cables de entrada del circuito, cables de salida del circuito y cables intermedios. Cada puerta recibe dos cables de entrada y tiene un único cable de salida que puede desplegarse (es decir, pasar a varias puertas en el siguiente nivel). La evaluación simple del circuito se realiza evaluando cada puerta por turno; asumiendo que las puertas han sido ordenadas topológicamente. La puerta se representa como una tabla de verdad tal que para cada posible par de bits (los que provienen de la puerta de los cables de entrada) la tabla asigna un bit de salida único; que es el valor del cable de salida de la puerta. Los resultados de la evaluación son los bits obtenidos en los cables de salida del circuito.
Yao explicó cómo distorsionar un circuito (ocultar su estructura) para que dos partes, el remitente y el receptor, puedan conocer la salida del circuito y nada más. En un nivel alto, el emisor prepara el circuito confuso y lo envía al receptor, quien, sin darse cuenta, evalúa el circuito y aprende las codificaciones correspondientes a su salida y a la del emisor. Luego simplemente devuelve las codificaciones del remitente, lo que le permite calcular su parte de la salida. El remitente envía el mapeo de las codificaciones de salida del receptor a bits al receptor, lo que le permite obtener su salida.
Con más detalle, el circuito confuso se calcula de la siguiente manera. El ingrediente principal es un esquema de cifrado simétrico de doble clave. Dada una puerta del circuito, cada valor posible de sus cables de entrada (ya sea 0 o 1) se codifica con un número aleatorio (etiqueta). Los valores resultantes de la evaluación de la puerta en cada uno de los cuatro posibles pares de bits de entrada también se reemplazan con etiquetas aleatorias. La tabla de verdad confusa de la puerta consiste en cifrados de cada etiqueta de salida utilizando sus etiquetas de entrada como claves. La posición de estos cuatro cifrados en la tabla de verdad es aleatoria, por lo que no se filtra información sobre la puerta.
Para evaluar correctamente cada puerta confusa, el esquema de cifrado tiene las dos propiedades siguientes. En primer lugar, los rangos de la función de cifrado bajo dos claves distintas son disjuntos (con una probabilidad abrumadora). La segunda propiedad dice que se puede verificar de manera eficiente si un texto cifrado determinado se ha cifrado con una clave determinada. Con estas dos propiedades, el receptor, después de obtener las etiquetas para todos los cables de entrada del circuito, puede evaluar cada puerta averiguando primero cuál de los cuatro textos cifrados ha sido cifrado con sus claves de etiquetas y luego descifrando para obtener la etiqueta del cable de salida. . Esto se hace sin darse cuenta, ya que todo lo que el receptor aprende durante la evaluación son codificaciones de bits.
Los bits de entrada del remitente (es decir, los creadores de circuitos) pueden enviarse simplemente como codificaciones al evaluador; mientras que las codificaciones del receptor (es decir, los evaluadores de circuitos) correspondientes a sus bits de entrada se obtienen mediante un protocolo de transferencia ajena (OT) 1 de 2. Un protocolo OT 1 de 2 permite al remitente que posee dos valores C1 y C2 enviar el solicitado por el receptor (b un valor en {1,2}) de tal manera que el remitente no sabe qué valor se ha transferido y el receptor sólo aprende el valor consultado.
Si uno está considerando adversarios maliciosos, es necesario proporcionar mecanismos adicionales para garantizar el comportamiento correcto de ambas partes. Por construcción, es fácil mostrar seguridad al remitente si el protocolo OT ya es seguro contra un adversario malicioso, ya que todo lo que el receptor puede hacer es evaluar un circuito confuso que no alcanzaría los cables de salida del circuito si se desviara de las instrucciones. . La situación es muy diferente por parte del remitente. Por ejemplo, puede enviar un circuito confuso incorrecto que calcula una función que revela la entrada del receptor. Esto significaría que la privacidad ya no se mantiene, pero como el circuito está distorsionado, el receptor no podría detectarlo. Sin embargo, es posible aplicar de manera eficiente pruebas de conocimiento cero para hacer que este protocolo sea seguro contra adversarios maliciosos con una pequeña sobrecarga en comparación con el protocolo semihonesto.
Protocolos multipartitos
La mayoría de los protocolos MPC, a diferencia de los protocolos 2PC y especialmente bajo la configuración incondicional de canales privados, utilizan el intercambio secreto. En los métodos basados en el intercambio secreto, las partes no desempeñan roles especiales (como en Yao, de creador y evaluador). En cambio, los datos asociados con cada cable se comparten entre las partes y luego se utiliza un protocolo para evaluar cada puerta. La función ahora está definida como un "circuito" sobre un campo finito, a diferencia de los circuitos binarios utilizados para Yao. Un circuito de este tipo se denomina circuito aritmético en la literatura y consta de "compuertas" de suma y multiplicación; donde los valores operados se definen sobre un campo finito.
El intercambio de secretos permite distribuir un secreto entre varias partes mediante la distribución de acciones a cada parte. Normalmente se utilizan dos tipos de esquemas para compartir secretos; Compartir secretos de Shamir y compartir secretos aditivos. En ambos casos las participaciones son elementos aleatorios de un campo finito que se suman al secreto del campo; intuitivamente, la seguridad se logra porque cualquier conjunto de acciones que no califican parece estar distribuido aleatoriamente.
Los esquemas compartidos secretos pueden tolerar a un adversario controlando hasta t partes fuera de n Partes totales, donde t varies basado en el esquema, el adversario puede ser pasivo o activo, y diferentes supuestos se hacen en el poder del adversario. El esquema de compartir secretos de Shamir es seguro contra un adversario pasivo cuando y un adversario activo cuando Al alcanzar la seguridad teórica de la información, lo que significa que incluso si el adversario tiene un poder computacional ilimitado, no pueden aprender ninguna información sobre el secreto subyacente de una parte. El protocolo BGW, que define cómo computar la adición y la multiplicación de acciones secretas, se utiliza a menudo para calcular las funciones con las acciones secretas de Shamir. Los esquemas de compartir secretos aditivos pueden tolerar al adversario controlando todo menos un partido, es decir, , manteniendo la seguridad contra un adversario pasivo y activo con poder computacional sin límites. Algunos protocolos requieren una fase de configuración, que sólo puede ser segura contra un adversario ligado computacionalmente.
Varios sistemas han implementado diversas formas de MPC con esquemas de intercambio de secretos. El más popular es SPDZ, que implementa MPC con recursos compartidos secretos aditivos y es seguro contra adversarios activos.
Otros protocolos
En 2014, se adoptó un "modelo de equidad en el cálculo seguro en el que una parte adversaria que no recibe la producción se ve obligada a pagar una multa monetaria mutuamente predefinida" Se ha descrito para la red Bitcoin o para la lotería justa y se ha implementado con éxito en Ethereum.
Sistemas MPC prácticos
En los últimos años se han realizado muchos avances en los sistemas 2PC y MPC.
Protocolos basados en Yao
Uno de los principales problemas al trabajar con protocolos basados en Yao es que la función que se va a evaluar de forma segura (que podría ser un programa arbitrario) debe representarse como un circuito, que generalmente consta de puertas XOR y AND. Dado que la mayoría de los programas del mundo real contienen bucles y estructuras de datos complejas, esta es una tarea nada trivial. El sistema Fairplay fue la primera herramienta diseñada para abordar este problema. El juego limpio comprende dos componentes principales. El primero de ellos es un compilador que permite a los usuarios escribir programas en un lenguaje simple de alto nivel y generar estos programas en una representación de circuito booleano. Luego, el segundo componente puede distorsionar el circuito y ejecutar un protocolo para evaluar de forma segura el circuito distorsionado. Además del cálculo bipartito basado en el protocolo de Yao, Fairplay también puede realizar protocolos multipartitos. Esto se hace utilizando el protocolo BMR, que extiende el protocolo pasivamente seguro de Yao al caso activo.
En los años posteriores a la introducción de Fairplay, se han creado muchas mejoras en el protocolo básico de Yao, tanto en forma de mejoras de eficiencia como de técnicas de seguridad activa. Estas incluyen técnicas como el método XOR gratuito, que permite una evaluación mucho más simple de las puertas XOR, y la reducción de filas confusas, que reduce el tamaño de las tablas confusas con dos entradas en un 25%.
El enfoque que hasta ahora parece ser el más fructífero para obtener seguridad activa proviene de una combinación de la técnica de confusión y la estrategia de "cortar y elegir". paradigma. Esta combinación parece hacer que las construcciones sean más eficientes. Para evitar los problemas mencionados anteriormente con respecto al comportamiento deshonesto, el constructor envía muchas alteraciones del mismo circuito al evaluador. Luego, aproximadamente la mitad de ellos (según el protocolo específico) se abren para comprobar la coherencia y, de ser así, la gran mayoría de los que no están abiertos son correctos con una alta probabilidad. El resultado es el voto mayoritario de todas las evaluaciones. Aquí se necesita la producción mayoritaria. Si hay desacuerdo en las salidas, el receptor sabe que el emisor está haciendo trampa, pero no puede quejarse porque, de lo contrario, se filtraría información sobre sus entradas.
Este enfoque de seguridad activa fue iniciado por Lindell y Pinkas. Esta técnica fue implementada por Pinkas et al. en 2009, Esto proporcionó la primera evaluación activa de dos partes del circuito de la Norma de Encriptación Avanzada (AES), considerado como un complejo (consistente de alrededor de 30.000 Y y XOR puertas), función no-trivial (también con algunas aplicaciones potenciales), tomando alrededor de 20 minutos para computar y requerir 160 circuitos para obtener una La probabilidad de engañar.
A medida que se evalúan muchos circuitos, las partes (incluido el receptor) deben comprometerse con sus insumos para asegurar que en todas las iteraciones se utilicen los mismos valores. Los experimentos de Pinkas et al. reportados muestran que el cuello de botella del protocolo está en los controles de consistencia. They had to send over the net about 6,553,600 commitments to various values to evaluate the AES circuit. En los resultados recientes se mejoró aún más la eficiencia de las implementaciones basadas en Yao, que requerían sólo 40 circuitos y un número mucho menor de compromisos para obtener La probabilidad de engañar. Las mejoras provienen de nuevas metodologías para la realización de corte y elección en los circuitos transmitidos.
Más recientemente, se ha centrado la atención en implementaciones altamente paralelas basadas en circuitos confusos, diseñados para ejecutarse en CPU con muchos núcleos. Kreuter, et al. Describe una implementación que se ejecuta en 512 núcleos de una potente computadora en clúster. Utilizando estos recursos pudieron evaluar la función de distancia de edición de 4095 bits, cuyo circuito comprende casi 6 mil millones de puertas. Para lograr esto, desarrollaron un compilador de circuitos personalizado y mejor optimizado que Fairplay y varias optimizaciones nuevas, como la canalización, mediante la cual la transmisión del circuito confuso a través de la red comienza mientras el resto del circuito aún se está generando. El tiempo para calcular AES se redujo a 1,4 segundos por bloque en el caso activo, usando una máquina de clúster de 512 nodos, y a 115 segundos usando un nodo. Shelat y Shen mejoran esto, utilizando hardware básico, a 0,52 segundos por bloque. El mismo artículo informa sobre un rendimiento de 21 bloques por segundo, pero con una latencia de 48 segundos por bloque.
Mientras tanto, otro grupo de investigadores ha investigado el uso de GPU de consumo para lograr niveles similares de paralelismo. Utilizan extensiones de transferencia ajenas y algunas otras técnicas novedosas para diseñar su protocolo específico de GPU. Este enfoque parece lograr una eficiencia comparable a la implementación de la computación en clúster, utilizando una cantidad similar de núcleos. Sin embargo, los autores sólo informan sobre una implementación del circuito AES, que tiene alrededor de 50.000 puertas. Por otro lado, el hardware necesario aquí es mucho más accesible, ya que es posible que ya se encuentren dispositivos similares en los ordenadores de sobremesa o en las consolas de juegos de muchas personas. Los autores obtienen un tiempo de 2,7 segundos por bloque AES en un escritorio estándar, con una GPU estándar. Si permiten que la seguridad disminuya a algo parecido a la seguridad encubierta, obtienen un tiempo de ejecución de 0,30 segundos por bloque AES. En el caso de la seguridad pasiva, hay informes de procesamiento de circuitos con 250 millones de puertas, y a una velocidad de 75 millones de puertas por segundo.
Implementaciones de análisis de datos informáticos multipartitos seguros
Una de las principales aplicaciones de la computación segura entre múltiples partes es permitir el análisis de datos que están en poder de varias partes, o el análisis ciego de datos por parte de terceros sin permitir que el custodio de datos comprenda el tipo de análisis de datos que se realiza.
Sistemas de demostración y producción
Análisis | Custodios de datos | Proveedor de Tecnología | Año presentado | Notas | ¿Todavía está en uso? |
---|---|---|---|---|---|
Boston Women's Workforce Council Report | Empresarios de Boston-area | Boston University | 2016 | ||
Allegheny County Datasets | Multiple datasets from different county offices | Galois y el Centro de Política Bipartidista | 2018 |
Bibliotecas de software
Nombre | Desarrollado | Año presentado | Notas | ¿Todavía se mantiene? |
---|---|---|---|---|
SEPIA - Seguridad mediante la agregación de información privada | ||||
SCAPI - Secure Computation API | ||||
PALISADE - Biblioteca de Encriptación Homomorfa | ||||
MP-SPDZ - Un marco versátil para la computación multipartidista | Datos de CSIRO61 | 2018 | 40 variantes de protocolo, enfoque en la funcionalidad de aprendizaje automático | Al 2023 |
Implementaciones de hardware
Nombre | Desarrollado | Año presentado | Notas | ¿Todavía se mantiene? |
---|---|---|---|---|
Trident MPC | I4p informatics ltd. | 2019 | el primer módulo de seguridad de hardware físico certificado EAL4+ en el mercado diseñado para aplicar la computación multipartidaria segura (SMPC) para la gestión de claves críptográficas. | Al 2024 |