Public key cryptography (PKC) uses a key pair, a public key and a private key, rather than a single shared secret key. It is based on Number Theory, not substitution-permutation networks, and is asymmetric.
Motivation
Key distribution
Symmetric cryptography requires either a pre-shared key or a trusted key distribution center (KDC), which must itself be trusted with confidentiality.
Digital signatures
Electronic documents need a signature scheme that is easy to sign and verify, but difficult to forge, with universal verifiability.
PKC Framework
A key pair’s public key is known to everyone. The private key is known only to its owner. Given the public key and the algorithm, it is computationally infeasible to derive the private key.
Confidentiality
Sender encrypts with the receiver’s public key. Only the receiver, holding the private key, can decrypt.
Authentication
Signer encrypts a fingerprint (authenticator) of the message with their private key. Anyone can verify it using the signer’s public key. The authenticator must be infeasible to forge without changing the message.
Groups Over Finite Sets
Number-theoretic PKC computes over finite groups, since infinite groups (Q,Z,R) are unusable for computation.
Zn
The group of integers modulo n: {0,1,…,n−1}.
Zn∗
The subgroup of Zn relatively prime to n, excluding 0 by convention.
If n is prime, every nonzero element of Zn is coprime to n, so Zn∗={1,…,n−1}.
The order of a group is its number of elements. ∣Zn∣=n, and for prime p, ∣Zp∣=p.
Example: Z10∗={1,3,7,9}, removing multiples of the prime factors 2 and 5 from Z10.
Euler’s Totient Function
ϕ(n): the number of positive integers less than n relatively prime to n.
ϕ(p)=p−1 for prime p.
ϕ(pq)=ϕ(p)ϕ(q)=(p−1)(q−1) for distinct primes p,q.
Fermat’s Theorem
For prime p and integer a not divisible by p:
ap−1≡1(modp)
Euler’s Theorem
Generalizes Fermat’s theorem to any modulus. For a,n relatively prime: