En criptografía , una prueba de contraseña de conocimiento cero (ZKPP) es un tipo de prueba de conocimiento cero que permite a una parte (el probador) demostrar a otra parte (el verificador) que conoce el valor de una contraseña , sin revelar nada más que el hecho de que conoce la contraseña al verificador. El término se define en IEEE P1363.2 , en referencia a uno de los beneficios de utilizar un protocolo de intercambio de claves autenticado por contraseña (PAKE) que es seguro contra ataques de diccionario fuera de línea. Una ZKPP evita que cualquier parte verifique las suposiciones de la contraseña sin interactuar con una parte que la conoce y, en el caso óptimo, proporciona exactamente una suposición en cada interacción. [ cita requerida ]
Un uso común de una prueba de contraseña de conocimiento cero es en sistemas de autenticación donde una parte desea demostrar su identidad a una segunda parte usando una contraseña pero no quiere que la segunda parte ni ninguna otra persona conozca nada sobre la contraseña. Por ejemplo, las aplicaciones pueden validar una contraseña sin procesarla y una aplicación de pago puede verificar el saldo de una cuenta sin tocar ni conocer nada sobre el monto. [1]
Los primeros métodos para demostrar un ZKPP fueron los métodos de intercambio de claves cifradas (EKE) descritos por Steven M. Bellovin y Michael Merritt en 1992. [2] En los años posteriores se desarrolló una cantidad considerable de mejoras, alternativas y variaciones en la creciente clase de métodos de acuerdo de claves autenticadas por contraseña. Los estándares para estos métodos incluyen IETF RFC 2945, IEEE P1363.2 e ISO-IEC 11770-4. [3]