Articulo de referencia

Prueba del siguiente bit

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 p...

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 para cualquier posición.i{\displaystyle i}en la secuencia, si algún atacante que conoce eli{\displaystyle i}Los primeros bits (pero no la semilla) no pueden predecir el(i+1){\displaystyle (i+1)}con una capacidad de cálculo razonable.

Declaración(es) precisa(s)

DejarPAG{\displaystyle P}sea ​​un polinomio, yS={Sk}{\displaystyle S=\{S_{k}\}}sea ​​una colección de conjuntos tal queSk{\displaystyle S_{k}}contienePAG(k){\displaystyle P(k)}Secuencias de -bits de longitud. Además, deje queμk{\displaystyle \mu _{k}}sea ​​la distribución de probabilidad de las cadenas enSk{\displaystyle S_{k}}.

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

Formulación de circuitos booleanos

Una colección predictiva [ 2 ]do={doki}{\displaystyle C=\{C_{k}^{i}\}}es una colección de circuitos booleanos , de tal manera que cada circuitodoki{\displaystyle C_{k}^{i}}tiene menos dePAGdo(k){\displaystyle P_{C}(k)}puertas y exactamentei{\displaystyle i}entradas. Dejepagk,ido{\displaystyle p_{k,i}^{C}}sea ​​la probabilidad de que, en la entrada eli{\displaystyle i}primeros fragmentos des{\displaystyle s}, una cadena seleccionada aleatoriamente enSk{\displaystyle S_{k}}con probabilidadμk(s){\displaystyle \mu _{k}(s)}, el circuito predice correctamentesi+1{\displaystyle s_{i+1}}, es decir  :

pagk,ido=PAG[dok(s1si)=si+1|sSk con probabilidad μk(s)]{\displaystyle p_{k,i}^{C}={\mathcal {P}}\left[C_{k}(s_{1}\ldots s_{i})=s_{i+1}\right|s\in S_{k}{\text{ con probabilidad }}\mu _{k}(s)]}

Ahora decimos que{Sk}k{\displaystyle \{S_{k}\}_{k}}supera la prueba del siguiente bit si para cualquier colección predictivado{\displaystyle C}cualquier polinomioQ{\displaystyle Q} :

pagk,ido<12+1Q(k){\displaystyle p_{k,i}^{C}<{\frac {1}{2}}+{\frac {1}{Q(k)}}}

Máquinas de Turing probabilísticas

También podemos definir la prueba del siguiente bit en términos de máquinas de Turing probabilísticas , aunque esta definición es algo más fuerte (véase el teorema de Adleman ). SeaMETRO{\displaystyle {\mathcal {M}}}Sea una máquina de Turing probabilística, que funcione en tiempo polinomial .pagk,iMETRO{\displaystyle p_{k,i}^{\mathcal {M}}}sea ​​la probabilidad de queMETRO{\displaystyle {\mathcal {M}}}predice el(i+1){\displaystyle (i+1)}st bit correctamente, es decir

pagk,iMETRO=PAG[METRO(s1si)=si+1|sSk con probabilidad μk(s)]{\displaystyle p_{k,i}^{\mathcal {M}}={\mathcal {P}}[M(s_{1}\ldots s_{i})=s_{i+1}|s\in S_{k}{\text{ con probabilidad }}\mu _{k}(s)]}

Decimos que esa colecciónS={Sk}{\displaystyle S=\{S_{k}\}}supera la prueba del siguiente bit si para todos los polinomiosQ{\displaystyle Q}, para todos excepto para un número finito de personask{\displaystyle k}, para todos0<i<k{\displaystyle 0<i<k}:

pagk,iMETRO<12+1Q(k){\displaystyle p_{k,i}^{\mathcal {M}}<{\frac {1}{2}}+{\frac {1}{Q(k)}}}

Completitud de la prueba de Yao

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

Ahora lo demostramos en el caso de la máquina de Turing probabilística, ya que Adleman ya realizó el trabajo de reemplazar la aleatorización por la no uniformidad en su teorema . El caso de los circuitos booleanos no se puede derivar de este caso (ya que implica la resolución de problemas potencialmente indecidibles), pero la demostración del teorema de Adleman se puede adaptar fácilmente al caso de familias de circuitos booleanos no uniformes.

DejarMETRO{\displaystyle {\mathcal {M}}}ser un elemento 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 tal manera que existe un polinomialQ{\displaystyle Q}de tal manera que para infinitosk{\displaystyle k}

|pagk,SMETROpagk,UMETRO|1Q(k){\displaystyle |p_{k,S}^{\mathcal {M}}-p_{k,U}^{\mathcal {M}}|\geq {\frac {1}{Q(k)}}}

