Truth tables of word oracles #
A distinguisher can read the truth table of a word oracle on few inputs: on the 2 ^ m words of
length n whose first n - m bits are false (tableQueries), the first bits of the replies
form the truth table of a Boolean function on m inputs, the restriction of the oracle
(restriction, map_tableQueries). Asking for it is strict oracle PPT
(isOraclePPTOn_queryTable).
The restriction of a pseudorandom family is simple: a keyed family computable in polynomial time
has polynomial-size circuits, uniformly in the key, so its restrictions do too
(exists_complexity_restriction_le). The restriction of a random function is a uniformly random
Boolean function (uniformOfFintype_map_restrictTable). These are the two halves of the
natural-property distinguisher of Kabanets and Cai [KC00], in the spirit of Razborov and
Rudich [RR97], assembled in Complexity.Crypto.Computational.OneWay.MCSP; all
declarations here live in the namespace Cslib.Crypto.KabanetsCai.
The truth table lists the values in the order of Cslib.BitString.equivFin, which is the order of
the enumeration Cslib.BitString.enumList (Cslib.BitString.enumList_eq_ofFn).
Main definitions #
Cslib.Crypto.KabanetsCai.queryTable: ask a word oracle on a list of words and collect the first reply bits.Cslib.Crypto.KabanetsCai.tableQueries: the words of lengthnwithn - mleadingfalsebits.Cslib.Crypto.KabanetsCai.restriction: the Boolean function a word function computes on those words.Cslib.Crypto.KabanetsCai.restrictTable: the restriction of a finite random-function table.
Main results #
Cslib.Crypto.KabanetsCai.isOraclePPTOn_queryTable,Cslib.Crypto.KabanetsCai.interpret_queryTable: asking for a table is strict oracle PPT, and against a deterministic oracle returns the first reply bits.Cslib.Crypto.KabanetsCai.map_tableQueries: the first reply bits form the truth table of the restriction.Cslib.Crypto.KabanetsCai.exists_complexity_restriction_le: restrictions of a polynomial-time keyed family have polynomial circuits, uniformly in the key.Cslib.Crypto.KabanetsCai.restriction_randomFunctionOracle,Cslib.Crypto.KabanetsCai.uniformOfFintype_map_restrictTable: a random function restricts to a uniformly random Boolean function.
References #
Asking an oracle for a truth table #
Ask the oracle every word of the list, in order, and return the first bits of the replies,
false for an empty reply.
Instances For
Asking for a table is strict oracle PPT: each step copies one word onto the query buffer and reads one reply bit.
Against a deterministic oracle, queryTable returns the first bits of the replies.
Restrictions of word functions #
The queries at arity m: the 2 ^ m words of length n with n - m leading false bits,
in the order of Cslib.BitString.enumList.
Instances For
The first bits of the answers of a word function to the queries, in order, form the truth table of its restriction.
Restrictions of a polynomial-time keyed family have polynomial circuits. For one constant
c, every key of length n and every m ≤ n, the restriction of the family with that key has a
circuit with at most c (3 n + 2) ^ c + 2 gates: a circuit for the first output bit on inputs of
length 3 n + 1, with the key and the leading false bits substituted.
Reading the first bit of a table at the words of length n with n - m leading false
bits is additive in the table.
Instances For
A random function restricts to a uniformly random function.