
Cryptography is the science of protecting information so that it can be read only by intended parties, and of verifying that data has not been altered or forged.
Core goals
- Confidentiality — only authorised parties can read the content.
- Integrity — any modification is detectable.
- Authentication — the identity of the sender can be verified.
- Non-repudiation — a signer cannot credibly deny having signed.
Symmetric encryption
The same secret key encrypts and decrypts. It is fast and suitable for large volumes of data. The difficulty is key distribution: both sides must already share the key securely. AES is the most widely used modern algorithm of this type.
Public-key cryptography
Each party has a pair of keys: a public key that can be shared freely and a private key kept secret. Data encrypted with one can be decrypted only with the other. This solves key distribution and enables digital signatures.
In practice the two approaches are combined: public-key methods negotiate a temporary symmetric key, which then protects the actual traffic. This is what happens when a browser opens an HTTPS connection.
Hash functions
A cryptographic hash converts data of any size into a fixed-length value. Good hash functions are one-way and collision-resistant. They are used for integrity checks, digital signatures and password storage — where passwords are stored as salted hashes, never as plain text.
Common failures
Most real-world breaches do not come from broken mathematics. They come from implementation and process:
- reusing keys or initialisation vectors;
- storing keys in source code;
- weak random number generation;
- outdated algorithms kept for compatibility;
- correct algorithms applied to the wrong threat model.
Looking ahead
Sufficiently powerful quantum computers would break widely used public-key algorithms. For this reason post-quantum cryptography is being standardised now, well before such machines exist, because data captured today could be decrypted later.