4 ms·
VN extrator is a specific case of a more general idea: When you independently (hard assumption of VN extractor) draw M times with N possibilities then you can
by nullc 1y ago
VN extrator is a specific case of a more general idea: When you independently (hard assumption of VN extractor) draw M times with N possibilities then you can extract entropy from their permutation.
Assign some scheme for converting permutations to an index.
Then get uniform bits out, maintain two variables: one is the product of the number of permutations, the other gets multiplied by the number of permutations and the index added. Whenever the number of possibilities is divisible by two, output the LSB of the index accumulator and halve the number of possibilities.
Size up your groups and accumulators and you can get arbitrarily high extraction rates.
Doing it efficiently and in constant time (e.g. without divisions) is the more exciting trick. A colleague and I managed an extractor for the binary case that packs takes 10+3N multiplies and N CTZs to pack N bits (giving an exact invertible encoding when bits choose ones is < 2^64).