Prueba de conocimiento cero

La prueba de conocimiento cero (información) en criptografía ( ing.  Prueba de conocimiento cero ) es un protocolo criptográfico interactivo que permite que una de las partes que interactúan ("El verificador" - verificando) verifique la validez de cualquier declaración (generalmente matemática), sin tener esto no es otra información de la segunda parte ("El probador" - prueba). Además, la última condición es necesaria , ya que suele ser trivial demostrar que la parte tiene cierta información en la mayoría de los casos.si tiene el derecho de simplemente divulgar la información. Toda la dificultad radica en probar que una de las partes tiene información sin revelar su contenido. El protocolo debe tener en cuenta que el probador podrá convencer al verificador solo si la afirmación es realmente probada. De lo contrario, será imposible hacerlo, o muy poco probable debido a la complejidad computacional .

La interactividad del protocolo se refiere al intercambio directo de información entre las partes [1] [2] .

Por lo tanto, el protocolo bajo consideración requiere una entrada interactiva del verificador , generalmente en forma de tarea o problema. El propósito del probador legal (tener prueba ) en este protocolo es convencer al verificador de que tiene una solución, sin revelar ni siquiera una parte de la prueba "secreta" ("conocimiento cero"). El propósito del verificador es asegurarse de que la parte que prueba "no mienta" [2] [3] .

También se han desarrollado protocolos de prueba de conocimiento cero [4] [5] que no requieren una entrada interactiva, y cuya prueba generalmente se basa en la suposición de una función hash criptográfica ideal , es decir, se supone que la salida de un La función hash -way no se puede predecir si no se conoce su entrada [6] .

La prueba de conocimiento cero se usa en varias cadenas de bloques, además, se usa para verificar la existencia de información sin transferir la información en sí [7] [8] .

Definición

La prueba de conocimiento cero es un protocolo probabilístico interactivo que le permite probar que la afirmación que se está probando es verdadera, y el Demostrante conoce esta prueba, mientras que al mismo tiempo no proporciona ninguna información sobre la prueba de esta afirmación en sí [9] . Este protocolo criptográfico debe tener tres propiedades:

  1. Integridad : si la declaración es realmente verdadera, entonces el Probador convencerá al Verificador de esto con una precisión predeterminada.
  2. Corrección : si la declaración es falsa, entonces cualquier Probador, incluso "deshonesto", no podrá convencer al Verificador excepto por una probabilidad insignificante .
  3. Conocimiento cero : si la declaración es verdadera, entonces cualquier verificador, incluso "deshonesto", no sabrá nada más que el hecho mismo de que la declaración es verdadera [10] .

Las pruebas de conocimiento cero no son pruebas en el sentido matemático del término, porque existe una pequeña posibilidad de que el probador pueda ser engañado para convencer al verificador de una afirmación falsa ( error de corrección ). En otras palabras, las pruebas de conocimiento cero son pruebas probabilísticas, no deterministas . Sin embargo, existen métodos para reducir el error de corrección a valores despreciables [11] [12] .

Varios tipos de conocimiento cero

La ejecución del protocolo de prueba de conocimiento cero produce un resultado de Aceptar/Rechazar y también genera una transcripción de la prueba. Se pueden definir varias variantes de conocimiento cero formalizando el concepto en sí y comparando la distribución de información de varios modelos con el protocolo de las siguientes maneras [13] [14] :

Historial de desarrollo

En 1986, Silvio Micali, Oded Goldreich y Avi Wigderson describieron el de pruebas de conocimiento cero para crear protocolos criptográficos que deberían garantizar el "comportamiento justo" de las partes manteniendo la confidencialidad [19] .

La prueba de conocimiento cero fue concebida y desarrollada por los siguientes científicos: Shafi Goldwasser , Silvio Micali y Charles Reckoff, y publicada por ellos en el artículo "Conocimiento y complejidad de un sistema interactivo con prueba" [20] en 1989 . Este trabajo presentó una jerarquía de sistemas de prueba interactivos basada en la cantidad de información de prueba que debe pasar del Prover al Verifier. También propusieron la primera prueba de una prueba de conocimiento cero específicamente establecida, un residuo cuadrático módulo m [21] . Posteriormente, complementando su trabajo, fueron galardonados con el primer Premio Gödel en 1993 [22] .

