Asymmetric encryption algorithms, public key cryptography

Asymmetric algorithms can encrypt data, however, they shouldn't be used if you need to send encrypted data to another person, since in this case you will also need to send a corresponding key. Sending the key over an insecure channel is equal to sending un-encrypted data over the same channel. Asymmetric key cryptography (public key cryptography) solves the problem.

Public key cryptography uses a pair of cryptographic keys, designated as public key and private key. The private key is generally kept secret, while the public key may be widely distributed (everyone may use your pubic key). For example, you'd like to encrypt data and send it to another person. All you have to do is encrypt the data using the person's public key. After this, no one but the owner of this public key will be able to decrypt the data. Even you won't be able to decrypt the data (say, in case you have deleted the original un-encrypted data). Thus, should you wish to receive sensitive data, so that no one can access it, you need to create a public and a private key. You should keep the secret key in a safe place, while the public key may be widely distributed. You can even place your public key on your web site so that everyone can send you secured data encrypted by your public key. You can decrypt such data using your private key known only to you.

The disadvantage of asymmetric algorithms is that they are slower than symmetric algorithms. Therefore, if one needd to send large amounts of secret data, it is usually encrypted with a symmetric algorithm, and the key used is encrypted by means of an asymmetric algorithm (with a public key). Thus, the data is encrypted rather quickly, since a symmetric algorithm is used, and

there is no danger in sending the key over insecure channels, since the key itself is encrypted. Generally, a symmetric key is used only once, a new key is generated each time a new document is encrypted. That is why a symmetric key is often called a "session key". In fact, a user might have no idea which session key was used, since he (or she) has provided only the public key, everything else was done by software.

Asymmetric encryption algorithms are based on the use of one-sided functions. This means that even if you know the result, you won't be able to get the original data. To illustrate, if you know the sum of two numbers, you do not know exactly which numbers were added up to get that sum.

Home