In computational complexity theory and cryptography, the existence of pseudorandom generators is related to the existence of one-way functions through a number of theorems, collectively referred to as the pseudorandom generator theorem.
Introduction
Pseudorandomness
A distribution is considered pseudorandom if no efficient computation can distinguish it from the true uniform distribution by a non-negligibleadvantage. Formally, a family of distributions Dn is pseudorandom if for any polynomial size circuit C, and any ε inversely polynomial in n
- |Probx∈U [C(x)=1] − Probx∈D [C(x)=1] | ≤ ε.
Pseudorandom generators
A function Gl: {0,1}l → {0,1}m, where l < m is a pseudorandom generator if:
- Gl can be computed in time polynomial in l
- Gl(x) is pseudorandom, when x is uniformly random.
One additional pseudorandom bit implies polynomially more pseudorandom bits
It can be shown that if there is a pseudorandom generator Gl: {0,1}l → {0,1}l+1, i.e. a generator that adds only one pseudorandom bit, then for any m = poly(l), there is a pseudorandom generator G'l: {0,1}l → {0,1}m.
The idea of the proof is as follows: first s bits from uniform distribution Ul are picked and used as the seed to the first instance of Gl, which is known to be a pseudorandom generator. Next, the output of the first instance of Gl is divided into two parts: first l bits are fed into the second instance of Gl as a seed, while the last bit becomes the first bit of the output. Repeating this process for m times yields an output of m pseudorandom bits.
Se puede demostrar que tal G' l , que consta de m instancias de G l , es de hecho un generador pseudoaleatorio utilizando un enfoque híbrido y una prueba por contradicción como sigue:
Consideremos m+1 distribuciones intermedias H i : 0 ≤ i ≤ m , donde los primeros i bits se eligen de la distribución uniforme y los últimos m − i bits se eligen de la salida de G' l . Por lo tanto, H 0 es la salida completa de G' l y H m es una verdadera distribución uniforme U m . En consecuencia, las distribuciones H i y H i+1 se diferenciarán en un solo bit (bit número i +1).
Ahora bien, supongamos que G' l no es una distribución pseudoaleatoria; es decir, existe algún circuito C que puede distinguir entre G' l y U m con una ventaja ε = 1/ poly ( l ). En otras palabras, este circuito puede distinguir entre H 0 y H m . Por lo tanto, existe tal i tal que el circuito C puede distinguir entre H i y H i+1 por al menos ε / m . Nótese que, dado que m es polinomial en l , entonces ε / m también es polinomial en l y sigue siendo una ventaja no despreciable.
Ahora bien, supongamos que se nos dan l+1 bits que son la salida de G l o extraídos de una distribución uniforme. Reutilicemos el método de construir grandes generadores pseudoaleatorios a partir de instancias de G l y construyamos una cadena de bits pseudoaleatorios de longitud m − i − 1 de la misma manera que se construyó G' l anteriormente, utilizando los primeros l bits dados como semilla. Luego, creemos una cadena que consta de i bits extraídos de la distribución uniforme, concatenados con el último de los bits dados, seguidos de los m − i − 1 bits creados. La salida resultante es H i o H i+1 , ya que el bit i+1 se extrae de la distribución uniforme o de G l . Dado que, por supuesto, podemos distinguir entre H i y H i+1 con una ventaja no despreciable , entonces podemos distinguir entre U y G l , lo que implica que G l no es un generador pseudoaleatorio, lo cual contradice la hipótesis. QED
Ahora, ilustremos que si existe, el circuito para distinguir entre G l y U l+1 no tiene que lanzar monedas al azar. Como mostramos anteriormente, si existe un circuito C para distinguir entre G' l y U m , donde m = poly ( l ), entonces existe un circuito C' para distinguir entre G l y U l+1 que utiliza i bits aleatorios. Para este circuito C' : | Prob u, s [ C' ( u 1 ,...,u i ,G l ( s )) = 1 ] − Prob u, y [ C' ( u 1 ,>,...,u i ,y ) = 1] | ≥ ε / m ,
donde u es una cadena de i bits aleatorios uniformes, s es una cadena de l bits aleatorios uniformes e y es una cadena de l + 1 bits aleatorios uniformes.
Entonces,
Prob u [ | Prob s [ C' ( u 1 ,...,u i ,G l ( s )) = 1] - Prob y [ C' ( u 1 ,...,u i ,y ) = 1] | ] ≥ ε / m ;
Lo que significa que existe una cadena fija u de i bits que puede usarse como un "consejo" al circuito C' para distinguir entre G l y U l+1 .
Existencia de generadores pseudoaleatorios
La existencia de generadores pseudoaleatorios está relacionada con la existencia de funciones unidireccionales y predicados de núcleo duro . Formalmente, los generadores pseudoaleatorios existen si y solo si existen funciones unidireccionales, o
PRG ↔ OWF
Definiciones
Funciones unidireccionales
Intuitivamente , las funciones unidireccionales son funciones fáciles de calcular y difíciles de invertir. En otras palabras, la complejidad (o tamaño del circuito) de la función es mucho menor que la de su inversa. Formalmente: Una función ƒ: {0,1} n → {0,1} n es ( S , ε ) unidireccional si para cualquier circuito C de tamaño ≤ S ,
Prob[ƒ( C (ƒ( x ))) = ƒ( x )] ≤ ε .
Además, ƒ es una función unidireccional si
- ƒ se puede calcular en tiempo polinomial
- ƒ es ( poli ( n ), 1/ poli ( n )) unidireccional
predicado de extremo duro
Función B : {0,1} n → {0,1} es un predicado de núcleo duro para la función ƒ si
- B se puede calcular en tiempo polinomial.
- para cualquier circuito C de tamaño polinomial y cualquier ε = 1/ poly ( n ) no despreciable , Prob x~U [ C (ƒ( x )) = B ( x )] ≤ 1/2+ ε
En otras palabras, es difícil predecir B ( x ) a partir de la función ƒ( x ).
Prueba
Aquí se presenta un resumen de la demostración. Para ver las demostraciones detalladas, consulte las referencias.
PRG → OWF
Consideremos un generador pseudoaleatorio G l : {0,1} l → {0,1} 2l . Creemos la siguiente función unidireccional ƒ: {0,1} n → {0,1} n que utiliza la primera mitad de la salida de G l como su salida. Formalmente,
ƒ( x , y ) → G l ( x )
Una observación clave que justifica dicha selección es que el tamaño del universo de preimagen es 2 n y es una fracción insignificante de la imagen de la función de tamaño 2 2n .
Para demostrar que ƒ es efectivamente una función unidireccional, construyamos un argumento por contradicción. Supongamos que existe un circuito C que invierte ƒ con ventaja ε :
Problema[ƒ( C (ƒ( x , y ))) = ƒ( x , y )] > ε
Entonces podemos crear el siguiente algoritmo que distinguirá G l de la distribución uniforme, lo cual contradice la hipótesis. El algoritmo tomaría como entrada z de 2n bits y calcularía ( x , y ) = C ( z ). Si G l ( x ) = z , el algoritmo aceptaría; de lo contrario, rechazaría.
Ahora bien, si z se extrae de una distribución uniforme, la probabilidad de que el algoritmo anterior lo acepte es ≤ 1/2 l , ya que el tamaño de la preimagen es 1/2 l del tamaño de la imagen. Sin embargo, si z se extrae de la salida de G l, entonces la probabilidad de aceptación es > ε por la suposición de la existencia del circuito C. Por lo tanto, la ventaja que tiene el circuito C para distinguir entre la distribución uniforme U y la salida de G l es > ε − 1/2 l , lo cual no es despreciable y, por lo tanto, contradice nuestra suposición de que G l es un generador pseudoaleatorio. QED
OWF → PRG
Para este caso demostramos una versión más débil del teorema:
Permutación unidireccional → generador pseudoaleatorio
Una permutación unidireccional es una función unidireccional que también es una permutación de los bits de entrada. Un generador pseudoaleatorio se puede construir a partir de una permutación unidireccional ƒ de la siguiente manera:
G l : {0,1} l →{0,1} l +1 = ƒ( x ). B ( x ), donde B es el predicado de núcleo duro de ƒ y "." es el operador de concatenación. Nótese que, según el teorema demostrado anteriormente, solo es necesario mostrar la existencia de un generador que añada un único bit pseudoaleatorio.
Predicado de núcleo duro → PRG
Primero, demostremos que si B es un predicado de núcleo duro para ƒ, entonces G l es efectivamente pseudoaleatorio. Nuevamente, utilizaremos un argumento por contradicción.
Supongamos que G l no es un generador pseudoaleatorio; es decir, existe un circuito C de tamaño polinomial que distingue a G l ( x ) =ƒ( x ). B ( x ) de U l+1 con ventaja ≥ ε , donde ε no es despreciable. Nótese que, dado que ƒ( x ) es una permutación, entonces si x se extrae de una distribución uniforme, entonces también si ƒ( x ). Por lo tanto, U l+1 es equivalente a ƒ( x ). b , donde b es un bit extraído independientemente de una distribución uniforme. Formalmente,
Prob x~U [ C ( G ( x ))=1] − Prob x~U,b~U [ C ( xb )=1] ≥ ε
Construyamos el siguiente algoritmo C' :
1. Dado z=f(x), adivina el bit b. 2. Ejecutar C en zb 3. SI C(zb)=1 4. Salida b 5. DE LO CONTRARIO 6. Salida 1-b
Dado el resultado de ƒ, el algoritmo primero adivina el bit b lanzando una moneda al azar, es decir , Prob[ b =0] = Prob[ b =1] = 0.5. Luego, el algoritmo (circuito) C se ejecuta en f(x).b y si el resultado es 1, entonces se muestra b , de lo contrario se devuelve el inverso de b .
Entonces, la probabilidad de que C' adivine B ( x ) correctamente es:
Prob x~U [ C' ( z )= B ( x )] =
Prob[ b = B ( x ) ∧ C ( zb )=1] + Prob[ b ≠ B ( x ) ∧ C ( zb )=0] =
Prob[ b = B ( x )]⋅Prob[ C ( zb )=1 | b = B ( x )] + Prob[ b ≠ B ( x )]⋅Prob[ C ( zb )=0 | b ≠ B ( x )] =
1/2⋅Prob[ C ( zb )=1 | b = B ( x )] + 1/2⋅Prob[ C ( zb )=0 | b ≠ B ( x )] =
(1 − 1/2)⋅Prob[ C ( zb )=1 | b = B ( x )] + 1/2⋅(1 − Prob[ C ( zb )=1 | b ≠ B ( x )]) =
1/2+Prob z.b~G(x) [ C ( zb )=1] − 1/2⋅(Prob[ C ( zb )=1 | b = B ( x )]+Prob[ C ( zb )=1 | b ≠ B ( x )]) =
1/2+Prob z.b~G(x) [ C ( zb )=1] − Prob z.b~U [ C ( zb )=1] ≥ 1/2+ ε
Esto implica que el circuito C' puede predecir B ( x ) con una probabilidad mayor que 1/2 + ε , lo que significa que B no puede ser un predicado fundamental para ƒ y la hipótesis queda refutada. QED
OWP → predicado de núcleo duro
El esquema de la demostración es el siguiente:
Si ƒ{0,1} n →{0,1} n es una permutación unidireccional, entonces también lo es ƒ'{0,1} 2n →{0,1} 2n , donde ƒ'( x , y )=ƒ( x ). y por definición. Entonces B ( x , y )= x ⋅ y es un predicado de núcleo duro para ƒ', donde ⋅ es un producto escalar de vectores . Para demostrar que es de hecho de núcleo duro, supongamos lo contrario y mostremos una contradicción con la hipótesis de que ƒ sea unidireccional. Si B no es un predicado de núcleo duro, entonces existe un circuito C que lo predice, por lo que
Prob x,y [ C (ƒ( x ), y )= x ⋅ y ] ≥ 1/2+ ε . Ese hecho puede usarse para recuperar x construyendo ingeniosamente permutaciones y que aíslen bits en x . De hecho, para una fracción constante de x , existe un algoritmo de tiempo polinomial que enumera O (1/ ε 2 ) candidatos que incluyen todos los x válidos . Por lo tanto, un algoritmo puede invertir ƒ( x ) en tiempo polinomial para una fracción no despreciable de x , lo que contradice la hipótesis.
Referencias
- W. Diffie, ME Hellman. "Nuevas direcciones en criptografía". IEEE Transactions on Information Theory , IT-22, págs. 644–654, 1976.
- AC Yao. "Teoría y aplicación de las funciones de puerta trasera". XXIII Simposio IEEE sobre Fundamentos de la Informática , págs. 80-91, 1982.
- M. Blum y S. Micali "Cómo generar secuencias criptográficamente seguras de bits pseudoaleatorios". SIAM Journal on Computing , vol. 13, págs. 850-864, 1984.
- J. Hastad, R. Impagliazzo, LA Levin y M. Luby. "Un generador pseudoaleatorio a partir de cualquier función unidireccional". SIAM Journal on Computing , vol. 28, n.º 4, págs. 1364-1396, 1999.
- Pseudoaleatoriedad
- Teoremas en la teoría de la complejidad computacional