Relies on that factoring of very large ‘nearly-prime’ numbers is computationally hard. A public key is a product of two primes (‘nearly prime’) concatenated with an auxiliary value . Encryption and decryption use exponentiation by one or other of these primes (individually private) modulo .

Problem: exponentials are slow to compute Solution: generally use RSA to exchange a freshly generated symmetric key. Then use that for subsequent communication. (this is how SSH works)