A deterministic encryption scheme is a cryptosystem which always produces the same ciphertext for a given plaintext and key, even over separate executions of the encryption algorithm.
Although we cannot achieve semantic security or indistinguishability for deterministic encryption due to lack of randomness in cipher text, there is an analysis of maximum possible security for deterministic encryption.
I could not understand much from these papers though. Can somebody say what that means in simple terms? How can we achieve it, if we want to implement it? I suppose I need deterministic encryption because I want to be able to search on the ciphertext.
The papers I tried to understand:
- Bellare, Mihir, et al. "Deterministic encryption: Definitional equivalences and constructions without random oracles." Advances in Cryptology–CRYPTO 2008 (2008): 360-378.
- Boldyreva, Alexandra, Serge Fehr, and Adam O’Neill. "On notions of security for deterministic encryption, and efficient constructions without random oracles." Advances in Cryptology–CRYPTO 2008 (2008): 335-359.