Deje ser una constante fija. Dado un número entero , queremos construir una permutación tal que:n σ ∈ S n
La construcción utiliza tiempo y espacio constantes (es decir, el preprocesamiento requiere tiempo y espacio constantes). Podemos usar la aleatorización.
Dado , se puede calcular en tiempo y espacio constantes.σ ( i )
La permutación es -wise independiente, es decir, para todos , las variables aleatorias son independientes y están uniformemente distribuidas en .k i 1 , ... , i k σ ( i 1 ) , ... , σ ( i k ) [ n ]
Lo único que sé actualmente es que usa espacio logarítmico y tiempo de cálculo polinómico por valor de usando generadores pseudoaleatorios.
Antecedentes
Necesitaba algo como lo anterior para un trabajo reciente, y terminé usando algo más débil: permití entradas repetidas y verifiqué que todos los números que necesitaba estaban cubiertos (es decir, un desastre). Específicamente, obtuve una secuencia independiente en que se puede calcular en tiempo y usando espacio constante. Sería bueno tener algo más simple, o simplemente saber lo que se sabe.O ( 1 )
Supuestos
Estoy asumiendo el modelo de RAM de costo unitario. Cada palabra en la memoria / registro es de tamaño , y cada operación aritmética básica toma tiempo. Estoy dispuesto a asumir cualquier supuesto criptográfico razonable (función unidireccional, registro discreto, etc.).O ( 1 )
Cosita actual
Como lo sugirió Kaveh, aquí está el truco "fácil" que tengo actualmente (esto es bastante estándar): Let ser un polinomio sobre un primer (piense en como ). Aquí, cada se muestrea de manera uniforme y aleatoria a partir de . Es fácil ver que es una secuencia que tiene repeticiones, pero es independiente en , y aproximadamente de los números de aparecen en esta secuencia. Sin embargo, tenga en cuenta que, dado que los números se repiten en esta secuencia, no es una permutación.
Respuestas:
Si está dispuesto a utilizar técnicas criptográficas y confiar en suposiciones criptográficas y aceptar una noción computacional de independencia -wise, es posible que el cifrado de preservación de formato (FPE) pueda ser útil. Permítanme esbozar algunas construcciones diferentes de este tipo.k
(Por "noción computacional de independencia -wise", quiero decir que ningún adversario con un tiempo de ejecución razonable puede distinguir de una permutación independiente -wise, excepto con una ventaja insignificante. Estos esquemas no serán teóricamente información - sabiamente independientes, pero serán "esencialmente tan buenos como -wise independientes", suponiendo que todo el cálculo a la vista esté limitado computacionalmente).σ k k kk σ k k k
Un esquema práctico, para menornorte
En particular, use una construcción FPE para construir un cifrado de bloque (permutación pseudoaleatoria, PRP) con la firma . Para valores de que son menores que , probablemente el mejor esquema es usar una construcción Feistel con un número fijo de rondas (digamos, 10) y una función de ronda que es un PRF derivado de AES. El tiempo de ejecución para evaluar para un solo valor de será invocaciones AES. Cada invocación de AES se ejecuta en tiempo constante.n 2 128 σ k ( i ) i O ( 1 )σk: [ n ] → [ n ] norte 2128 σk( i ) yo O ( 1 )
Finalmente, tenga en cuenta que cualquier permutación pseudoaleatoria es automáticamente independiente de . En particular, el teorema de Luby-Rackoff garantiza que con al menos 3 rondas, obtendrá una independencia (aproximada) way si , suponiendo que AES sea seguro. Con más rondas, es probable que haya un resultado más sólido, pero los teoremas son más difíciles de probar y se vuelven más técnicos, aunque se cree ampliamente que un número constante de rondas debería ser suficiente para obtener una seguridad extremadamente alta (y, por lo tanto, una esencialmente perfecta ) sabia independencia para todos los valores razonables de ).k k « n 1 / 4 k kk k k ≪ n1 / 4 k k
Generalizando esto a mayornorte
Cuando es más grande, las cosas se vuelven más extrañas, porque el modelo de RAM de costo unitario implícitamente permite hasta paralelismo de forma gratuita. No me queda claro cuál debería ser el costo de los PRP en este modelo (¿constante? ¿Aumentando con ? No lo sé).O ( lg n ) nnorte O ( lgn ) norte
Una tercera construcción posible
Sea un módulo RSA que sea un poco más grande que . Defina como el subgrupo de contiene los elementos cuyo símbolo de Jacobi es . Definir por2 n G ( Z / m Z ) ∗ + 1 π : G → Gmetro 2 n sol ( Z / m Z )∗ + 1 π: G → G
A continuación, defina porσ
donde son funciones hash independientes bijectivas 2 independientes.F, g
Sospecho que esta construcción tiene la posibilidad de ser (aproximadamente) independiente en , bajo un supuesto similar a RSA. No tengo pruebas, solo una intuición. La principal regularidad conocida de es que es multiplicativamente homomórfica: . No conozco ninguna otra regularidad relevante, incluso la dependencia -wise. La aplicación de un hash independiente de 2 antes y después de elimina de manera comprobable esta regularidad: si es independencia way, excepto para la homomorfia multiplicativa, entonces los hashes independientes de 2 sabios parecen que deberían proporcionar completoπ π ( x y ) = π ( x ) π ( y ) k π π k k kk π π( x y) = π( x ) π( y) k π π k k -a igual independencia. Pero esto es súper esquemático y a años luz de una prueba de independencia -wise.k
Tenga en cuenta que necesitará usar técnicas de cifrado para preservar el formato (por ejemplo, la técnica de ciclado) para asegurarse de que funcione en lugar de en . Este esquema debe tener un tiempo de ejecución (esperado) para evaluar en una entrada dada , con una elección adecuada de .G ( Z / m Z ) O ( 1 ) σ ( i ) i f , gF, g sol ( Z / m Z ) O ( 1 ) σ( i ) yo F, g
Además, en cierto sentido, esta construcción candidata está abusando del modelo de RAM de costo unitario al confiar en la capacidad de operar en números de bits en tiempo , para valores grandes de , lo que no es realmente razonable en práctica. (Esta última construcción no será segura para valores pequeños de , por lo que este último enfoque se basa fundamentalmente en el régimen grande para que tenga la oportunidad de funcionar ... exactamente el régimen donde el modelo de RAM de costo unitario es más dudoso.)O ( 1 ) n n nlgnorte O ( 1 ) norte norte norte
Admito libremente que este es un poco exagerado, pero lo menciono en caso de que genere algo de inspiración para una mejor solución.
Por ejemplo, podría ser posible reemplazar por un grupo de curvas elípticas adecuado, de modo que tengamos sobre (recuerde que los grupos de curvas elípticas usualmente usan notación aditiva en lugar de notación multiplicativa). Lo bueno de esto es que no es totalmente irracional suponer que, si el grupo de curva elíptica se elige correctamente, se comportará como un "grupo de recuadro negro", lo que creo que podría implicar efectivamente que será de manera independiente "excepto por los efectos implicados por el homomorfismo multiplicativo". No tengo una construcción completa lista para proponer (la pieza que falta es cómo elegirπ ( x ) = e x G G G π k G f , g ksol π( x ) = e x sol sol sol π k sol y cómo construir cómo demostrar -wise independencia de esto), pero podría ser posible juntar las piezas de alguna manera.F, g k
fuente