What is Cryptography?

The literal meaning of Cryptography is secret (or hidden) writing. It is a method of storing and transmitting data in a way that only those who need to access it have the ability to do so, whilst making sure it cannot be understood by anyone else. The information cannot be altered at any stage and any attempt to make an alteration will be detected. Cryptography also authenticates all parties roles with the data and it’s transmission so that the sender and receiver’s identity together with both the origin and the destination of the information are secure.

Today, cryptography is based on mathematics, with specially designed algorithms that makes materials unreadable (encryption) and further algorithms that transform them back (decryption). The world's best mathematicians and computer scientists work in the field of cryptography to help governments and businesses to work successfully in maintaining everything from national security to profit-margins. Perhaps one of the most famous example of cryptography before the invention of computer technology, was the Enigma machine, used by the Germans during World War II to pass encrypted transmissions back and forth, which took years for the allies to solve, and once the code was cracked, became instrumental to the allied victory.

Many encryption algorithms exist to suit a range of different purposes, all offering security of the protected data against attacks, though there are differences in both speed and efficiency between some algorithms. To transform materials securely, the algorithms use a key that influences the encryption and decryption. Different keys give different results and only with the same key can a particular transformation be reversed.

Modern encryption algorithms

Cryptography has two major classes. A secret key encryption or symmetric key algorithm uses a single key, which all parties must know, but keep secret. Symmetric key algorithms use related or identical encryption keys for both encryption and decryption.

Public key encryption or asymmetric key algorithms are where each party has a pair of keys, a private key and a public key. Everyone can get copies of public keys, but encrypted messages can be sent to another’s public key that is decrypted by the receiver using their private key held on their computer where it was generated and never has to be sent anywhere or be read by attackers.

Modern concerns

For many years, the Secure Sockets Layer (SSL) protocol, usually seen as https://, has been securing web transactions using encryption between the web browser and a web server. Yet constantly developing technologies and increasing computing power continually makes algorithms vulnerable to cyber attack.

Cloud computing cannot rely on the usual key algorithms that can be created in unlimited quantities and instead depends on unsolvable problems. Currently there are only a limited number of working schemes available.

Modern cryptosystems are huge, usually 4kbits, when 512-bit numbers were once considered sufficient. Quantum computing, solving many problems much faster than conventional computers, may only exist in theory, but in 20 years and beyond, the future of modern cryptography is uncertain.

Cryptography for Developers

By Tom St Denis

Cryptographically secure pseudorandom number generator