An explicit affine disperser #
For every input length N we fix the parameters of Ben-Sasson and Kopparty's construction
explicitly. With ℓ = ⌊log₂ N⌋:
L = ⌊ℓ / 3⌋(Cslib.AffineDisperser.Explicit.primeBound);- the field degree
nis the product of the primes chosen greedily, in increasing order, from the primes in(L, 4 L]with product at mostN / (ℓ + 1) ^ 2(Cslib.AffineDisperser.Explicit.degreePrimes,Cslib.AffineDisperser.Explicit.fieldDegree); F = 𝔽_{2 ^ n}with the monomial basis in roots of the irreducible polynomials of least code of the prime degrees (Cslib.AffineDisperser.compositeBasis); each of these polynomials is found by an exhaustive search over fewer than2 ^ (4 L + 1) ≤ 2 N ^ (4 / 3)codes;r = ⌊N / n⌋blocks ofnbits, read from the firstr ninput bits, block after block, each block in the mixed-radix order of the monomials (Cslib.AffineDisperser.explicitPos);t = ℓ + 1andμ = 1.
The function Cslib.AffineDisperser.explicitDisperser N : BitString N → Bool is
traceSym 1 r t on these blocks. Every prime factor of n exceeds L, so proper subfields of
F have at most 2 ^ s elements, s = ⌊n / (L + 1)⌋, and the function is nonconstant on every
affine subspace of BitString N of dimension greater than
d(N) = N - r n + r * max (r + 1) s + r * (r + 1) + n t + ⌊n r / t⌋
(Cslib.AffineDisperser.exists_explicitDisperser_ne), so it is an affine disperser for dimension
d(N) + 1 (Cslib.AffineDisperser.isAffineDisperser_explicitDisperser). Downstream, in the
computability layer, the function is shown not to depend on the roots chosen for the basis
(Cslib.AffineDisperser.traceSymBits_rootBasis_eq_explicitDisperser) and to be computable in
polynomial time (Cslib.AffineDisperser.computableTidilyInPolyTime_explicitDisperser).
Ben-Sasson and Kopparty take n prime and reach dimension 6 N ^ (4 / 5)
[BSK12]; the field then needs an irreducible polynomial of large prime degree,
which exhaustive search cannot find in polynomial time. The composite degree keeps every search
small at the price of the subfield term r s ≤ N / (L + 1), so our threshold is O(N / log N)
(Cslib.AffineDisperser.eventually_explicitThreshold_le). This is far from the best explicit
dispersers known: Li's dispersers work for dimension O(log N) [Li23].
Main definitions #
Cslib.AffineDisperser.Explicit.degreePrime: thej-th prime of the field degree onNbits.Cslib.AffineDisperser.Explicit.numBlocks: the number of blocksr = ⌊N / n⌋.Cslib.AffineDisperser.Explicit.symDegree: the degreet = ⌊log₂ N⌋ + 1of the elementary symmetric polynomial.Cslib.AffineDisperser.Explicit.subfieldExp: the subfield exponents = ⌊n / (L + 1)⌋.Cslib.AffineDisperser.ExplicitField: the field𝔽_{2 ^ n}of the explicit disperser onNbits.Cslib.AffineDisperser.ExplicitMonomial: the monomials indexing the basis ofExplicitField N.Cslib.AffineDisperser.explicitBasis: the monomial basis ofExplicitField N.Cslib.AffineDisperser.explicitDisperser: the explicit function onNbits.Cslib.AffineDisperser.explicitThreshold: the dimension thresholdd(N).
Main results #
Cslib.AffineDisperser.exists_explicitDisperser_ne:explicitDisperser Nis nonconstant on every affine subspace ofBitString Nof dimension greater thanexplicitThreshold N.Cslib.AffineDisperser.isAffineDisperser_explicitDisperser:explicitDisperser Nis an affine disperser for dimensionexplicitThreshold N + 1.
References #
The prime bound L = ⌊⌊log₂ N⌋ / 3⌋: the field degree is a product of primes in
(L, 4 L].
Instances For
The primes whose product is the field degree on N bits: chosen greedily, in increasing order,
from the primes in (L, 4 L] with product at most N / (⌊log₂ N⌋ + 1) ^ 2.
Instances For
The j-th prime of the field degree on N bits.
Instances For
The field degree n on N bits: the product of degreePrimes N.
Instances For
The number of blocks r = ⌊N / n⌋.
Instances For
The degree t = ⌊log₂ N⌋ + 1 of the elementary symmetric polynomial.
Instances For
The subfield exponent s = ⌊n / (L + 1)⌋: proper subfields of 𝔽_{2 ^ n} have at most
2 ^ s elements.
Instances For
Every member of degreePrimes N is a prime in (L, 4 L].
The primes in degreePrimes N are distinct.
Each degreePrime N j is prime.
Distinct indices give distinct primes: degreePrime N is injective.
The field degree is the product of the list degreePrimes N.
The field degree is nonzero.
The r blocks of n bits fit in the input: r n ≤ N.
Every prime factor of the field degree exceeds L.
The dimension threshold d(N) = N - r n + r * max (r + 1) s + r * (r + 1) + n t + ⌊n r / t⌋
of the explicit disperser on N bits.
Instances For
The field 𝔽_{2 ^ n} of the explicit disperser on N bits.
Instances For
The monomial basis of ExplicitField N in roots of the irreducible polynomials of least code of
the prime degrees.
Instances For
The input position of coordinate J of block i: blocks follow each other, and coordinates
within a block are numbered in the mixed-radix order of finPiFinEquiv.
Instances For
Distinct coordinates are read from distinct input positions: explicitPos N is injective.
The explicit affine disperser on N bits: Ben-Sasson and Kopparty's function
traceSym 1 r t on the r = numBlocks N elements of 𝔽_{2 ^ n}, n = fieldDegree N, read
from the first r n input bits in the monomial basis explicitBasis N, with
t = symDegree N.
Instances For
An explicit affine disperser, after [BenSassonKopparty2012, Theorem 7.3]:
explicitDisperser N is nonconstant on every affine subspace of BitString N of dimension greater
than explicitThreshold N.
The explicit function is an affine disperser for dimension explicitThreshold N + 1: it
is nonconstant on the image of every injective affine map from BitString (explicitThreshold N + 1)
(Cslib.BitString.IsAffineDisperser).