En un artículo titulado "Sobre la negabilidad en la cadena de referencia común y el modelo aleatorio de Oracle", Rafael Pass escribe:
Observamos que al probar la seguridad de acuerdo con la definición estándar de conocimiento cero en el modelo RO [Random Oracle], el simulador tiene dos ventajas sobre un simulador de modelo simple, a saber,
- El simulador puede ver en qué valores las partes consultan el oráculo.
- El simulador puede responder a estas consultas de la forma que elija, siempre y cuando las respuestas "se vean" bien.
La primera técnica, a saber, la capacidad de "monitorear" las consultas a la RO, es muy común en todos los trabajos que se refieren al concepto de conocimiento cero en el modelo de RO.
Ahora, considere la definición de conocimiento negro de caja negra ( PPT significa máquina de Turing probabilística y de tiempo polinomial ):
S ∀ V ∗ ∀ x ∈ L ∀ r un simulador PPT , tal que (posiblemente engañando) verificador PPT , entrada común , y randomness , los siguientes son indistinguibles:
- la vista de mientras interactúa con el probador en la entrada y usa la aleatoriedad ; P x r
- la salida de en las entradas y , cuando se da acceso de recuadro negro para . x r S V ∗
Aquí, quiero exhibir un verificador de trampa , cuyo trabajo es agotar cualquier simulador que intente monitorear las consultas de RO:
Sea el simulador garantizado por el cuantificador existencial en la definición de conocimiento cero de caja negra, y sea un polinomio que limite el tiempo de ejecución de en la entrada . Suponga que intenta monitorear las consultas de al RO.q ( | x | ) S x S V ∗
Ahora, considere una trampa , que primero consulta el RO por veces (en entradas arbitrarias de su elección), y luego actúa arbitrariamente maliciosamente. q ( | x | ) + 1
Obviamente, agota el simulador . Una forma simple de es rechazar ese comportamiento malicioso, pero de esa manera, un distintivo puede distinguir fácilmente la interacción real de la simulada. (Dado que en la interacción real, el probador no puede monitorear las consultas de y, por lo tanto, no lo rechazará por el simple hecho de que consulta demasiado). S P V ′ V ′
¿Cuál es la solución para el problema anterior?
Editar:
Una buena fuente para estudiar ZK en el modelo RO es:
Martin Gagné, A Study of the Random Oracle Model, Ph.D. Tesis, Universidad de California, Davis , 2008, 109 páginas. Disponible en ProQuest: http://gradworks.umi.com/33/36/3336254.html
En particular, proporciona definiciones de ZK de caja negra en el Modelo RO en la sección 3.3 (página 20), atribuido a Yung y Zhao:
Respuestas:
Hay una pregunta de por qué uno querría definir ZK de caja negra en el modelo de oráculo aleatorio. Existen al menos dos razones por las cuales las personas sugirieron la definición de conocimiento de caja negra cero:
1) Para un resultado positivo, cuando dices que un simulador es "conocimiento de caja negra cero", automáticamente te da un buen límite en su tiempo de ejecución (es decir, en lugar de p o l y ( t i m e ( V ∗ ) ) ) y también puede ser útil saber que el simulador no "mira las entrañas de V ∗ y no le importa sipoly(|x|)⋅time(V∗) poly(time(V∗)) V∗ V ∗ V ∗V∗ se implementa usando RAM, circuito, etc. ... Si bien un simulador de modelo de oráculo aleatorio puede ser eficiente, obviamente no es un recuadro negro, porque se supone que de alguna manera debe ver la ejecución de y comprenderlo cuando está evaluando Una función hash. Por esta razón, hay un sentido en el que no tiene sentido decir que un simulador de modelo de oráculo aleatorio es "caja negra".V∗ V∗
2) Para un resultado negativo, las personas usan el "simulador de caja negra" para capturar una gran clase de técnicas de prueba. En este caso, puede definir el simulador de caja negra también en el modelo de oráculo aleatorio y la definición que tiene sentido es lo que dijo David. De hecho, para un resultado negativo, incluso no en el modelo de oráculo aleatorio, es mejor si el resultado se cumple incluso si permite el tiempo de ejecución del simulador . De hecho, aunque no siempre se indica, los resultados negativos que conozco tienen esta propiedad, ya que el verificador de trampa es típicamente un algoritmo polinomial fijo que ejecuta algunas funciones pseudoaleatorias, mientras que el simulador puede tener cualquier tiempo de ejecución polinomial.poly(time(V∗)) V∗
fuente
Aquí está mi opinión sobre el problema. Recientemente no he leído ningún documento que trate sobre el conocimiento cero de caja negra en el modelo de oráculo aleatorio (RO), así que solo estoy adivinando lo que significan y no lo que está escrito allí. La respuesta corta (supongo) es que BB-ZK en el modelo RO debería permitir que el simulador se ejecute a tiempo polinomial en | x | y el número de consultas RO emitidas por V *, el verificador de trampa.
Tratemos de justificar esa suposición. Una observación inicial es que el término "pruebas de conocimiento cero de caja negra en el modelo de oráculo aleatorio" necesita una mirada más cercana para definirlo adecuadamente. Los simuladores de caja negra están definidos para funcionar con cualquier oráculo (es decir, el verificador de trampa como una caja negra), y su única interfaz es a través de la entrada / salida del oráculo. Si solo aumentamos este modelo para dar un RO a todas las partes (tal vez al permitir que sus circuitos tengan puertas RO), entonces obtenemos un modelo donde el simulador no puede programar el RO - en una consulta de oráculo, todo (incluidas las consultas RO) sucede "dentro" del oráculo V *, y luego devuelve su siguiente mensaje. Si queremos permitir la programación de RO, entonces necesitamos modificar las interfaces: el simulador ahora obtiene un oráculo de entrada / salida para V * y no un oráculo aleatorio. En cada llamada al oráculo V *, en lugar de producir el siguiente mensaje, el oráculo puede producir la siguiente consulta al RO, y el simulador puede darle la respuesta del RO llamando nuevamente al oráculo. Ahora esto permite la programación de RO, y también podemos permitir que el tiempo de ejecución del simulador dependa de la cantidad de consultas a la RO.
Cualquier exploración adicional del significado de estas definiciones se deja al lector. Estoy pensando sintácticamente.
fuente