Además, el criptosistema Goldwasser-Micali , basado en el protocolo interactivo considerado, que es un sistema criptográfico de clave pública desarrollado por Shafi Goldwasser y Silvio Micali en 1982 , es el primer esquema de encriptación probabilística de clave pública que es probablemente seguro bajo los supuestos criptográficos estándar. . El sistema propuesto fue muy apreciado por el jurado: Goldowasser y Micali se convirtieron en laureados del Premio Turing de 2012 [23] , por la creación de un criptosistema con encriptación probabilística, destacado en la nominación como un trabajo innovador que tuvo un impacto significativo en el mundo moderno. criptografía _ Sin embargo, el criptosistema es ineficiente, ya que el texto cifrado que genera puede ser cientos de veces más largo que el mensaje cifrado .

Para probar las propiedades de seguridad de un criptosistema, Goldwasser y Micali introdujeron el concepto de seguridad semántica [24] [25] .

En 2021, Laszlo Lovas y Avi Wigderson recibieron el Premio Abel por su trabajo en informática teórica , que hizo una importante contribución al desarrollo de la teoría de la complejidad computacional, la teoría de grafos, los métodos de computación distribuida y el concepto de pruebas de conocimiento cero . 26] .

Estructura general de las pruebas de conocimiento cero

Cada ronda, o prueba de acreditación , consta de tres etapas. Esquemáticamente, se pueden representar de la siguiente manera:

Primero , A selecciona algún elemento de un conjunto no vacío predeterminado , que se convierte en su clave privada secreta . Sobre la base de este elemento, la clave pública se calcula y luego se publica . Conocer el secreto determina el conjunto de preguntas a las que A siempre puede dar las respuestas correctas. Luego, A selecciona un elemento aleatorio del conjunto, de acuerdo con ciertas reglas (dependiendo del algoritmo específico), calcula la prueba y luego la envía a B. Después de eso, B elige una pregunta de todo el conjunto y le pide a A que la responda (desafío). Dependiendo de la pregunta, A envía una respuesta a B [27] . La información recibida por B es suficiente para comprobar si A realmente posee el secreto. Las rondas se pueden repetir tantas veces como se desee hasta que la probabilidad de que A "adivine" las respuestas sea lo suficientemente baja. Este enfoque también se denomina "cortar y elegir", utilizado por primera vez en criptografía por Michael Rabin [28] [29] .

Ejemplos

Cueva del Conocimiento Cero

Este ejemplo se escribió por primera vez en el conocido documento de prueba de conocimiento cero "Cómo explicar el protocolo de prueba de conocimiento cero a sus hijos" de Jean-Jacques Kiskater.[30] .

En este caso, Peggy actúa como Prover y Victor como Verifier (en la literatura inglesa, se suelen usar los nombres de las partes Peggy y Victor (de "Prover" y "Verifier" respectivamente). Peggy conoce la palabra mágica ("key "), entrada que le permite abrir la puerta entre C y D. Víctor quiere saber si Peggy realmente sabe la contraseña, mientras que Peggy no quiere dar la contraseña en sí. La cueva tiene forma redonda, como se muestra en la Para resolver el problema se procede de la siguiente manera, estando Víctor en el punto A, Peggy se dirige a la puerta, y luego de que ella desaparece de la vista, Víctor se dirige a la bifurcación, es decir, al punto B, y grita desde allí: "Peggy tiene que salir por la derecha " o "Peggy tiene que salir por la izquierda ". Obtenemos cada vez que la probabilidad de que Peggy no sepa la contraseña es igual al 50%. Si repetimos el proceso k veces, entonces la probabilidad será . Con 20 repeticiones, esta probabilidad será del orden de 10 −6 , que es suficiente para la equidad . Estas suposiciones de que Peggy conoce la clave [30] .

Si Víctor graba todo lo que sucede en la cámara, el video resultante no será evidencia para ninguna otra parte. Después de todo, podrían haber acordado de antemano de dónde vendría Peggy. En consecuencia, podrá encontrar una salida sin conocer la clave en sí. Hay otra forma: Víctor simplemente elimina todos los intentos fallidos de Peggy. Estos pasos anteriores prueban que el ejemplo de la cueva satisface las propiedades de integridad , corrección y conocimiento cero [31] .

Ciclo hamiltoniano para grafos grandes

Este ejemplo fue inventado por Manuel Blum y descrito en su artículo en 1986 [32] . Llamemos al probador Víctor y al probador Peggy. Digamos que Peggy conoce un ciclo hamiltoniano en un gran gráfico G. Víctor conoce el gráfico G , pero no conoce el ciclo hamiltoniano en él. Peggy quiere demostrarle a Víctor que conoce el ciclo hamiltoniano, sin revelar el ciclo en sí ni ninguna información al respecto (tal vez Víctor quiera comprarle información sobre este ciclo hamiltoniano a Peggy, pero antes quiere asegurarse de que Peggy realmente lo conoce) ).

