Un protocolo de conocimiento cero o Zero Knowledge Proof (ZKP) en criptografía permite compartir y verificar información sin aportar datos que no sean necesarios.
Nos encontramos ante un procedimiento que tiene dos agentes, el «probador» que dice que algo es cierto y el «verificador» que comprueba que realmente lo es. Así, el segundo puede demostrar la veracidad de la información sin necesidad de que el primero le dé información sensible.
Por tanto, estamos ante un sistema de protección de datos que permite encriptar y además, ha supuesto una revolución tecnológica. Al final, veremos un ejemplo escrito en 1992 por Louis Guillou, Jean-Jacques Quisquater y Thomas Berson.
Origen del protocolo de conocimiento cero
El protocolo de conocimiento cero lleva a sus espaldas más de 50 años de investigación. Veamos algunos de los hechos más relevantes de su historia.
- La criptografía siempre ha sido una forma de proteger información sensible o importante que no queremos que se sepa. Los sistemas antiguos eran muy sencillos y se basaban en códigos secretos.
- Con la llegada de los ordenadores se volvió un problema mucho más complejo. Sin embargo, estos permitieron generar códigos basados en las matemáticas que ofrecían una mayor seguridad en el cifrado.
- El cifrado asimétrico supuso una revolución de la mano de sus creadores, Whitfield Diffie y Martin Hellman. Estos investigadores, en 1976, bautizaron (utilizando sus apellidos) el algoritmo que se usa en la seguridad en Internet.
- Por su parte, David Chaum ideó el protocolo de firma a ciegas en 1982, que permitía la firma digital sin intercambios de información sensible. De hecho, creó un sistema grupal que ofrecía la posibilidad de firmar digitalmente a varias personas.
- Shafi Goldwasser, Silvio Micali y Charles Rackoff fueron los padres del protocolo de conocimiento cero, una revolución tecnológica respecto a los anteriores sistemas.
Características del protocolo de conocimiento cero
Veamos algunas de las características de este protocolo que, además, son requisitos indispensables para su uso.
- Solvencia: La probabilidad de que el «probador» engañe al verificador es muy pequeña, como veremos en el ejemplo.
- Totalidad: Si la declaración es cierta, se puede probar y se puede verificar con una probabilidad muy elevada, casi infinita.
- El protocolo: Este permite ese intercambio de información sin aporte de datos adicionales en la operación. Por este motivo, el sistema protege la privacidad del usuario.
Tipos de protocolo de conocimiento cero
Podemos clasificar el protocolo de conocimiento cero, en función de las pruebas de conocimiento realizadas, en dos grupos:
- En las interactivas, IZKP, ambos agentes deben estar presentes durante el intercambio de información. Normalmente, el probador envía un mensaje al verificador, que comprueba que está diciendo la verdad. Esta situación se repite varias veces.
- En las no interactivas, NZKP, solo debe estar presente el probador. Este genera un protocolo que puede ser revisado más tarde por el verificador.
Para pasar de una prueba interactiva a una no interactiva se utiliza la heurística de Fiat-Shamir, que permite transformar una en la otra. Por último, un ejemplo de IZKP es Protocolo de Chaum-Pedersen, que permite verificar cálculos matemáticos con parejas de números.
Ejemplo, la cueva de Alí Babá
Vamos a ver el ejemplo utilizado por Louis Guillou, Jean-Jacques Quisquater y Thomas Berson. Recordemos la historia de Alí Babá y su cueva e imaginemos a dos personas (Juan y Ana) frente a ella. Eso sí, solo Ana (probador) conoce la palabra mágica que abre la puerta.
La cueva tiene forma de anillo y dos opciones de entrada y en una, la B, la puerta está cerrada. Ana (el probador) utiliza un camino para entrar, elegido al azar. Mientras, Juan (el verificador) espera fuera.

Ahora entra Juan y le dice a Ana que vuelva por el camino B. Él no sabe el camino que tomó Ana para entrar, pero ahora se sitúa en la encrucijada y puede conocer el que tomará ella para volver. De esta forma, verificará si Ana sabe o no la palabra mágica sin que ella le diga cuál es.
Puede pasar que ella de verdad conozca la manera de entrar y, por tanto, de salir. Pero la otra opción es que no la conozca y solo podrá volver por A (no puede abrir la puerta). Así, la probabilidad de que Juan acierte es del 50%, que sería debido al azar y no serviría de mucho.
Ahora repitamos el experimento 30 veces y la probabilidad de error se aproxima a cero. Por tanto, o Ana es honesta y no miente cuando dice que conoce el camino, o va a tener un problema para volver gracias al protocolo de conocimiento cero.