Skip to main content
Engineering LibreTexts

15.1: Security Definitions

  • Page ID
    7411
  • 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:

    Figure15-1.jpg

    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:

    Figure15-2.jpg

    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.