Para ello, Víctor y Peggy realizan conjuntamente varias rondas del protocolo :

En cada ronda, Víctor elige un nuevo bit aleatorio que Peggy no conoce, por lo que para que Peggy responda ambas preguntas, H debe ser isomorfo a G y Peggy debe conocer el ciclo hamiltoniano en H (y por lo tanto también en G ). Por lo tanto, después de un número suficiente de rondas, Víctor puede estar seguro de que Peggy realmente conoce el ciclo hamiltoniano en G. Por otro lado , Peggy no revela ninguna información sobre el ciclo hamiltoniano en G. Además, será difícil para Víctor demostrarle a alguien más que él o Peggy conocen el ciclo hamiltoniano en G [32] .

Supongamos que Peggy no conoce el ciclo hamiltoniano en G , pero quiere engañar a Víctor. Luego, Peggy necesita un gráfico G G′ no isomorfo , en el que aún conoce el ciclo hamiltoniano . En cada ronda, puede pasar a Víctor H′  — isomorfo a G′ o H  — isomorfo a G . Si Víctor pide probar el isomorfismo de los gráficos, y se le dio H , entonces el engaño no se revelará. De manera similar, si pide mostrar un ciclo hamiltoniano y se le da H′ . En este caso, la probabilidad de que Peggy siga engañando a Víctor después de k rondas es igual a , que puede ser menor que cualquier valor predeterminado dado un número suficiente de rondas [32] .

Supongamos que Víctor no reconoce el ciclo hamiltoniano, pero quiere demostrarle a Bob que Peggy lo sabe. Si Víctor, por ejemplo, grabara en video todas las rondas del protocolo, Bob difícilmente le creería. Bob puede suponer que Víctor y Peggy están en connivencia, y en cada ronda Víctor le dice a Peggy su elección de bit aleatorio de antemano para que Peggy pueda pasarle H para pruebas de isomorfismo y H′ para pruebas de ciclo hamiltoniano. Por lo tanto, sin la participación de Peggy, es posible demostrar que ella conoce el ciclo hamiltoniano solo demostrando que se eligieron bits verdaderamente aleatorios en todas las rondas del protocolo [33] .

Aplicación en la práctica

