Possiamo costruire una permutazione indipendente dal punto di vista k su [n] usando solo tempo e spazio costanti?


10

Sia k>0 una costante fissa. Dato un numero intero n , vogliamo costruire una permutazione σSn tale che:

  1. La costruzione utilizza tempo e spazio costanti (ovvero la preelaborazione richiede tempo e spazio costanti). Possiamo usare la randomizzazione.

  2. Dato i[n] , σ(i) può essere calcolato in tempo e spazio costanti.

  3. La permutazione σ IS k -wise indipendente, cioè per tutti i1,,ik , le variabili casuali σ(i1),,σ(ik) sono indipendenti e uniformemente distribuita su [n] .

L'unica cosa che conosco attualmente usa lo spazio logaritmico e il tempo di calcolo polinomiale per valore di σ(i) usando generatori pseudo-casuali.


sfondo

Avevo bisogno di qualcosa di simile a quanto sopra per alcuni lavori recenti e ho finito per usare qualcosa di più debole: ho permesso voci ripetute e verificato che tutti i numeri di cui avevo bisogno erano coperti (cioè, un casino). In particolare, ho ottenuto una sequenza indipendente k -wise che può essere calcolata nel tempo O(1) e usando lo spazio costante. Sarebbe bello avere qualcosa di più semplice, o semplicemente sapere cosa si sa.

ipotesi

Sto assumendo il modello di RAM a costo unitario. Ogni parola nella memoria / registro ha dimensione e ogni operazione aritmetica di base richiede O ( 1 ) . Sono disposto ad assumere qualsiasi ragionevole presupposto crittografico (funzione unidirezionale, registro discreto, ecc.).O(logn)O(1)

Cosa attuale

σ(x)=i=0k+2aiximodpppnai[p]σ(1),σ(2),,σ(n)kn(11/e)[n] appare in questa sequenza. Si noti, tuttavia, che poiché i numeri si ripetono in questa sequenza, non è una permutazione.


1
No. tempo costante, puoi solo fornire una quantità costante di output, quindi per qualsiasi algoritmo a tempo costante, per sufficientemente grande , i supporti delle variabili casuali nella condizione 3 saranno sottoinsiemi rigorosi di . n[n]

2
Richiedo una quantità costante di calcolo per ogni voce della permutazione, quindi il tempo di calcolo complessivo può essere lineare per l'intera permutazione.
Sariel Har-Peled,

1
Per quanto riguarda lo spazio - presumo il modello di parole - quindi ogni parola occupa una quantità costante di spazio anche se ha un numero logaritmico di bit.
Sariel Har-Peled,

1
Soluzione parziale: supponiamo che sia una potenza primaria e . Sia un campo con . Impostare per casuale con . Quindi è una permutazione indipendente a coppie su elementi che possono essere calcolati in "tempo costante". Forse questo generalizza. nk=2F|F|=nσ(x)=ax+ba,bFa0σn
Thomas

1
Yeh. Lo sapevo;). Il problema è che deve essere molto più grande e solo i polinomi lineari sono permutazioni, non quelli di grado superiore. k
Sariel Har-Peled,

Risposte:


3

Se si desidera utilizzare tecniche crittografiche e fare affidamento su ipotesi crittografiche e accettare una nozione computazionale di indipendenza -wise, è possibile che la crittografia (FPE) per la conservazione del formato possa essere utile. Permettetemi di disegnare alcune diverse costruzioni di questo tipo.k

(Per "nozione computazionale dell'indipendenza -wise", intendo che nessun avversario con un ragionevole tempo di esecuzione può distinguere da una permutazione indipendente -wise, tranne che con un vantaggio trascurabile. Questi schemi non saranno teoricamente informazioni - saggiamente indipendente, ma saranno "essenzialmente buoni quanto indipendenti dal punto di vista ", assumendo che tutto il calcolo in vista sia limitato dal punto di vista computazionale.)kσkkk

Uno schema pratico, per i più piccolin

In particolare, utilizzare una costruzione FPE per creare un codice a blocchi (permutazione pseudocasuale, PRP) con la firma . Per valori di inferiori a , probabilmente lo schema migliore è utilizzare una costruzione Feistel con un numero fisso di round (diciamo, 10) e una funzione round che è un PRF derivato da AES. Il tempo di esecuzione per valutare per un singolo valore di sarà invocazioni AES. Ogni invocazione AES viene eseguita a tempo costante.σk:[n][n]n2128σk(i)iO(1)

