TDP ⇒ PKE
Statement
A family of trapdoor permutations with hard-core predicate gives a CPA-secure PKE scheme: is the permutation index, its trapdoor, a bit is encrypted as for , and longer messages bit by bit — GM84, Yao82a. A hard-core predicate need not be assumed: for every trapdoor permutation , is a trapdoor permutation with hard-core predicate — GL89.
Sketch
Decryption recovers and outputs . A CPA adversary distinguishing encryptions of from encryptions of predicts from with the same advantage, contradicting hard-coreness of ; a hybrid over bit positions covers longer messages.
Notes
- Yao82a states the construction for trapdoor functions with a hard bit, decryption recovering the encryption randomness .
- Efficiency: for a hard-core predicate , bit-by-bit encryption sends per plaintext bit, one element of and one bit, at one evaluation of . Iterating as in the Blum–Micali–Yao generator encrypts an -bit message as , one element of plus masked bits, with evaluations to encrypt and inversions to decrypt. With the Goldreich–Levin predicate the public string is sent as well, bits in all for an -bit domain — standard.