What is Cryptography?
Cryptography is the science of keeping information secure by transforming it into a form that unintended recipients cannot understand. An original human-readable message, referred to as plaintext, is changed using algorithms, or series of mathematical operations, into something that to an uninformed observer would look like gibberish; this gibberish is called ciphertext.
Cryptographic systems require some method for the intended recipient to be able to make use of the encrypted message — usually, though not always, by transforming the ciphertext back into plaintext.
We’ve already discussed some of the specific applications of cryptography, from keeping military secrets to transmitting financial data safely across the internet. In the bigger picture, though, there are some broad cybersecurity goals that we use cryptography to help us achieve, as cybersecurity consultant Gary Kessler explains.
Using cryptographic techniques, security pros can:
- Keep the contents of data confidential
- Authenticate the identity of a message’s sender and receiver
- Ensure the integrity of the data, showing that it hasn’t been altered
- Demonstrate that the supposed sender really sent this message, a principle known as non-repudiation
You may recognize some of these principles from variations of the CIA triad. The first of these uses is the obvious one — you can keep data secret by encrypting it. The others take a bit of explanation, which we’ll get into as we describe the different types of cryptography.
There are numerous cryptographic algorithms in use, but in general, they can be broken into three categories: secret-key, public-key, and hash functions.
- Secret-key is also called symmetric cryptography because the same key is used to both encrypt and decrypt the data
- Public-key, or asymmetric cryptography, is a cryptographic system that uses pairs of keys: public keys, and private keys.
- A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called hash values, hash codes, digests, or simply hashes. The values are usually used to index a fixed-size table called a hash table.