I've got a question about an assignment . The question is "Why a Public-Key Deterministic Encryption Algorithm does not provide perfect security ?" . I suppose it means according to Shannon .

Any help could be awesome!

  • 1
    $\begingroup$ There are no public key schemes that are perfectly secure, deterministic or not. A computationally unbounded attacker can always recover the private key from the public key. $\endgroup$ Feb 4, 2014 at 9:58

1 Answer 1


Deterministic encryption means that if the same plaintext is encrypted twice, it results in the same ciphertext. This is intrinsically a breach of security.

“Absolute security” is not a technical term — but deterministic encryption breaks many definitions of security, including perfect security. If two ciphertexts are identical, it reveals the fact that the plaintexts are identical — and identical plaintexts lead to identical ciphertexts.

This is particularly bad in the presence of an encryption oracle: if the attacker can submit plaintexts for encryption, then the attacker can verify guesses about the plaintext corresponding to a ciphertext.

This is why most encryption algorithms (for example RSA PKCS1 v1.5 with salt, RSA OAEP, block cipher modes for encryption or authenticated encryption such as CBC, CTR, OCB, CCM, EAX, GCM, …) include some form of unique input to the encryption of each message (typically random, though whether more than unicity is important depends on the mode): salt, counter or IV.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.