En el capítulo 10 de HAC (10.4.2) , vemos el conocido protocolo de identificación Feige-Fiat-Shamir basado en una prueba de conocimiento cero que utiliza la (presunta) dificultad de extraer el módulo de raíces cuadradas de un compuesto que es difícil de factorizar. Daré el esquema en mis propias palabras (y con suerte lo haré bien).
Comencemos con un esquema más simple: sea un número entero de Blum (entonces y cada una de y es 3 mod 4) de tamaño suficientemente grande para que la factorización sea intractible. Como es un número entero de Blum, la mitad de los elementos de tienen el símbolo de Jacobi +1 y la otra mitad tiene -1. Para los elementos +1, la mitad de ellos tienen raíces cuadradas, y cada elemento que tiene una raíz cuadrada tiene cuatro de ellos, exactamente uno es un cuadrado.
Ahora Peggy selecciona un elemento aleatorio de y establece . Luego envía a Victor. El siguiente es el protocolo: Victor desea verificar que Peggy conoce una raíz cuadrada de y Peggy quiere demostrar a él sin revelar nada acerca de más allá del hecho de que ella sabe Tal .
- Peggy elige un aleatorio en y envía a Victor.
- Víctor equiparobablemente envía o regreso a Peggy.
- Peggy envía a Victor.
Victor puede verificar que Peggy ha enviado la respuesta correcta al cuadrar lo que recibe y compararlo con el resultado correcto. Por supuesto, repetimos esta interacción para reducir la posibilidad de que Peggy sea una adivinadora afortunada. Se afirma que este protocolo es ZK; Una prueba se puede encontrar en varios lugares (por ejemplo, las notas de clase de Boaz Barak ).
Cuando ampliamos este protocolo para hacerlo más eficiente, se llama Feige-Fiat-Shamir; Es muy similar a lo anterior. Comenzamos Peggy con valores aleatorios s 1 ⋯ s k y signos aleatorios t 1 = ± 1 , ⋯ t k = ± 1 ella publica sus cuadrados como v 1 = t 1 s 2 1 , ⋯ , v k = t k s 2 k . En otras palabras, negamos aleatoriamente algunas de las v . Ahora
- Peggy elige un aleatorio en Z ∗ n y envía r 2 a Victor.
- Victor envía equiparobablemente valores b i desde { 0 , 1 } de regreso a Peggy.
- Peggy envía a Victor.
Mi pregunta: ¿Por qué son la es necesario firmar los bits? Entre paréntesis, HAC señala que están allí como un requisito técnico requerido para demostrar que no se filtró información secreta. La página de Wikipedia para Feige-Fiat-Shamir (que hace que el protocolo sea incorrecto) implica que sin esto se filtró un poco.
No puedo encontrar un ataque que extraiga nada de Peggy si omite los signos.