Saltar al contenido principal

Pruebas de conocimiento cero - Demostrar sin revelar

Lectura de 2 min aprox.

La prueba de conocimiento cero (Zero-Knowledge Proof, ZKP) es una técnica criptográfica que demuestra que conoces cierta información sin revelar en absoluto la información en sí. En 1985, Shafi Goldwasser, Silvio Micali y Charles Rackoff establecieron su base teórica. Como tecnología innovadora que concilia la privacidad y la seguridad, por ejemplo autenticando sin enviar la contraseña o verificando la legitimidad de una transacción sin divulgar su contenido, se sitúa en la vanguardia de la tecnología de cifrado.

Comprender el concepto - La cueva de Alí Babá

El concepto de las pruebas de conocimiento cero puede entenderse de forma intuitiva con la parábola de «la cueva de Alí Babá». En el fondo de una cueva en forma de anillo hay una puerta mágica que solo puede atravesar quien conoce la palabra secreta. La demostradora (Peggy) quiere probar al verificador (Victor) que conoce la palabra secreta, pero no quiere revelar la palabra en sí.

1.Peggy entra en la cueva y elige al azar el camino de la izquierda o de la derecha para avanzar al fondo
2.En la entrada de la cueva, Victor le indica que «salga por la izquierda» o «salga por la derecha»
3.Si Peggy conoce la palabra secreta, puede atravesar la puerta y salir por el lado correcto sin importar cuál se le indique
4.Si esto se repite 20 veces, la probabilidad de acertar por casualidad todas las veces es inferior a una entre un millón

A través de este proceso, Victor adquiere la certeza de que «Peggy conoce la palabra secreta», pero no puede llegar a conocer la palabra secreta en sí. Esta es la esencia de una prueba de conocimiento cero.

zk-SNARK y zk-STARK

Propiedadzk-SNARKzk-STARK
Configuración de confianzaRequeridaNo requerida
Tamaño de la pruebaPequeño (cientos de bytes)Grande (decenas de KB)
Velocidad de verificaciónRápidaAlgo lenta
Resistencia cuánticaNinguna (depende de curvas elípticas)Sí (depende de funciones hash)

zk-SNARK (Succinct Non-interactive Argument of Knowledge) tiene un tamaño de prueba pequeño y una verificación rápida, pero su configuración inicial requiere confianza. zk-STARK (Scalable Transparent Argument of Knowledge) no necesita configuración y es resistente a la cuántica, pero el tamaño de su prueba se vuelve grande. Es importante elegir el adecuado según el caso de uso.

Aplicación a la autenticación con contraseña

En la autenticación con contraseña tradicional, el usuario envía la contraseña al servidor, que la coteja. Este enfoque conlleva el riesgo de que la contraseña se filtre en la ruta de comunicación o en el lado del servidor. Al aplicar pruebas de conocimiento cero, se puede demostrar únicamente que se «conoce la contraseña correcta» sin enviar la contraseña en sí. El protocolo SRP (Secure Remote Password) se basa en esta idea y lo adoptan gestores de contraseñas como 1Password. El artículo Los fundamentos del cifrado explica el panorama general de las tecnologías criptográficas relacionadas.

Servicios de cifrado de conocimiento cero

Un servicio en la nube que se anuncia como «conocimiento cero» significa que está diseñado de modo que el propio proveedor del servicio no pueda descifrar los datos del usuario. Proton Mail ofrece cifrado de extremo a extremo para el correo, y ni siquiera los servidores de Proton pueden leer el contenido de los mensajes. Tresorit adopta el mismo diseño para el almacenamiento de archivos. En estos servicios, el cifrado se realiza en el lado del cliente con una clave derivada de la contraseña maestra, y en el servidor solo se almacena el texto cifrado. Consulta también el artículo El equilibrio entre privacidad y comodidad.

Casos de uso reales

«Para la verificación de identidad en una entidad financiera, estamos estudiando un mecanismo para demostrar que alguien tiene 18 años o más sin revelar su fecha de nacimiento. Con las pruebas de conocimiento cero, podría ser posible cumplir los requisitos de cumplimiento normativo usando solo la información mínima necesaria.»

Errores comunes

Existe el error de creer que «conocimiento cero = no existen datos», pero los datos sí existen. Conocimiento cero significa que «el verificador no obtiene ningún conocimiento nuevo durante el proceso de prueba». Además, incluso los servicios de cifrado de conocimiento cero conllevan la contrapartida de que, si olvidas tu contraseña maestra, no podrás recuperar tus datos. Es importante decidir su adopción tras comprender el equilibrio entre comodidad y seguridad. Para quienes se interesan por las últimas tendencias en criptografía, libros especializados en criptografía (Amazon) son una referencia útil. El artículo La criptografía poscuántica y la seguridad de las contraseñas también explica la tecnología criptográfica de la era cuántica.

Términos relacionados

¿Te resultó útil este artículo?

XHatena