Cryptography is the function of keeping information safe by converting it into a form which others who should not access this information will not be able to understand. This idea had been around for a long time before the invention of the computer, seen in Julius Caesar’s Caesar Cipher, which he used when communicating important messages. This involved the shifting of the alphabet 4 places, so an A would become a D. Only those who knew the key to decode the cypher would be able to read the message.
This is how much of cryptography works today, though on a much larger and more complex scale. With the invention of the computer and open networks came the realisation that data was easily accessible to unintended sources. It was soon clear that a method of keeping information private and secure was necessary. IBM was the first to respond to this issue, with an encryption method known as “Lucifer”, developed in the 1960’s. Of course, the internet continued to grow rapidly, and so did the need for encryption, meaning that today, a large amount of data throughout the internet is encrypted.
How this data across the internet is encrypted is where things get more complex. Fundamentally, cryptography takes the original plaintext (which is readable and understandable) and applies an algorithm which changes the plaintext into ciphertext. Ciphertext will appear to any unintended reader as unreadable nonsense, meaning that the information is protected from those who are not meant to access it. For those who are meant to access the data, cryptographic systems will typically turn the ciphertext back into plaintext, though this isn’t always the case. Usually, the encryption process will involve the use of an algorithm and a key. An algorithm is a series of mathematical operations, and the key is a piece of information which tells the algorithm what to do to the plaintext. Without the key, it is usually virtually impossible to decrypt the cipher, even if the method of encryption is known.
Once data is encrypted, the benefits can be numerous. Not only can information be kept confidential, but the identity of a sender and receiver can be authenticated, as can the integrity of the data itself, proving it has not been altered. Encryption also allows for non-repudiation, which validates that the sender of a message is who you thought it would be.
To achieve these security functions, many cryptographic methods and algorithms are used. Most of these can be categorised into one of three groups, as follows.
Secret Key Cryptography
This method of cryptography is widely used to secure data, and is often used for ensuring the privacy of local hard drives. As it will likely be the same user encrypting and decrypting the data, there is no issue of sharing the key for decipher. This method can also be used in keeping data transported through the internet secure, though another form of cryptography, Public Key Cryptography, must be used at the same time.
Public Key Cryptography
Public key cryptography and the mechanisms behind it are much more complicated than that of secret key cryptography, but it is essential for internet security. Networks are insecure, so public key cryptography allows for secure communications across these networks. This works via two keys- one is public and one is private. The public key is sent to those you wish to communicate with, allowing you to encrypt messages to them. The private key is shared with nobody, and is used to decrypt messages encrypted to you. Public Key Infrastructure (PKI) utilises public key cryptography to verify servers and users. When using a website, lots of information is communicated back and forth between the server (website) and the user. PKI forms security in its ability to prove the integrity and identity of the servers and users, creating trust in the exchange and non-repudiation.
While public and private key cryptography transform plaintext into ciphertext and back again, hash functions are changed to ciphertext and remain that way. The resulting ciphertext, now called a hash, cannot be changed back to plaintext. Hash functions are often used for securely storing passwords, ensuring data integrity and for authentication purposes.