Protocolo de computación confidencial

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 27 de noviembre de 2017; las comprobaciones requieren 7 ediciones .

En criptografía , un protocolo de cómputo confidencial (también cómputo seguro, seguro o secreto de múltiples partes, ing. cómputo  seguro de múltiples partes ) es un protocolo criptográfico que permite a varios participantes realizar un cálculo que depende de los datos de entrada secretos de cada uno de ellos. , de tal manera que ningún participante pudo obtener información sobre la entrada secreta de otra persona. Por primera vez, Andrew Yao planteó el problema de la computación confidencial en 1982 en el artículo [1] .  Dos millonarios, Alice y Bob, quieren saber cuál de ellos es más rico, pero no quieren revelar la cantidad exacta de su riqueza. Yao proponía en su artículo una forma original de solucionar este problema, que luego se conoció como el problema de los millonarios . Mucho más tarde, en 2004, Yehuda Lindell y Benny Pinkas proporcionaron una prueba matemáticamente rigurosa de la exactitud del protocolo de Yao en [2] . El problema de la computación confidencial está estrechamente relacionado con el problema de compartir secretos .

Enunciado del problema formalizado

N participantes p 1 , p 2 , …, p N participan en cálculo confidencial . Cada participante tiene datos de entrada secretos d 1 , d 2 , …, d N respectivamente. Los participantes quieren encontrar el valor F(d 1 , d 2 , …, d N ) , donde F es una función computable de N argumentos  conocidos por todos los participantes . Se supone que entre los participantes habrá infractores semi-honestos , es decir, aquellos que siguen fielmente el protocolo, pero intentan obtener información adicional de cualquier dato intermedio.

Requisitos de seguridad

Los requisitos de seguridad para los protocolos informáticos confidenciales suelen tener diferentes requisitos de seguridad según la situación. Estos son los principales requisitos.

Un ejemplo de solución al problema de los millonarios

Que los millonarios Alice y Bob quieran saber de quién es la mayor fortuna sin revelar la cantidad exacta de sus fortunas. Para mayor precisión, supongamos que Alicia tiene i millón y Bob tiene j , donde 1<i y j<10 . En primer lugar, Alice y Bob necesitarán un criptosistema de clave pública sólido , como RSA [3] . Sea E a  una función de cifrado arbitraria para la clave a , y D a  la función de descifrado de clave privada para la clave pública a . Sea a  la clave pública de Alice. Entonces el protocolo queda así:

  1. Bob elige un entero aleatorio x de N bits y calcula confidencialmente k=E a (x) ;
  2. Bob envía un número k-j+1 a Alice ;
  3. Alicia considera confidencialmente los valores y u =D a (k-j+u) para u=1,2,…,10 ;
  4. Alice elige un número primo aleatorio p de N/2 bits para que los números z u =y u mod(p) difieran en al menos 2 módulos p para todo u y envía el número p a Bob;
  5. Alice envía los números z 1 , z 2 , …, z i seguidos de los números z i+1 +1, …, z 10 +1 ; los números se toman módulo p;
  6. Bob, que sabe cuánto dinero tiene ( j ), compara el número j con el número x mod p elegido en el primer paso, y si son iguales, entonces Bob concluye que i ⩾ j , y i < j en caso contrario;
  7. Bob informa el resultado a Alice.

Se puede ver que el protocolo le permite determinar sin ambigüedades cuyo estado es mayor y, al mismo tiempo, los participantes no pueden conocer los estados de los demás.

Implementaciones

