Generating k -independent variables in constant time Tobias Christiani, Rasmus Pagh IT University of Copenhagen Generating k -independent variables in constant time 1
Introduction Random seed 11010100 01101101 Generator Pseudorandom output sequence 00011011 11111100 10010101 11010001 11100110 Generating k -independent variables in constant time 2
k -independent variables Generator output: • Sequence of k -independent variables over a finite field F Generating k -independent variables in constant time 3
k -independent variables Generator output: • Sequence of k -independent variables over a finite field F Example field: • The set of integers modulo a prime F p Y p Y 2 Y 3 · · · Y 1 Generating k -independent variables in constant time 3
k -independent variables Generator output: • Sequence of k -independent variables over a finite field F Example field: • The set of integers modulo a prime F p Y p Y 2 Y 3 · · · Y 1 • k -independence: – Y i uniformly distributed over F p – The variables at every set of k distinct positions are independent Pr[ Y i 1 = y 1 , Y i 2 = y 2 , . . . , Y i k = y k ] = p � k Generating k -independent variables in constant time 3
k -independent variables Generator output: • Sequence of k -independent variables over a finite field F Example field: • The set of integers modulo a prime F p Y p Y 2 Y 3 · · · Y 1 • k -independence: – Y i uniformly distributed over F p – The variables at every set of k distinct positions are independent Pr[ Y i 1 = y 1 , Y i 2 = y 2 , . . . , Y i k = y k ] = p � k • Many properties of full randomness for k ⌧ p Generating k -independent variables in constant time 3
Model and problem Model: • Word-RAM model – Elements of F p fit in a single word – Constant time addition and multiplication in F p Generating k -independent variables in constant time 4
Model and problem Model: • Word-RAM model – Elements of F p fit in a single word – Constant time addition and multiplication in F p Problem: • Construct a data structure that outputs a k -independent sequence over F p , one variable at the time – Low time complexity of generating next element – Space usage and initialization time close to k Generating k -independent variables in constant time 4
Result Main result Explicit data structure for generating the next element of a k -independent sequence in worst case constant time using space and initialization time k poly log k Generating k -independent variables in constant time 5
Result Main result Explicit data structure for generating the next element of a k -independent sequence in worst case constant time using space and initialization time k poly log k • Constant time generation for every choice of k almost as large as p Generating k -independent variables in constant time 5
Result Main result Explicit data structure for generating the next element of a k -independent sequence in worst case constant time using space and initialization time k poly log k • Constant time generation for every choice of k almost as large as p • The generator always outputs a k -independent sequence Generating k -independent variables in constant time 5
Result Main result Explicit data structure for generating the next element of a k -independent sequence in worst case constant time using space and initialization time k poly log k • Constant time generation for every choice of k almost as large as p • The generator always outputs a k -independent sequence • Space in bits: ( k poly log k ) · log p – Logarithmic dependence on length of output sequence Generating k -independent variables in constant time 5
Result Main result Explicit data structure for generating the next element of a k -independent sequence in worst case constant time using space and initialization time k poly log k • Constant time generation for every choice of k almost as large as p • The generator always outputs a k -independent sequence • Space in bits: ( k poly log k ) · log p – Logarithmic dependence on length of output sequence C OMPARISON WITH PREVIOUS RESULTS Reference Space Generation time O (log 2 k log log k ) O ( k log k ) Multipoint evaluation [GG’13] O ( p ε ) , ε > 0 O (1) Expander hashing [Siegel’89] O ( k poly log k ) O (1) Our generator Generating k -independent variables in constant time 5
k -independent hash functions • Data structure for random access to a k -independent sequence Generating k -independent variables in constant time 6
k -independent hash functions • Data structure for random access to a k -independent sequence Polynomial hash functions [Joffe’74, CW’81] • Choose k random elements from F p and use them as coefficients of a polynomial h ( x ) = a 0 + a 1 x + a 2 x 2 + · · · + a k � 1 x k � 1 mod p Generating k -independent variables in constant time 6
k -independent hash functions • Data structure for random access to a k -independent sequence Polynomial hash functions [Joffe’74, CW’81] • Choose k random elements from F p and use them as coefficients of a polynomial h ( x ) = a 0 + a 1 x + a 2 x 2 + · · · + a k � 1 x k � 1 mod p • Polynomial hash function as a generator – Space k to store coefficients – Evaluation time O ( k ) h (0) h (1) h (2) · · · h ( p � 1) • Space usage near-optimal with respect to sequence length Generating k -independent variables in constant time 6
k -independent hashing: lower bound • What is the best time-space tradeoff we can hope for using hashing? Generating k -independent variables in constant time 7
k -independent hashing: lower bound • What is the best time-space tradeoff we can hope for using hashing? • Cell probe lower bound [Siegel’89] k -independent hash function h : F p ! F p Time t < k ) Space at least p 1 /t words Generating k -independent variables in constant time 7
k -independent hashing: lower bound • What is the best time-space tradeoff we can hope for using hashing? • Cell probe lower bound [Siegel’89] k -independent hash function h : F p ! F p Time t < k ) Space at least p 1 /t words • Constructions in the word-RAM model still far from lower bound Generating k -independent variables in constant time 7
k -generators • Data structure for sequential access to a k -independent sequence Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 2 . . . ? Hash function . . . Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 2 . . . ? Hash function . . . Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 Y 2 Y 2 . . . . . . ? Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 ? Y 2 Y 2 Hash function . . . . . . ? Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 ? Y 2 Y 2 Hash function . . . . . . ? Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 ? Y 2 Y 2 Hash function . . . . . . ? ? Hash function Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 ? Y 2 Y 2 Hash function . . . . . . ? ? Hash function Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
k -generators • Data structure for sequential access to a k -independent sequence • Circumvent hashing lower bound • Sequence of local hash functions evaluated over small domains Y 1 Y 1 ? Y 2 Y 2 Hash function . . . . . . ? ? Hash function Hash function . . . . . . Y p Y p Generating k -independent variables in constant time 8
Recommend
More recommend