table of content
- RSA
- Textbook RSA encryption and signature scheme
- PKCS#1 v1.5 encryption and signature scheme
- The Bleichenbacher attack on PKCS#1 v1.5's signature mis-implementation
- The Bleichenbacher attakc on PKCS#1 v1.5's encryption scheme
- RSA OAEP in PKCS#1 v2.2
- Discrete log
- Finite-field Diffie-Hellman key exchange
- ElGamal encryption scheme
- Digital Signature Algorithm
- Cryptanalysis of number theoretic problems
- Elliptic curve?
- Lattices and Learing with Error
RSA was created by Ron Rivest, Adi Shamir, and Leonard Adleman in 1977 (there was an equivalent development by British intelligence in 1973 but it remained classified until 1997).
- Key generation
- Sample two large prime numbers
$p, q$ and compute the public modulus$N = p \cdot q$ - Pick a public exponent
$e$ (usually 3 or 65535) - Compute Euclier's totient function
$\phi(N) = (p-1)(q-1)$ - Compute
$e$ 's multiplicative inverse under modulus$\phi(N)$ :
$d \leftarrow e^{-1} \mod \phi(N)$ $\texttt{pk} = (N, e), \texttt{sk} = d$
- Sample two large prime numbers
- Encryption:
Given the plaintext$m \in \mathbb{Z}_N$ , return$c \leftarrow m^e \mod N$ - Decryption:
Given the ciphertext$c \in \mathbb{Z}_N$ , return$c^d \mod N$
Correctness: Because
One-way security: The RSA assumption states that given
The RSA signature scheme is a reverse of the encryption scheme
TODO: write this segment