This has implications in most applications, where processing power is not unlimited and where response times count. However, it is also true that not all algorithms are equally computationally expensive. In particular, there is a class of ciphers that are particularly expensive, but which provide some particularly useful features. These are called asymmetric ciphers . Their less computationally expensive counterparts are called symmetric ciphers .
Symmetric ciphers make use of the same key to both encode and decode the data.
The problem with these types of ciphers is that both the party encoding the message and the party decoding the message need to have a copy of the key, and finding a secure way to exchange the key is an intractable problem in its own right. Asymmetric ciphers make use of a complex mathematical property of the underlying algorithms that allows two different keys to be used - one for encryption, and one for decryption. The key that is used for encryption is known as the public key, and is derived from the private key, which is used for decryption. This arrangement means that there is no need to exchange keys, as the public key cannot be used for decryption, so it doesn't matter if it falls into the wrong hands. The private key has to be carefully guarded, but this is relatively easy to achieve, as there is no need for anyone other than the rightful owner to be given access to the key.