The sender sends the encrypted random key and the encrypted message to the recipient, in separate transmissions. To break the encryption, an attacker needs the encrypted message, the encrypted random key, and the recipient's private key. The recipient uses his private key to decrypt the random key, and the decrypted random key to decrypt the message. The message and key exchange happens quickly, and allows a new random key to be generated each time a message is sent. When public keys are stored in online directories and the recipient's private key is subject to tight access control, the entire process described above can he automated.
Processing overhead is an important consideration in the deployment of encryption products.
As mentioned earlier, secret-key encryption algorithms execute up to 10,000 times faster than public key algorithms. Processing overhead is also affected by the implementation of the cryptosystems, which can take place in hardware, firmware or software. Hardware implementations of an encryption algorithm will operate significantly faster than its software counterpart. Application encryption is always implemented in software, and can impact system and network performance. Client portions of applications running on the desktop may have access to enough unused processor capacity to gracefully absorb software encryption overhead.