Hay dos enfoques diferentes para implementar el protocolo. El primer enfoque generalmente se basa en compartir secretos y trabaja en la representación de la función calculada en forma de un circuito aritmético ( ing.  aritmético circuito ), como, por ejemplo, en el BGW (Ben-Or, Goldwasser y Wigderson) [ 4] y CCD (Chaum, Crepeau y Damgard [5] . Este enfoque generalmente se aplica cuando se sabe que la mayoría de los participantes son honestos (lo que solo es posible si el número de participantes es más de dos). Otro enfoque es representar la función como un diagrama lógico . Este enfoque fue utilizado por Andrew Yao al construir un circuito distorsionado ( English  garbled circuit ) [6] , así como en el protocolo GMW (Goldreich, Micali y Wigderson) [7] .

El método del esquema aritmético es más adecuado para realizar operaciones de suma y multiplicación (donde los participantes comparten el secreto y el secreto solo se puede recrear si se recibe información de cada uno de los participantes), pero no es adecuado para realizar operaciones de comparación. Este enfoque ha logrado un gran éxito en el proyecto SIMAP [8] .

El método del circuito lógico realiza sumas y multiplicaciones con menos eficiencia, pero puede realizar fácilmente operaciones binarias como comparaciones. Este segundo enfoque, en el que se basa el sistema de dos manos de Andrew Yao , fue implementado por Mulchy en el sistema de juego limpio [9 ] .  Este sistema también brinda la capacidad de implementar la funcionalidad necesaria, representada por un lenguaje de programación de alto nivel en forma de bucle lógico, que luego es interpretado por el entorno de tiempo de ejecución y ejecutado de manera segura. También existe un sistema "FairplayMP" [10] , que es una extensión de "Fairplay" en el caso de más de dos participantes. Una ventaja significativa de los sistemas basados ​​en métodos con circuitos lógicos es que se realizan en un número constante de intercambios de información, mientras que la ventaja de los sistemas basados ​​en circuitos aritméticos es la capacidad de realizar operaciones aritméticas (suma y multiplicación) muy rápidamente.

Ejemplo de protocolo

Para simplificar, supongamos que dos participantes participan en el cálculo, es decir, N=2 , y los participantes necesitan calcular la función F.

Cable de entrada w 1 Cable de entrada w 2 Cable de salida w 3 Tabla de cálculo cifrada

Aquí significa el resultado del cifrado del valor x con la clave k , y  - respectivamente, el descifrado del texto cifrado y con la clave k . Debe elegir un esquema de cifrado simétrico , que tiene una propiedad adicional: si intenta descifrar el texto con la clave incorrecta, el algoritmo devuelve un error.

El significado de esta tabla es el siguiente: si conocemos los valores encriptados de la señal k 1 u k 2 en los cables de entrada de la válvula w 1 u w 2 , respectivamente, entonces podemos calcular el valor de la señal encriptada calculando el valor para todo i =1...4 . En tres casos de cuatro, debería ocurrir un error, y en el cuarto restante obtendremos el valor encriptado k 3 de la señal en la salida de la puerta.

Protocolos utilizados

Aplicación práctica

Notas

  1. ^ Andrew Chi-Chih Yao: Protocolos para cálculos seguros (resumen extendido) FOCS 1982: 160-164
  2. Yehuda Lindell, Benny Pinkas: Una prueba del protocolo de Yao para la computación bipartita segura, Cryptology ePrint Archive, Informe 2004/175
  3. Solución al problema del millonario Archivado el 19 de mayo de 2008.
  4. M. Ben-Or, S. Goldwasser y A. Wigderson. Teoremas de completitud para computación distribuida tolerante a fallas no criptográfica. En STOC 20, 1-10, 1988.
  5. P. Bogetoft, D. L. Christensen, I. Damgard, M. Geisler, T. Jakobsen, M. Kroigaard, J. D. Nielsen, J. B. Nielsen, K. Nielsen, J. Pagter, M. Schwartzbach y T. Toft. El cómputo multipartito seguro cobra vida. En Criptografía Financiera y Seguridad de Datos – FC 2009
  6. A. Yao. Cómo generar e intercambiar secretos. En 27th FOCS, 162-167, 1986.
  7. Goldreich, S. Micali y A. Widderson. Cómo jugar cualquier juego mental: un teorema de integridad para protocolos con mayoría honesta. En 19 STOC, 218-229, 1987.
  8. P. Bogetoft, I. Damgard, T. Jakobsen, K. Nielsen, J. Pagter. y T.Toft. Una implementación práctica de subastas computacionales seguras basadas en enteros multiparte. En Criptografía financiera y seguridad de datos - FC 2006, Springer-Verlag LNCS 4107, 142-147, 2006.
  9. D. Malkhi, N. Nisan, B. Pinkas y Y. Sella. Fairplay es un sistema de computación bipartito seguro. En Proc. del 13º Simposio de Seguridad de USENIX, 2004.
  10. A. Ben-David, N. Nisan y B. Pinkas. FairplayMP: un sistema para el cómputo multipartidista seguro. En Seguridad Informática y de las Comunicaciones - CCS 2008, ACM, 257-266, 2008.
  11. Pathak Rohit, Joshi Satyadhar, Avances en seguridad y garantía de la información, Springer Berlin/Heidelberg, ISSN 0302-9743 (Impreso) 1611-3349 (En línea), ISBN 978-3-642-02616-4 , DOI 10.1007/978-3 -642-02617-1
  12. Rashid Sheikh, Brijesh Kumar y Durgesh Kumar Mishra, Privacy Preserving k-secure sum protocols, International Journal of Computer Science and Information Security, ISSN 1947-5500 (en línea), Vol.6, No.2, nov. 2009