Public key cryptography uses two keys: a public key to encrypt messages and a private key to decrypt them. The RSA algorithm is based on the difficulty of factoring large prime numbers. It works by having users generate a public/private key pair and publishing their public key. To encrypt a message, the sender uses the recipient's public key. Only the recipient can decrypt with their private key. The security of RSA relies on the computational difficulty of factoring the modulus used to generate the keys.