Prueba del siguiente bit


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En criptografía y teoría de la computación , la prueba del siguiente bit [1] es una prueba contra generadores de números pseudoaleatorios . Decimos que una secuencia de bits pasa la prueba del siguiente bit en cualquier posición de la secuencia, si algún atacante que conoce los primeros bits (pero no la semilla) no puede predecir el st con un poder computacional razonable.

Declaración (es) precisa (s)

Sea un polinomio y una colección de conjuntos tales que contengan secuencias de -bit de longitud. Además, sea ​​la distribución de probabilidad de las cadenas en .

Ahora definimos la prueba del siguiente bit de dos formas diferentes.

Formulación de circuito booleano

Una colección de predicción [2] es una colección de circuitos booleanos , de modo que cada circuito tiene menos de puertas y entradas exactas . Sea la probabilidad de que, al ingresar los primeros bits de , una cadena seleccionada aleatoriamente con probabilidad , el circuito prediga correctamente , es decir:

Ahora, decimos que pasa la prueba del siguiente bit si para cualquier colección de predicción , cualquier polinomio  :

Máquinas probabilísticas de Turing

También podemos definir la prueba del siguiente bit en términos de máquinas probabilísticas de Turing , aunque esta definición es algo más fuerte (ver el teorema de Adleman ). Sea una máquina de Turing probabilística, trabajando en tiempo polinomial. Sea la probabilidad que predice correctamente el bit st, es decir

Decimos que la colección pasa la prueba del siguiente bit si para todos los polinomios , para todos menos para un número finito , para todos :

Integridad para la prueba de Yao

La prueba del siguiente bit es un caso particular de la prueba de Yao para secuencias aleatorias y, por lo tanto, aprobarla es una condición necesaria para aprobar la prueba de Yao . Sin embargo, también se ha demostrado una condición suficiente por Yao . [1]

Lo demostramos ahora en el caso de la máquina probabilística de Turing, ya que Adleman ya ha realizado el trabajo de reemplazar la aleatorización con no uniformidad en su teorema . El caso de los circuitos booleanos no puede derivarse de este caso (ya que implica decidir problemas potencialmente indecidibles), pero la demostración del teorema de Adleman puede adaptarse fácilmente al caso de familias de circuitos booleanos no uniformes.

Sea un distintivo para la versión probabilística de la prueba de Yao, es decir, una máquina de Turing probabilística, que se ejecuta en tiempo polinomial, de modo que hay un polinomio tal que para infinitos

Deja . Tenemos: y . Entonces, lo notamos . Por lo tanto, al menos uno de los no debe ser menor que .

A continuación, consideramos distribuciones de probabilidad y así sucesivamente . La distribución es la distribución de probabilidad de elegir los primeros bits con probabilidad dada por , y los bits restantes uniformemente al azar. Tenemos así:

Por lo tanto, tenemos (un simple truco de cálculo muestra esto), por lo tanto, distribuciones y se pueden distinguir por . Sin pérdida de generalidad, podemos asumir eso , con un polinomio.

Esto nos da una posible construcción de una máquina de Turing que resuelve la prueba del siguiente bit: al recibir los primeros bits de una secuencia, rellena esta entrada con una suposición de bits y luego bits aleatorios, elegidos con probabilidad uniforme. Luego se ejecuta y genera si el resultado es , y de lo contrario.

Referencias

  1. ^ a b Andrew Chi-Chih Yao . Teoría y aplicaciones de las funciones de trampilla . En Proceedings of the 23rd IEEE Symposium on Foundations of Computer Science, 1982.
  2. ^ Manuel Blum y Silvio Micali , Cómo generar secuencias criptográficamente fuertes de bits pseudoaleatorios, en SIAM J. COMPUT., Vol. 13, No. 4, noviembre de 1984