Witness encryption (WE) was introduced by Garg et al. (STOC’13). A WE scheme is defined for some NP language L and lets a sender encrypt messages relative to instances x. A ciphertext for x can be decrypted using w witnessing x ∈ L, but hides the message if x / ∈ L. Garg et al. construct WE from multilinear maps and give another construction (FOCS’13) using indistinguishability obfuscation (iO)...