Infine, nota che qualsiasi permutazione pseudocasuale è automaticamente indipendente dal punto di vista . In particolare, il teorema di Luby-Rackoff garantisce che con almeno 3 round, si ottiene (approssimativamente) l' indipendenza -wise se , supponendo che AES sia sicuro. Con più round, è probabile che ci sarà un risultato più forte, ma i teoremi sono più difficili da dimostrare e diventare più tecnici, anche se si ritiene che un numero costante di round dovrebbe essere sufficiente per ottenere una sicurezza estremamente elevata (e quindi essenzialmente perfetto - saggia indipendenza per tutti i valori ragionevoli di ).kkkn1/4kk

Generalizzando questo a più granden

Quando è più grande, le cose diventano più strane, perché il modello RAM a costo unitario consente implicitamente gratuitamente fino a parallelismo. Non mi è chiaro quale debba essere il costo dei PRP in questo modello (costante? Crescente con ? Non lo so).nO(lgn)n

Una terza possibile costruzione

Sia un modulo RSA leggermente più grande di . Definisci come sottogruppo di contenente gli elementi il ​​cui simbolo Jacobi è . Definisci dim2nG(Z/mZ)+1π:GG

π(x)=x3modm.

Quindi, definire daσ

σ(i)=g(π(f(i)),

dove sono funzioni di hash casuali indipendenti dal biettivo 2.f,g

Ho il sospetto che questa costruzione abbia la possibilità di essere (approssimativamente) -wise indipendente, sotto un'ipotesi simile a RSA. Non ho prove, solo un'intuizione. La principale regolarità nota di è che è moltiplicativamente omomorfa: . Non conosco altre regolarità rilevanti, nemmeno la dipendenza -wise. Applicare un hash indipendente da 2 prima e dopo elimina in modo evidente questa regolarità: se è indipendenza way tranne per l'omomorficità moltiplicativa, allora gli hash indipendenti 2-saggi sembrano come se dovessero fornire completokππ(xy)=π(x)π(y)kππkk-indipendenza. Ma questo è super-abbozzato e anni luce da una prova di indipendenza -wise.k

Tieni presente che dovrai utilizzare tecniche di crittografia che preservano il formato (ad esempio, la tecnica del ciclismo) per assicurarti che funzioni su anziché su . Questo schema dovrebbe avere il tempo di esecuzione (previsto) per valutare corrispondenza di un dato input , con un'opportuna scelta di .f,gG(Z/mZ)O(1)σ(i)if,g

Inoltre, in un certo senso questa costruzione candidata sta abusando del modello di RAM a costo unitario basandosi sulla capacità di operare su numeri -bit nel tempo , per grandi valori di , che non è davvero ragionevole in pratica. (Quest'ultima costruzione non sarà sicuro per i piccoli valori di , quindi questo ultimo approccio si basa fondamentalmente sulla larga regime per poter avere la possibilità di lavorare ... esattamente il regime in cui il modello di RAM unità-costo è più dubbia.)lgnO(1)nnn

Ammetto liberamente che questo è piuttosto lungo, ma lo menziono nel caso in cui scateni qualche ispirazione per una soluzione migliore.

Ad esempio, potrebbe essere possibile sostituire con un gruppo di curve ellittiche adatto, in modo che abbiamo su (ricorda che i gruppi di curve ellittiche di solito usano la notazione additiva piuttosto che la notazione moltiplicativa). La cosa buona di questo è che non è del tutto irragionevole ipotizzare che, se il gruppo di curve ellittiche è scelto correttamente, si comporterà come un "gruppo di scatole nere", che penso potrebbe implicare che sarà - indipendente dal senso "tranne per gli effetti implicati dall'omomorfismo moltiplicativo". Non ho una costruzione completa pronta da proporre (il pezzo mancante è come scegliereGπ(x)=exGGGπkGe come costruire come dimostrare -wise indipendenza da questo), ma potrebbe essere possibile mettere insieme i pezzi in qualche modo.f,gk


Questo è molto interessante - viaggerò per le prossime settimane, ma lo esaminerei quando torno. Grazie!
Sariel Har-Peled,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.