Dejar el G ser una función polinómica del tiempo determinista del <&omega del N ; al <&omega del N ; con la función del estiramiento del l del
l : &rarr del N ; N,
de modo que si el x tiene n de la longitud entonces el G ( x ) tenga l ( n ) de la longitud. Entonces dejar el Gn ser la distribución en las secuencias del l ( n ) de la longitud definidas por la salida del G en una secuencia seleccionada aleatoriamente del n de la longitud seleccionado por la distribución del uniforme.
Entonces decimos que el G es un generador pseudoaleatorio si &isin del n del del l { Gn }; N
es el pseudoaleatorio.
En efecto, el G traduce una entrada al azar del n de la longitud a una salida pseudoaleatoria del l ( n ) de la longitud. El asumir l ( n ) del
l > n,
esto amplía una secuencia al azar (y pueden ser los tiempos múltiples aplicados, puesto que el Gn se puede substituir por la distribución del G ( G ( x ))).
A menudo, nos referimos no al comportamiento del G en todas las secuencias, pero solamente en secuencias de una cierta longitud prescribed. Este caso permite una definición levemente más fácil:
Un con el es un generador pseudoaleatorio si
el se pueden computar en , y
es pseudoaleatorio.
Es un problema abierto independientemente de si existen los generadores pseudoaleatorios. Se sabe que si existen las funciones unidireccionales o los predicados del núcleo duro, después existen los generadores pseudoaleatorios. También se sabe que si l ( n ) del
l > n,
hay un poco de otro generador pseudoaleatorio con l ( n ) del
l > p ( n )
para cualquie polinomio, p ( n ). Esto sigue del teorema siguiente:
Teorema: Si hay un entonces para cualquie , hay un
Los generadores pseudoaleatorios tienen usos numerosos. En criptografía, un uso simple está proporcionando un análogo eficiente de “una vez rellena”. Es bien sabido que para cifrar un mensaje m de una manera que el texto de cifra no proporciona ninguna información en el plaintext, la llave k usada debe ser al azar sobre secuencias de la longitud |m|. Entonces m puede ser cifrado vía el . Esta operación es muy costosa en términos de longitud dominante. La longitud dominante puede ser reducida si comprometemos en la seguridad semántica . Entonces, dado G, que se amplía por un , entonces una secuencia de los mensajes de de la longitud n pueden ser cifrados xor-ing cada uno con el área correspondiente de G (k) (inspirado la idea de los chipers de la corriente. Los generadores pseudoaleatorios se pueden también utilizar para construir sistemas criptográficos dominantes simétricos, donde cualquier número de mensajes polinómico se puede cifrar “con seguridad” bajo misma llave, es decir, el polinómico no es apriority sabido en la época de la generación dominante. Tal construcción se puede basar en una generalización de pseudo generadores al azar, llamada las funciones pseudoaleatorias. Una familia de las funciones pseudoaleatorias (PRF) es una colección de funciones afinadas eficientemente computables, que “actuar aleatoriamente” en la escena que ninguÌn algoritmo eficiente puede distinguir entre un oráculo a una función que corresponde a una llave al azar, y un oráculo a una función al azar. Ha sabido que si existen PRG, que así que hacer los PRF (para más detalles ver la función pseudoaleatoria ). Un uso de los PRF está a la teoría de aprendizaje de comprensión. Libremente discurso, dado una secuencia del e.c, la meta es encontrar eficientemente una representación sucinta de una función f fuera de una clase dada de funciones constantes con los ejemplos. Las familias del PRF (si existir) son un ejemplo natural de una clase de funciones con pequeño tamaño de la representación, pero no son aprendibles.
Otro uso está a los algoritmos derandomizing. Un generador pseudoaleatorio agradable del es un generador del número pseudaleatorio, ^n \ rightarrow \ {0.1 \} ^m de G:\ del