DejarRk,i={s1sii+1PAG(k)|sSk,{0,1}PAG(k)}{\displaystyle R_{k,i}=\{s_{1}\ldots s_{i}u_{i+1}\ldots u_{P(k)}|s\in S_{k},u\in \{0,1\}^{P(k)}\}}. Tenemos:Rk,0={0,1}PAG(k){\displaystyle R_{k,0}=\{0,1\}^{P(k)}}yRk,PAG(k)=Sk{\displaystyle R_{k,P(k)}=S_{k}}. Entonces, observamos quei=0PAG(k)|pagk,Rk,i+1METROpagk,Rk,iMETRO||pagk,Rk,PAG(k)METROpagk,Rk,0METRO|=|pagk,SMETROpagk,UMETRO|1Q(k){\displaystyle \sum _{i=0}^{P(k)}|p_{k,R_{k,i+1}}^{\mathcal {M}}-p_{k,R_{k,i}}^{\mathcal {M}}|\geq |p_{k,R_{k,P(k)}}^{\mathcal {M}}-p_{k,R_{k,0}}^{\mathcal {M}}|=|p_{k,S}^{\mathcal {M}}-p_{k,U}^{\mathcal {M}}|\geq {\frac {1}{Q(k)}}}. Por lo tanto, al menos uno de los|pagk,Rk,i+1METROpagk,Rk,iMETRO|{\displaystyle |p_{k,R_{k,i+1}}^{\mathcal {M}}-p_{k,R_{k,i}}^{\mathcal {M}}|}no debe ser menor que1Q(k)PAG(k){\displaystyle {\frac {1}{Q(k)P(k)}}}.

A continuación, consideramos las distribuciones de probabilidad.μk,i{\displaystyle \mu _{k,i}}yμk,i¯{\displaystyle {\overline {\mu _{k,i}}}}enRk,i{\displaystyle R_{k,i}}. Distribuciónμk,i{\displaystyle \mu _{k,i}}es la distribución de probabilidad de elegir eli{\displaystyle i}primeros fragmentos enSk{\displaystyle S_{k}}con probabilidad dada porμk{\displaystyle \mu _{k}}y elPAG(k)i{\displaystyle P(k)-i}Los bits restantes se distribuyen uniformemente al azar. Por lo tanto, tenemos:

μk,i(w1wPAG(k))=(sSk,s1si=w1wiμk(s))(12)PAG(k)i{\displaystyle \mu _{k,i}(w_{1}\ldots w_{P(k)})=\left(\sum _{s\in S_{k},s_{1}\ldots s_{i}=w_{1}\ldots w_{i}}\mu _{k}(s)\right)\left({\frac {1}{2}}\right)^{P(k)-i}}

μk,i¯(w1wPAG(k))=(sSk,s1si1(1si)=w1wiμk(s))(12)PAG(k)i{\displaystyle {\overline {\mu _{k,i}}}(w_{1}\ldots w_{P(k)})=\left(\sum _{s\in S_{k},s_{1}\ldots s_{i-1}(1-s_{i})=w_{1}\ldots w_{i}}\mu _{k}(s)\right)\left({\frac {1}{2}}\right)^{P(k)-i}}

Por lo tanto, tenemosμk,i=12(μk,i+1+μk,i+1¯){\displaystyle \mu _{k,i}={\frac {1}{2}}(\mu _{k,i+1}+{\overline {\mu _{k,i+1}}})}(un sencillo truco de cálculo lo demuestra), por lo tanto, las distribucionesμk,i+1{\displaystyle \mu _{k,i+1}}yμk,i+1¯{\displaystyle {\overline {\mu _{k,i+1}}}}se puede distinguir porMETRO{\displaystyle {\mathcal {M}}}Sin pérdida de generalidad, podemos suponer quepagμk,i+1METROpagμk,i+1¯METRO12+1R(k){\displaystyle p_{\mu _{k,i+1}}^{\mathcal {M}}-p_{\overline {\mu _{k,i+1}}}^{\mathcal {M}}\geq {\frac {1}{2}}+{\frac {1}{R(k)}}}, conR{\displaystyle R}un polinomio.

Esto nos da una posible construcción de una máquina de Turing que resuelve la prueba del siguiente bit: al recibir eli{\displaystyle i}primeros bits de una secuencia,norte{\displaystyle {\mathcal {N}}}rellena esta entrada con una suposición de bitl{\displaystyle l}y luegoPAG(k)i1{\displaystyle P(k)-i-1}bits aleatorios, elegidos con probabilidad uniforme. Luego se ejecutaMETRO{\displaystyle {\mathcal {M}}}y resultadosl{\displaystyle l}si el resultado es1{\displaystyle 1}, y1l{\displaystyle 1-l}demás.

Referencias

  1. 1 2 Andrew Chi-Chih Yao . Teoría y aplicaciones de las funciones de puerta trasera . En Actas del 23.er Simposio IEEE sobre Fundamentos de la Informática, 1982.
  2. Manuel Blum y Silvio Micali , Cómo generar secuencias criptográficamente seguras de bits pseudoaleatorios, en SIAM J. COMPUT., Vol. 13, No. 4, noviembre de 1984