Constrained pseudorandom functions (introduced independently by Boneh and Waters (CCS 2013), Boyle, Goldwasser, and Ivan (PKC 2014), and Kiayias, Papadopoulos, Triandopoulos, and Zacharias (CCS 2013)), are pseudorandom functions (PRFs) that allow the owner of the secret key k k to compute a constrained key k f kf , such that anyone who possesses k f kf can compute the output of the PRF on any input x x such that f(x)=1 f(x)=1 for some predicate f f . The security requirement of constrained PRFs state that the PRF output must still look indistinguishable from random for any x x such that f(x)=0 f(x)=0 .
Boneh and Waters show how to construct constrained PRFs for the class of bit-fixing as well as circuit predicates. They explicitly left open the question of constructing constrained PRFs that are delegatable – i.e., constrained PRFs where the owner of k f kf can compute a constrained key k f ′ kf′ for a further restrictive predicate f ′ f′ . Boyle, Goldwasser, and Ivan left open the question of constructing constrained PRFs that are also verifiable. Verifiable random functions (VRFs), introduced by Micali, Rabin, and Vadhan (FOCS 1999), are PRFs that allow the owner of the secret key k k to prove, for any input x x , that y y indeed is the output of the PRF on x x ; the security requirement of VRFs state that the PRF output must still look indistinguishable from random, for any x x for which a proof is not given.
In this work, we solve both the above open questions by constructing constrained pseudorandom functions that are simultaneously verifiable and delegatable.