¿Podemos construir una permutación independiente k-sabia en [n] usando solo tiempo y espacio constantes?

10

Deje ser una constante fija. Dado un número entero , queremos construir una permutación tal que:n σ S nk>0 0norteσSnorte

  1. La construcción utiliza tiempo y espacio constantes (es decir, el preprocesamiento requiere tiempo y espacio constantes). Podemos usar la aleatorización.

  2. Dado , se puede calcular en tiempo y espacio constantes.σ ( i )yo[norte]σ(yo)

  3. 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 ]σkyo1,...,yokσ(yo1),...,σ(yok)[norte]

Lo único que sé actualmente es que usa espacio logarítmico y tiempo de cálculo polinómico por valor de usando generadores pseudoaleatorios.σ(yo)


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 )kO(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 )O(Iniciar sesiónnorte)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.σ(X)=yo=0 0k+2unayoXyomodificaciónpagpagpagnorteunayo[pag]σ(1),σ(2),...,σ(norte)knorte(1-1/ /mi)[norte]

Sariel Har-Peled
fuente
1
No. en tiempo constante, solo puede dar una cantidad constante de salida, por lo que para cualquier algoritmo de tiempo constante, para suficientemente grande , los soportes de las variables aleatorias en la condición 3 serán subconjuntos estrictos de . n[n]
2
Requiero una cantidad constante de cálculo por entrada de la permutación, por lo que el tiempo de cálculo general puede ser lineal para toda la permutación.
Sariel Har-Peled
1
En cuanto al espacio, supongo que el modelo de palabra, cada palabra ocupa una cantidad constante de espacio, incluso si tiene un número logarítmico de bits.
Sariel Har-Peled
1
Solución parcial: supongamos que es una potencia principal . Deje que sea ​​un campo con . Establezca para aleatorio con . Entonces es una permutación independiente por pares en elementos que se pueden calcular en "tiempo constante". Quizás esto generaliza. k = 2 F | F | = n σ ( x ) = a x + b a , b F a 0 σ nnk=2F|F|=nσ(x)=ax+ba,bFa0σn
Thomas
1
Yeh Lo sabía ;). El problema es que tiene que ser mucho más grande, y solo los polinomios lineales son permutaciones, no los de mayor grado. k
Sariel Har-Peled

Respuestas:

3

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σkkk

Un esquema práctico, para menorn

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]n2128σk(i)yoO(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 kkkknorte1/ /4 4kk

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 ) nnorteO(lgnorte)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 Gmetro2nortesol(Z/ /metroZ)+1π:solsol

π(X)=X3modificaciónmetro.

A continuación, defina porσ

σ(yo)=sol(π(F(yo)),

donde son funciones hash independientes bijectivas 2 independientes.F,sol

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ππ(Xy)=π(X)π(y)kππkk-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,solsol(Z/ /metroZ)O(1)σ(yo)yoF,sol

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 nlgnorteO(1)nortenortenorte

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)=miXsolsolsolπksoly cómo construir cómo demostrar -wise independencia de esto), pero podría ser posible juntar las piezas de alguna manera.F,solk

DW
fuente
Esto es muy interesante: viajaré durante las próximas semanas, pero lo investigaría cuando regrese. ¡Gracias!
Sariel Har-Peled