I would like to know if there are some methods or techniques that can convert a public key encryption scheme from CPA secure to CCA secure?
1 Answer
There are several compilers that take a CPA-secure PKE and produce a CCA-secure PKE. I am aware of two.
The first (possibly the earliest) is the Naor-Yung transformation [NY], which uses a non-interactive zero-knowledge proof (NIKZ) for this purpose. Since we know how to construct NIZKs from a variety of hardness assumptions (e.g., quadratic residuosity, LWE etc.) and in the random-oracle model, we get CCA-secure PKE under these additional assumptions.
The second and arguably the more efficient/practical transformation is the Fujisaki-Okamoto transformation, which is proved secure in the random-oracle model. In fact, one can as well start with a OW-secure PKE.
[FO]: Fujisaki and Okamoto, Secure Integration of Asymmetric and Symmetric Encryption Schemes, JoC'13
[NY]: Naor and Yung, Public-key Cryptosystems Provably Secure against Chosen Ciphertext Attacks, STOC'90