Oded Goldreich [ , Silvio Micali y Avi Wigderson [ 19 ] [ 19] [ 34] . Es decir, puede demostrarle a cualquier escéptico que tiene una prueba de algún teorema matemático sin revelar la prueba en sí. Esto también muestra cómo este protocolo se puede utilizar con fines prácticos [13] .

El siguiente método en el que se puede utilizar la prueba de conocimiento cero es la determinación de identidad, en la que la clave privada de Peggy es el llamado "indicador de identidad" y, utilizando el protocolo en cuestión, uno puede probar su identidad. Es decir, puede probar su identidad sin usar varios dispositivos físicos y datos (símbolos), como pasaportes, varias fotografías de una persona (retina, dedos, cara, etc.), pero de una manera fundamentalmente diferente [35] . Sin embargo, tiene una serie de desventajas que pueden utilizarse para eludir la protección. El método descrito anteriormente fue propuesto por primera vez por Amos Fiat , Adi Shamir y Uriel Feige en 1987 [36] .

Además, las pruebas de conocimiento cero se pueden usar en protocolos informáticos confidenciales , que permiten que varios participantes verifiquen que la otra parte sigue el protocolo con honestidad [19] .

Las pruebas de conocimiento cero se utilizan en las cadenas de bloques de las criptomonedas Zcash , Byzantium (una bifurcación de Ethereum ), Zerocoin y otras. Se han creado implementaciones de protocolos a prueba de conocimiento cero, en particular, el kit de desarrollo de software QED-IT. El banco holandés ING creó su propia versión del protocolo, ZKRP ( Zero-Knowledge Range Proof ), y lo aplicó para demostrar que el cliente tiene un salario suficiente sin revelar su tamaño real [7] [8] .

Los protocolos más extendidos son zk-SNARKs, son los protocolos de esta clase los que se utilizan en ZCash, Zcoin y en el protocolo Metropolis de la cadena de bloques Ethereum [37] [8] .

La abreviatura zk-SNARK significa   argumento de conocimiento sucinto no interactivo de conocimiento cero [37] [8] . El algoritmo zk-SNARK consta de un generador de claves, un probador y un verificador, necesariamente admite conocimiento cero, tiene brevedad (se calcula en poco tiempo), no es interactivo (el verificador recibe solo un mensaje del probador) [8] .

Abuso

Se han propuesto varias formas de abusar de la prueba de conocimiento cero que explotan ciertas debilidades en el protocolo:

Problema del gran maestro

En este ejemplo, alguna parte puede probar la posesión del secreto sin tenerlo realmente, o, en otras palabras, puede imitar a la persona que realmente posee el secreto [38] . Actualmente, Thomas Beth e Ivo Desmedt [39] han propuesto una forma de resolver el problema .

Engaño con múltiples identidades

Si una parte puede crear múltiples secretos, también podrá crear "múltiples identidades" en consecuencia. Que uno de ellos nunca sea usado. Esta posibilidad proporciona el anonimato de una sola vez, lo que permite, por ejemplo, evadir la responsabilidad: la parte se identifica como una persona nunca utilizada y comete un delito. Después de eso, esta "identidad" nunca se vuelve a utilizar. Es casi imposible rastrear o emparejar al delincuente con alguien. Tal abuso se previene si se excluye desde el principio la posibilidad de crear un segundo secreto [40] .

Engaño llevado a cabo por la Mafia

Otro ejemplo de un lado fingiendo ser el otro. Que haya 4 participantes: A , B , C , D . Además , B y C cooperan entre sí ("pertenecen a la misma mafia"). A demuestra su identidad a B y C quiere hacerse pasar por A frente a D. B es dueño de un restaurante propiedad de la mafia, C  también es representante de la mafia, D  es joyero. A y D no están al tanto del próximo fraude. En el momento en que A está listo para pagar la cena y se identifica ante B , B notifica a C del inicio de la estafa. Esto es posible debido a la presencia de un canal de radio entre ellos. En este momento, C selecciona el diamante que desea comprar y D comienza a identificar la identidad de C , quien se hace pasar por A. C pasa la pregunta de protocolo a B , quien a su vez se la hace a A. La respuesta se transmite en orden inverso. Por lo tanto, A pagará no solo por la cena, sino también por el costoso diamante. Como se puede ver en lo anterior, existen ciertos requisitos para dicho fraude. Cuando A comienza a demostrar su identidad a B y C  a D , las acciones de B y C deben estar sincronizadas. Este abuso también está permitido. Por ejemplo, si hay una jaula de Faraday en una joyería , los "mafiosos" no podrán intercambiar mensajes [41] .

Posibles ataques

Ataque de texto cifrado elegido

Este ataque es factible utilizando un método de interacción no interactivo en un protocolo de conocimiento cero.

Hay varios problemas con este protocolo. Primero, debe decidir cómo desea interactuar, manteniendo las características fundamentales del protocolo en sí: integridad, corrección y "conocimiento cero". Además del hecho de que es bastante fácil demostrar cero conocimiento a la otra parte, si es posible espiar el canal, es decir, enfrentar el problema del gran maestro .

Entonces, el ataque en sí es el siguiente: el atacante, utilizando la complejidad de la prueba de tener conocimiento, incluye el texto cifrado "atacante" , deslizándolo en un montón de otros textos cifrados que deben descifrarse. Este ataque se llama ataque de "reproducción" [42] .

Una posible solución se basa en el trabajo de Moni Naor y Moti Yung , que es la siguiente: Prover y Verifier cifran los mensajes con una clave pública , esto hace que el ataque anterior falle [43] .

Un ataque a un sistema multiprotocolo de conocimiento cero

Chida y Yamamoto propusieron una implementación del protocolo de conocimiento cero que aumenta significativamente la velocidad de las pruebas de conocimiento cero mientras prueba varias declaraciones a la vez y, como resultado, el rendimiento de todo el sistema [44] . La característica clave es la restricción en el número de iteraciones para una prueba. Como se muestra en el trabajo de K. Peng [45] , este algoritmo resultó ser completamente inestable al siguiente ataque. Usando varias iteraciones bien elegidas, un atacante puede pasar la verificación y violar las disposiciones principales del protocolo. Además, se demostró que este ataque siempre es factible en dicho sistema.

Ataque con una computadora cuántica

En 2005 John Watrus mostró que no todos los sistemas de conocimiento cero son resistentes a los ataques informáticos cuánticos . Sin embargo, se ha demostrado que siempre es posible construir un sistema que sea resistente a los ataques cuánticos, asumiendo que existen sistemas cuánticos con "ocultamiento de obligaciones" [46] .

Véase también

Notas

  1. Goldreich, 2013 .
  2. 1 2 Schneier, 2002 , págs. 87-92.
  3. Goldwasser, Micali, Rackoff, 1989 , págs. 186-189.
  4. Santis, Micali, Persiano, 1988 .
  5. Blum, Feldman, Micali, 1988 .
  6. Schneier, 2002 , págs. 90-91.
  7. 12 Fork Log , 2019 .
  8. 1 2 3 4 5 Gubanova, 2018 .
  9. Blum, 1988 , pág. 1444.
  10. Menezes et al, 1996 , págs. 406-408.
  11. Schneier, 2002 , págs. 86-89.
  12. Goldwasser, Micali, Rackoff, 1989 , págs. 188-189.
  13. 1 2 Schneier, 2002 , págs. 91-92.
  14. Mao, 2005 , págs. 683-696.
  15. Mao, 2005 , págs. 684-688.
  16. Sahai, Vadhan, 2003 .
  17. Mao, 2005 , pág. 696.
  18. Mao, 2005 , págs. 692-696.
  19. 1 2 3 Goldreich, Micali, Widderson, 1986 .
  20. Goldwasser, Micali, Rackoff, 1989 .
  21. Goldwasser, Micali, Rackoff, 1989 , págs. 198-205.
  22. Goldwasser, Micali y Rackoff reciben el premio Gödel en 1993 (enlace no disponible) . ACM Sigact (1993). Archivado desde el original el 8 de diciembre de 2015. 
  23. Goldwasser, Micali reciben el premio ACM Turing por avances en criptografía (enlace no disponible) . ACM. Consultado el 13 de marzo de 2013. Archivado desde el original el 16 de marzo de 2013. 
  24. Goldwasser, Micali, 1982 .
  25. Mao, 2005 , págs. 524-528.
  26. Premio Abel - 2021 • Andrey Raigorodsky • Noticias de ciencia sobre "Elementos" • Matemáticas, Ciencia y Sociedad . Consultado el 17 de mayo de 2021. Archivado desde el original el 3 de junio de 2021.
  27. Mao, 2005 , págs. 678-682.
  28. MORabin. firmas digitales . — Fundamentos de Computación Segura. - Nueva York: Academic Press, 1978. - P. 155-168. — ISBN 0122103505 .
  29. Schneier, 2002 , págs. 87-89.
  30. 12 Quisquater y otros, 1990 .
  31. Schneier, 2002 , págs. 87-88.
  32. 1 2 3 4 Blum, 1988 .
  33. Schneier, 2002 , págs. 89-90.
  34. Goldreich, Micali, Widderson, 1987 .
  35. Schneier, 2002 , pág. 92.
  36. Fiat, Shamir, 1987 .
  37. 12 Medios de la cadena , 2017 .
  38. Schneier, 2002 , págs. 92-93.
  39. Beth, Desmedt, 1991 .
  40. Schneier, 2002 , págs. 93-94.
  41. Schneier, 2002 , pág. 93.
  42. Rackoff, Simón, 1992 .
  43. Naor, Yung, 1990 .
  44. Chida, Yamamoto, 2008 .
  45. Peng, 2012 .
  46. Watrous, 2006 .

Literatura

libros y monografias artículos

Enlaces