Public-Key Encryption Schemes
Public-key encryption from definitions to concrete schemes. The setting (receivers publish pk, any number of senders, authenticated key distribution assumed, a 2–3 orders of magnitude cost), syntax, eavesdropping security, which is automatically CPA security once the adversary holds pk; no perfect secrecy; no deterministic scheme; multiple encryptions via a hybrid argument; bit-by-bit extension. Hybrid (KEM/DEM-style) encryption with the cost calculation and a three-step security proof. RSA: textbook RSA and why it fails, practical issues (encoding, small e, never small d, CRT decryption), attacks (cube roots, Håstad broadcast, √L meet-in-the-middle, two common-modulus attacks), padded RSA (security for one-bit messages from RSA), PKCS #1 v1.5. ElGamal from a 'pseudorandom pad' in a group, its DDH proof, encoding into QR_p, shared parameters. CCA security: realistic scenarios, malleability, attacks on textbook RSA, PKCS #1 v1.5 (Bleichenbacher) and ElGamal. Trapdoor permutations, hard-core bits and a generic CPA scheme. Chapter 11: quadratic residues mod p and N, Jacobi symbols, the quadratic residuosity assumption, Goldwasser–Micali; modular square roots, square roots ⟺ factoring, Blum integers, the Rabin trapdoor permutation and encryption; the structure of Z*_{N²}, decisional composite residuosity, Paillier, and homomorphic encryption with voting. Worked examples verified; OAEP/random-oracle material pending (Ch. 13).
Corresponds to Katz & Lindell, Introduction to Modern Cryptography, Chapters 10–11. (The random-oracle model and OAEP are Chapter 13; see the pending section at the end.)
Motivation: secrecy without a shared secret
IntuitionThe asymmetric setting
The receiver generates and makes available. Any sender can encrypt to it, and only decrypts. The receiver can either send when a sender appears (over a public but authenticated channel) or publish it in advance: on a webpage, a business card, or a directory, before even knowing who will write. Either way the adversary knows , so all security rests on .
| Private-key | Public-key | |
|---|---|---|
| Secrecy needed | the whole key | only |
| Key distribution | needs a secret channel | an authenticated public channel suffices |
| Direction | symmetric (either party encrypts) | one-way: many senders to one receiver |
| Receiver’s storage with senders | keys | one ; senders needn’t be known in advance |
| Speed | fast | 2–3 orders of magnitude slower (hard on smartcards and RFID tags) |
Rule: if a secret key can be shared, use private-key encryption. Even in the public-key setting, long messages are encrypted with private-key cryptography (hybrid encryption).
WarningActive attacks on key distribution are out of scope here
If an adversary can substitute for Alice’s (in transit, or in a directory), it decrypts everything sent to “Alice”, and without prior shared information or a trusted third party nobody can detect it. (In the shouting-across-a-room scenario, voices and faces serve as that prior shared information.) These chapters assume senders hold the legitimate . That separates encryption from key distribution, which is solved by certificates and PKI (digital-signatures-and-pki, §12.7). Same root cause as DH’s man-in-the-middle.
Definitions
DefinitionPublic-key encryption scheme (Def. 10.1)
Ppt algorithms:
- , each of length at least , with recoverable from them;
- , for in a plaintext space that may depend on ;
- , deterministic, possibly outputting .
Correctness: . Unlike private-key keys, isn’t just a random string. When the plaintext space is something like , specify an efficient, reversible encoding of bit strings (for example, -bit strings as integers below ).
Eavesdropping security is CPA security
Definition and (Defs. 10.3–10.4)
Eavesdropping: ; outputs equal-length ; it receives and guesses . Secure if . The only change from Definition 3.9 is that gets .
CPA: additionally give an oracle.
TheoremProposition 10.5 — In the public-key setting, eavesdropping security = CPA security
Knowing , can encrypt anything itself: the encryption oracle comes for free. (In the private-key world, EAV security does not imply CPA security: Claim 3.20.)
WarningTwo impossibilities
- No perfect secrecy (Exercise 10.1), however long the keys or short the messages. By correctness, the supports of and are disjoint. An unbounded adversary with simply checks which support contains .
- No deterministic scheme is secure (Theorem 10.6). Compute and compare with . Worse, a small message space is fully recoverable (Exercise 10.2): a professor encrypting a grade from leaks it in five trial encryptions. Many early systems used deterministic public-key encryption; Goldwasser–Micali’s insistence on probabilistic encryption (and the definition above) was a turning point.
Multiple encryptions, and arbitrary lengths
TheoremTheorem 10.10 — single-message security ⇒ multi-message security
If is EAV-secure, then for vectors of messages, and are indistinguishable. (Assume without loss of generality exactly messages: Exercise 10.4.)
ProofHybrid over positions
Let encrypt the first messages of and the rest of , so is all and is all . picks a random , submits , places the challenge at position , and encrypts the other positions itself using (possible only because the key is public). If it simulates ; if , . Telescoping gives
so . (The multi-sample hybrid again.)
∎
TheoremProposition 10.11 — Bit-by-bit encryption
Any EAV/CPA-secure scheme for 1-bit messages gives one for : . Terminology: “CPA-secure” from now on, though proofs use the EAV experiment.
Hybrid encryption
AlgorithmHybrid encryption (Construction 10.12)
With public-key scheme and private-key scheme :
- : , , ; output .
- : , then .
Public-key encryption transports a fresh key; private-key encryption carries the data. It is still a public-key scheme: nothing is shared in advance. (The modern KEM/DEM pattern.)
FormulaEfficiency
With the cost to encrypt an -bit key and the per-bit private-key cost, the per-bit cost for a -bit message is
and the ciphertext length is . Public-key functionality at private-key speed for long messages, and only useful when . Rough numbers for a 1 Mb email with : hybrid costs about per bit, versus about per bit for 1000-bit public-key blocks. That is a roughly 500× speedup and about half the ciphertext length.
TheoremTheorem 10.13 — Hybrid encryption is CPA-secure
If is CPA-secure and is merely EAV-secure (one message per key), then is CPA-secure. One-time security suffices because every message gets a fresh .
ProofThree hybrids
Show via
- Steps 1 and 3 (reduce to ): picks itself, submits , and builds with the it knows. The reduction can know .
- Step 2 (reduce to ): generates itself and sets , which carries no information about . That is exactly what ‘s security needs.
Summing the three inequalities, the middle terms cancel to 1, which gives the bound. (Trying to apply directly fails: leaks information about to an unbounded analysis.)
∎
RSA encryption
Textbook RSA
AlgorithmTextbook RSA (Construction 10.14)
GenRSA gives with . Public key , private key :
Deterministic ⇒ insecure (Theorem 10.6). All it guarantees, under RSA, is that a uniform can’t be recovered entirely: partial information may leak, and real messages aren’t uniform. Recovering is as hard as factoring, but that says nothing about other ways to invert.
NoteRSA in practice
- Encoding: -bit strings become integers below (pad on the left, with a length indication). is negligibly likely, decryption still works (Exercise 7.8), and finding such an would factor ().
- Small (for example , needing ) makes encryption take two multiplications. Its weaknesses below are failings of textbook RSA, not of .
- Never small : falls to brute force, and even is vulnerable (Wiener-type attacks).
- CRT decryption: and , then recombine.
ExampleExample 10.15 (, , )
, , (since ). and . Decryption via CRT: and , and indeed . (Checked by hand.)
Attacks on textbook RSA
WarningSmall , short messages
If and , then and no reduction happens, so over the integers. A short message (under a third of bits) leaks immediately.
WarningHåstad’s broadcast attack
The same sent with to three receivers (pairwise coprime, otherwise just factor them). CRT gives , and since , . So over the integers.
AlgorithmMeet in the middle: instead of
For a random (say, a hybrid encryption key), with high probability with (). Compute and sort for , then look up for each . A match means , giving . Time is about : an 80-bit key costs about instead of .
WarningCommon-modulus attacks
- Insiders: a company giving every employee the same with different lets any employee factor from its own and compute everyone’s .
- Outsiders: even with trusted insiders, the same sent under and with falls to an eavesdropper. Bézout gives , so .
Padded RSA and PKCS #1 v1.5
AlgorithmPadded RSA (Construction 10.16)
For , choose random and set . Decrypt and keep the low bits.
| Padding | Security |
|---|---|
| (tiny padding) | broken: brute-force the paddings |
| , | conjectured secure; proof only from an “-padded RSA” assumption (Exercise 10.5) |
| CPA-secure under RSA (Theorem 10.17), because is hard-core for RSA and (Exercise 10.6) |
DefinitionPKCS #1 v1.5 encryption
With the byte length of , a -byte message () is encrypted as
with consisting of random nonzero bytes (so the separator is unambiguous). Believed CPA-secure with no proof. Broken under chosen-ciphertext attack (below), hence PKCS #1 v2 (RSA-OAEP).
ElGamal encryption
LemmaLemma 10.18 — Multiplying by a random element hides everything
For any fixed in a finite group , with uniform is uniform: . With a shared random this is a perfectly secret one-time pad over (the OTP is the case ). ElGamal’s idea: replace the shared random pad with a pseudorandom one, , that the receiver can compute but which looks random to everyone else (DDH).
AlgorithmElGamal (Construction 10.19)
gives . Then , , .
Correctness: . It is the Diffie–Hellman exchange with the receiver’s message published ahead of time as , and the DH key used as a one-time pad (Exercise 10.3 generalises: any 2-round key exchange gives CPA-secure PKE).
TheoremTheorem 10.20 — DDH ⇒ ElGamal is CPA-secure
ProofThe DH pad versus a random pad
In , the ciphertext is for random . By Lemma 10.18 it is independent of , so success is exactly . Distinguisher : set , get , give , and output 1 iff guesses .
- On : is in , so outputs 1 with probability .
- On : real ElGamal, so outputs 1 with probability .
DDH hardness gives .
∎
ExampleEncoding into , worked (Example 10.21)
Encoding for a safe prime : an -bit string becomes , then . This is one-to-one, since of the two roots exactly one lies in . It inverts via modular square roots.
, , , , . , so and . With : . Decrypt: , (as ), and . The roots of 65 are 30 and 137, keep , giving . (Inverse and product checked by hand.)
NoteElGamal in practice
Widely used over elliptic-curve groups. Shared parameters are fine: DDH is believed hard even for whoever generated them, so each user just picks its own . With RSA, by contrast, whoever generates knows its factorisation, so moduli can’t be shared.
Chosen-ciphertext attacks
IntuitionMore realistic here than in the private-key setting
A public-key receiver expects ciphertexts from many, possibly unknown senders. An adversary can:
- send while claiming to be the honest sender (forged email “From”), then infer something from the receiver’s behaviour;
- send in its own name, a possibility unique to public-key encryption, and perhaps get the decryption back directly.
ExampleCCA scenarios
- Password oracle: a bank replies “invalid password” (non-alphanumeric) versus “password incorrect”. Submitting modified ciphertexts of a user’s encrypted password and watching the errors may reveal it. Replaying itself teaches nothing (and timestamps add yet another error type).
- Quoting reply: an encrypted email gets answered with “you wrote: …”. Even an answer encrypted to the adversary hands back , so the receiver is a decryption oracle.
- Malleable auction: if can be turned into , the adversary always outbids without learning either bid. That is consistent with CPA security, and shows why non-malleability matters.
DefinitionCCA security (Def. 10.22)
: gets and a decryption oracle before and after the challenge, but may not query the challenge itself. CCA-secure if success is at most . (No encryption oracle is needed: provides it.) Constructions are more involved: Cramer–Shoup (DDH, about twice ElGamal’s cost) and RSA-OAEP (Chapter 13). This is the public-key counterpart of encrypt-then-MAC.
WarningEvery scheme so far falls to CCA
- Textbook RSA: blinding. With random , query , get , output . This destroys even “can’t recover a random ”. Malleable: decrypts to .
- PKCS #1 v1.5: Bleichenbacher (1998). A server revealing only “padding valid / invalid” is enough to recover from many adaptively chosen ciphertexts. Such oracles are easy to get in practice (TLS error messages). This drove the move to OAEP, and descendants (ROBOT, 2017) keep turning up.
- ElGamal: encrypts . To avoid a suspicious repeated , re-randomise: . CPA-secure, yet fully malleable.
Trapdoor permutations and generic public-key encryption
DefinitionTrapdoor permutation family (Def. 10.23)
: outputs an index and a trapdoor . Forgetting leaves a one-way permutation family, while always. Example: RSA with . Another: Rabin squaring over for Blum integers (below).
DefinitionHard-core predicate for a family (Def. 10.24)
is hard-core if every ppt predicts it from with probability at most . Every trapdoor permutation family can be modified to have one (Theorem 10.27, via Goldreich–Levin); RSA’s least-significant bit is hard-core.
AlgorithmPKE from any trapdoor permutation (Construction 10.25)
, . For one bit : , ciphertext . Decrypt: , output . The hard-core bit is a one-bit pseudorandom pad.
TheoremTheorem 10.26 — Construction 10.25 is CPA-secure
(The book’s statement says “chosen-ciphertext”, but the proof, and the truth, is chosen-plaintext. The scheme is clearly malleable: flip the second component.)
ProofEncryption adversary ⇒ hard-core-bit predictor
Assume without loss of generality . : run to get ; pick random bits (a guess for ) and ; give . Output if guesses , else .
- If , sees a real encryption of , so it is right with probability .
- If , it sees an encryption of , so it is wrong with probability .
Then , which must be at most .
∎
NoteShorter ciphertexts for long messages
Bit-by-bit costs one evaluation and one image per bit. Instead, iterate and send : one domain element plus bits. The receiver inverts backwards using . Security follows from Blum–Micali PRG ideas (Blum–Goldwasser).
Chapter 11 — Additional schemes
Quadratic residues
DefinitionQuadratic residues modulo a prime
is a quadratic residue (QR) if for some , and a non-residue (QNR) otherwise. For an odd prime , every QR has exactly two roots (Proposition 11.1: ), so squaring is 2-to-1 and . With a generator , the QRs are exactly the even powers .
TheoremProposition 11.2 — Euler’s criterion
The Legendre/Jacobi symbol satisfies (QR gives ). Even powers give ; odd powers give , the only square root of 1 other than 1. So residuosity mod a prime is decidable by one exponentiation. It is multiplicative, : QR·QR and QNR·QNR are QRs, and QR·QNR is a QNR.
TheoremQuadratic residues modulo (Propositions 11.6, 11.8)
By CRT, is a QR mod iff both components are QRs. Each QR has four roots , so . With :
- half of is in ;
- ;
- half of is , and the other half is (both component symbols ).
is multiplicative. QR·QNR is in QNR and QNR·QNR is a QR, but two arbitrary QNRs needn’t multiply to a QR.
ExampleThe four square roots of 4 mod 15 (Example 11.7)
, so the roots are , , , . Check: , , .
DefinitionQuadratic residuosity assumption (Def. 11.11)
is computable without the factorisation (reciprocity-based algorithm), so certifies a non-residue. But within nobody efficiently tells QR from QNR: . Knowing the factors makes it easy (check and ). QR hardness implies factoring hardness. (A Gauss-era problem.)
Goldwasser–Micali encryption
AlgorithmGoldwasser–Micali (Construction 11.12)
with (the receiver samples it by testing symbols: Exercise 11.3); . For a bit :
A random QR encrypts 0 and a random QNR encrypts 1 ( is uniform in : Exercise 11.5). Decrypt by deciding residuosity with . The first provably secure (probabilistic) public-key scheme. Inefficient: one modular element per bit.
TheoremTheorem 11.13 — QR assumption ⇒ GM is CPA-secure
ProofReplace with a residue
runs with and outputs 1 iff guesses .
- : the real scheme, success .
- : both and are uniform in (Lemma 10.18 in the group ), so the view is independent of and success is .
QR hardness gives .
∎
ExampleVariants (Exercises 11.6–11.8, 11.12)
- Blum integers (): , since for . So needs no in the key.
- Repetition: encrypt 0 as random QRs and 1 as random elements (sample until ). Decrypt: “0” iff all are QRs. Error .
- DDH fails in : Legendre symbols reveal the parities of and , hence of . Compare with the symbol of the third element: advantage about . That is why prime-order subgroups are needed.
- XOR-homomorphic: encrypts (since is a QR).
(Worked here.)
Rabin: square roots and factoring
Computing square roots with the factorisation
AlgorithmSquare roots modulo a prime (Algorithm 11.16)
- : , since .
- (Tonelli–Shanks style): write with odd, and keep the invariant ( odd-bound, even) using a non-residue (found by random sampling: half of all elements; no deterministic polynomial method is known). Repeatedly halve both exponents. Whenever the result is , multiply by to restore . At the end, with odd, is a root.
ExampleWorked roots
- , : , so the root is . Check: .
- , : directly (exponent odd), so the root is . Check: .
- , , : , so multiply by ; then , so the root is .
(All checked by hand.)
NoteSquare roots modulo
Find roots of and and combine by CRT: all four roots come from the sign choices.
Square roots ⟺ factoring
LemmaLemma 11.20 — Unrelated roots factor
If but , then (or ) is a prime factor of . In CRT form, , so : divisible by but not by . (The congruence-of-squares idea behind the quadratic sieve.)
TheoremTheorem 11.21 — Computing square roots is as hard as factoring
A square-root finder with success gives a factoring algorithm with success .
ProofChoose a root, ask for a root, hope for a different one
: pick , set , and get . Since is a uniform QR, succeeds with probability . Key point: is uniform among ‘s four roots from ‘s point of view, so whichever root outputs, it differs from with probability exactly . That gives by Lemma 11.20. No assumption on how chooses among roots is needed.
∎
DefinitionBlum integers and the Rabin trapdoor permutation
with . Proposition 11.22: every QR has exactly one square root that is itself a QR. ( is a non-residue mod and mod , so exactly one sign pattern makes both components residues.) Hence
is a permutation of : one-way if factoring is hard, with trapdoor . Theorem 11.23: factoring hard ⇒ trapdoor permutations exist. (Exercise 11.10 gives a variant permuting .)
AlgorithmRabin encryption
- Generic: Construction 10.25 with , which is hard-core for Rabin.
- Padded Rabin (Construction 11.24, one bit): pick until , then . Decrypt: the unique QR root, keep its lowest bit. CPA-secure if factoring is hard (Theorem 11.25). Exercise 11.11 extends to -bit messages, using the extra bits and "" to make injective, with no proof.
ImportantRabin versus RSA
| Rabin | RSA | |
|---|---|---|
| Hardness | equivalent to factoring | not known to be; RSA may be easier |
| Forward cost | one squaring | -th power, slightly slower for large |
| Domain | a permutation of only (more care) | all of |
| Textbook-version CCA | reveals the private key | blinding attack, but no key recovery |
| Adoption | rare | dominant, largely historical accident |
Textbook Rabin’s key-recovery CCA (Exercise 11.9): pick with (so ) and submit . The decryptor returns the QR root , necessarily (since also has symbol for Blum ). Then factors .
Paillier encryption
TheoremProposition 11.26 — The structure of
For with distinct primes of equal length:
- (equal length means );
- (binomial theorem; terms with vanish), so has order ;
- via .
ProofWhy is an isomorphism (Claims 11.27–11.29)
Sizes match: .
Injective: gives . Raising to kills the second factor (the group order is ). So , hence . Then , and since is a permutation of (), .
Homomorphism: exponents of live mod , and depends only on (binomial expansion of ).
∎
Definition-th residues and the DCR assumption (Def. 11.30)
gives , so the -th residues are exactly . Decisional composite residuosity: a random -th residue is indistinguishable from a random element : . A generalisation of quadratic residuosity.
AlgorithmPaillier (Construction 11.32)
, . For , :
Why decryption works: , i.e. . Subtract 1, divide by , multiply by . Intuition: the ciphertext is ; DCR lets you swap the residue for a random , which pads perfectly in .
ExampleExample 11.31 (, )
, : . With : , so . Then (as ), and . (Final steps checked by hand.)
TheoremTheorem 11.33 — DCR ⇒ Paillier is CPA-secure
gives the ciphertext . If , this is real Paillier (success ; uniform in or gives the same distribution). If is uniform in , the ciphertext is uniform (Lemma 10.18), so success is . DCR gives .
Homomorphic encryption
DefinitionHomomorphic encryption (Def. 11.34)
Plaintexts in a group , ciphertexts in a group , and .
| Scheme | Operation on plaintexts | ||
|---|---|---|---|
| Paillier | addition mod (and gives ) | ||
| ElGamal | multiplication | ||
| Goldwasser–Micali | XOR |
Homomorphism is malleability by design: these schemes cannot be CCA-secure.
ExampleEncrypted voting with Paillier
- The authority publishes .
- Voter casts with (no/yes).
- Everyone multiplies the ballots: , which encrypts .
- The authority decrypts only : the tally without any individual vote.
This assumes honest behaviour. Cheaters (for example a ballot encrypting ) need zero-knowledge validity proofs, threshold decryption, and the like, which belong to the field of secure protocols.
The random oracle model, CPA/CCA RSA encryption, and OAEP
NoteModel
Proofs here treat a hash as a public random function; see the random oracle model for the methodology, its proof techniques (lazy sampling, programming, observing queries) and its caveats. All constructions work with any trapdoor permutation; RSA is the usual instance.
AlgorithmCPA-secure RSA in the ROM (Construction 13.1)
for random ; decrypt , then . As efficient as textbook RSA plus one hash. Why the ROM matters: RSA only says can’t be recovered entirely; a partial leak could ruin for a PRG , but stays uniform until itself is queried.
TheoremTheorem 13.2 — RSA ⇒ Construction 13.1 is CPA-secure (ROM)
Let be the event that queries .
- Without it, is a one-time pad: .
- is negligible: given an RSA instance , run with random, simulate lazily, and watch the queries for with . The view is perfect, so RSA is solved with probability exactly .
AlgorithmCCA-secure RSA in the ROM (Construction 13.5)
with a CCA-secure private-key scheme (encrypt-then-MAC). Construction 13.1 is this with the one-time pad, and works with any CPA-secure (Exercise 13.3).
TheoremTheorem 13.6 — RSA + CCA-secure ⇒ Construction 13.5 is CCA-secure (ROM)
- Without : reduce to ‘s CCA game, implicitly setting (the challenger’s key). Decryption queries with first component go to the oracle; others are decrypted with , which the reduction knows. The views agree until .
- negligible: now there is no , so program the oracle with a table of triples . Answer a decryption query with , where is the key stored for (fresh if none: entry , implicitly ). Answer a hash query by looking up in the second column, keeping the two consistent. The challenge gets entry ; if ever hashes with , output .
AlgorithmRSA-OAEP (Construction 13.9; Bellare–Rogaway)
Two oracles , , message , random :
(The book’s prose says ; the construction box correctly has .) Decrypt , split it, recover , then ; output unless the last bits are zero (this redundancy check is what rejects mauled ciphertexts). A two-round Feistel-like padding: the ciphertext is one element of (Construction 13.5 also carries a private-key ciphertext), so it is ideal for short messages and key transport in hybrid encryption.
Security: CCA-secure under RSA with random oracles, for suitable including ; the original proof was flawed (Shoup) and later repaired for RSA (Fujisaki–Okamoto–Pointcheval–Stern), and OAEP+ variants handle general trapdoor permutations. Standardised as PKCS #1 v2.1, the replacement for the Bleichenbacher-broken v1.5 padding. (Implementations must not leak which check failed: Manger’s attack, my addition.)
Quick reference
| Object | Statement | Note |
|---|---|---|
| Setting | publish ; authenticated distribution assumed | about 100–1000× slower than private-key |
| EAV ⇒ CPA | adversary holds | unlike private-key |
| Impossibilities | no perfect secrecy; no deterministic scheme | grade example |
| Multi-message | hybrid over positions, loss factor | bit-by-bit extension |
| Hybrid encryption | needs only EAV-secure | |
| Textbook RSA | deterministic, malleable, blindable | |
| RSA attacks | cube root; Håstad; ; common modulus | |
| Padded RSA | random | provable; PKCS #1 v1.5 heuristic |
| ElGamal | DDH ⇒ CPA; multiplicatively malleable | |
| CCA | decryption oracle except on the challenge | all schemes above fail |
| Bleichenbacher | v1.5 padding oracle recovers | led to OAEP |
| Trapdoor permutation PKE | CPA (book says CCA, a typo) | |
| Euler criterion | QR mod is easy | |
| QR mod | of ; of | 4 roots |
| QR assumption | QR versus QNR hard without factors | |
| Goldwasser–Micali | first provably secure scheme | |
| Square roots | (); Tonelli–Shanks | CRT for |
| Roots ⟺ factoring | unrelated roots give ; success | |
| Rabin | squaring on , Blum | as hard as factoring; textbook CCA leaks key |
| Paillier | DCR; additively homomorphic | |
| Voting | multiply ballots, decrypt the tally | honest-but-curious only |
Facts to keep to hand
- Public keys make the encryption oracle free. Eavesdropping security is CPA security, deterministic schemes are hopeless, perfect secrecy is impossible, and single-message security extends to many messages by a hybrid argument.
- Real systems are hybrid. Public-key encryption moves a fresh key, private-key encryption moves the data, and the proof swaps the encrypted key for zeros so the one-time private-key scheme sees an independent key.
- Textbook schemes are insecure; randomisation and structure fix CPA, not CCA. Textbook RSA leaks via small exponents, shared moduli and malleability. Padded RSA, ElGamal (DDH), Goldwasser–Micali (QR), Rabin (factoring) and Paillier (DCR) are CPA-secure, yet all are malleable. CCA needs more (Cramer–Shoup, OAEP), and padding oracles (Bleichenbacher) show the threat is practical.
- Number-theoretic trapdoors drive everything. Trapdoor permutations plus hard-core bits give generic encryption. Square roots are equivalent to factoring (the Rabin advantage). yields Paillier’s additive homomorphism, useful for privacy-preserving computation such as voting.
References
- Katz & Lindell, Introduction to Modern Cryptography — Chapters 10–11
- Goldwasser & Micali, “Probabilistic Encryption” (1984)
- ElGamal, “A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms” (1985)
- Bleichenbacher, “Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS #1” (1998)
- Paillier, “Public-Key Cryptosystems Based on Composite Degree Residuosity Classes” (1999)
Mentioned in
- Cramer-Shoup and Practical CCA-Secure Encryption
- Digital Signatures and Public-Key Infrastructure
- Oblivious Transfer from Diffie-Hellman
- Public-Key Cryptography — Motivation and Key Exchange
- Regev Encryption and Public-Key Encryption of Qubits
- Secret Sharing, Multi-Party Protocols, and Computational Differential Privacy
- Transport-Layer Security and TLS