PromleeBlog

posting thumbnail
An Overview of Public-Key Cryptography

📅

What is Public-Key Cryptography? 🔗

The key used for encryption differs from the key used for decryption.
Examples include RSA, ElGamal, and NTRU.
Advantages: keys are easy to share, and fewer keys are needed.
Disadvantage: slower than symmetric-key encryption.

Definition of Public-Key Cryptography 🔗

Definition: a public-key encryption scheme PKE consists of the following algorithms.
Correctness
A public-key encryption scheme PKE is correct if the following holds for security parameter λ and every plaintext M.
👨‍💻
Dec(sk,Enc(pk,M))=MDec(sk, Enc(pk, M)) = M
Here, (pk, sk) is the output of KeyGen(λ).

Security Model for Public-Key Cryptography 🔗

Consider a game between challenger C and adversary A.
A's goal is to break public-key encryption: to find plaintext M from a ciphertext.
  1. Setup: challenger C takes security parameter λ and outputs (pk, sk).
    C gives public key pk to A.
  2. Phase1: A sends decryption queries to C.
    Specifically, A sends an arbitrary ciphertext CiC_i to C, and C returns Dec(sk,Ci)=MiDec(sk, C_i) = M_i.
  3. Challenge: A chooses two plaintexts M0,M1M_0, M_1, and C chooses one of them (b∈{1,2}b \in \{1, 2\}) and returns Enc(pk,Mb)=CbEnc(pk, M_b) = C_b.
    A then guesses bb, identifying which plaintext the ciphertext corresponds to.
  4. Phase2: A sends decryption queries to C.
    Specifically, A sends an arbitrary ciphertext CiC_i to C, and C returns Dec(sk,Ci)=MiDec(sk, C_i) = M_i.
AdvPKE(λ)=Pr[b=b′]−12Adv_{PKE}(\lambda) = Pr[b = b'] - \frac{1}{2}
👍
A public-key encryption scheme is IND-XXX secure when an adversary cannot gain a non-negligible advantage as a function of the security parameter.
XXX is determined by the decryption oracle available to the adversary.
    An Overview of Public-Key Cryptography | PromleeBlog