Reference articles on history, science, culture and more
Encyclopedia

Probabilistic encryption

Use of randomness in key code generation

Probabilistic encryption is the use of randomness in an encryption algorithm, so that when encrypting the same message several times it will, in general, yield different ciphertexts. The term "probabilistic encryption" is typically used in reference to public key encryption algorithms; however various symmetric key encryption algorithms achieve a similar property (e.g., block ciphers when used in a chaining mode such as CBC), and stream ciphers such as Freestyle which are inherently random. To be semantically secure, that is, to hide even partial information about the plaintext, an encryption algorithm must be probabilistic.

01History

The first provably-secure probabilistic public-key encryption scheme was proposed by Shafi Goldwasser and Silvio Micali, based on the hardness of the quadratic residuosity problem and had a message expansion factor equal to the public key size. More efficient probabilistic encryption algorithms include Elgamal, Paillier, and various constructions under the random oracle model, including optimal asymmetric encryption padding (OAEP).

02Security

Probabilistic encryption is particularly important when using public key cryptography. Suppose that the adversary observes a ciphertext, and suspects that the plaintext is either "YES" or "NO", or has a hunch that the plaintext might be "ATTACK AT CALAIS". When a deterministic encryption algorithm is used, the adversary can simply try encrypting each of their guesses under the recipient's public key, and compare each result to the target ciphertext. To combat this attack, public key encryption schemes must incorporate an element of randomness, ensuring that each plaintext maps into one of a large number of possible ciphertexts.

An intuitive approach to converting a deterministic encryption scheme into a probabilistic one is to simply pad the plaintext with a random string before encrypting with the deterministic algorithm. Conversely, decryption involves applying a deterministic algorithm and ignoring the random padding. However, early schemes which applied this naive approach were broken due to limitations in some deterministic encryption schemes. Techniques such as optimal asymmetric encryption padding (OAEP) integrate random padding in a manner that is secure using any trapdoor permutation.

03Examples

Example of probabilistic encryption using any trapdoor permutation:

  • x - single bit plaintext
  • f - trapdoor permutation (deterministic encryption algorithm)
  • b - hard core predicate of f
  • r - random string

{\rm {Enc}}(x)=(f(r),x\oplus b(r))

{\rm {Dec}}(y,z)=b(f^{-1}(y))\oplus z

This is inefficient because only a single bit is encrypted. In other words, the message expansion factor is equal to the public key size.

Example of probabilistic encryption in the random oracle model:

  • x - plaintext
  • f - trapdoor permutation (deterministic encryption algorithm)
  • h - random oracle (typically implemented using a publicly specified hash function)
  • r - random string

{\rm {Enc}}(x)=(f(r),x\oplus h(r))

{\rm {Dec}}(y,z)=h(f^{-1}(y))\oplus z

Watch videos about Probabilistic encryptionExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Probabilistic encryption, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.