Encryption is the process of encoding information to keep it private. Cryptography is the practice or study of encryption techniques.

When information is encrypted, the plain text version is transformed into a cipher text version by way of an encryption process or algorithm. The plain text is readable (or executable in the case of a computer program), while the cipher text is not which keeps the information private.

This can be represented as a function:

encrypt(P) = C

How private the cipher text is depends on how difficult it is to convert it back to plain text. This process is called decryption. It the reverse of encryption: a cipher text is transformed into plain text by way of a decryption process or algorithm.

This can be represented as a function:

decrypt(C) = P

The goal of every encryption algorithm is to make it as difficult as possible to decrypt the generated cipher text into plain text without authorization.

It is difficult to determine the quality of encryption algorithms. An algorithm which appears strong today can crumble due to new discovery or future research. There have been many algorithms in the past which seemed unbreakable at first. For this reason, when encrypting, one should always choose well-tested algorithms which have been in use for several years. Newer algorithms have not had the same scrutiny applied to them yet.

Encryption algorithms have different strengths and weaknesses which make some better suited for a given context than others. They are not interchangeable. It is important to choose the right one for the job.

Types of Encryption

Fork me on GitHub