Skip to main content
[ "article:topic", "showtoc:no", "license:ccbync", "authorname:mrosulek" ]
Engineering LibreTexts

15.1: Security Definitions

  • Page ID
  • We now modify the definition of CPA security to fit the setting of public-key encryption. As before, the adversary calls a CHALLENGE subroutine with two plaintexts — the difference between the two libraries is which plaintext is actually encrypted. Of course, the encryption operation now takes the public key.

    Then the biggest change is that we would like to make the public key public. In other words, the calling program should have a way to learn the public key (otherwise the library cannot model a situation where the public key is known to the adversary). To do this, we simply add another subroutine that returns the public key.

    Definition \(\PageIndex{1}\)

    Let Σ be a public-key encryption scheme. Then Σ is secure against chosen-plaintext attacks (CPA secure) if ℒΣpk-cpa-L ≋ ℒΣpk-cpa-R, where:


     Pseudorandom Ciphertexts

    We can modify/adapt the definition of pseudorandom ciphertexts to public-key encryption in a similar way:

    Definition \(\PageIndex{2}\)

    Let Σ be a public-key encryption scheme. Then Σ has pseudorandom ciphertexts in the presence of chosen-plaintext attacks (CPA$ security) if ℒΣpk-cpa$-real ≋ ℒΣpk-cpa$-rand, where:


    As in the symmetric-key setting, CPA$ security (for public-key encryption) implies CPA security:

    Claim 15.3

    Let Σ be a public-key encryption scheme. If Σ has CPA$ security, then Σ has CPA security

    The proof is extremely similar to the proof of the analogous statement for symmetric-key encryption (Theorem 8.3), and is left as an exercise.