Overview of Cryptography
The process of writing or solving messages using a secret code.
This would be the proper definition of cryptography. However, in computer systems, there is never true secrecy. The existence of information can always be detected on a computer system, somehow.one way or another.
Ignoring that, here are the common terms used when discussing cryptography:
- Plaintext/Cleartext - an unencrypted message
- Ciphertext - an encrypted message
- Algorithm - the process used to encrypt/decrypt messages
- Cryptanalysis - the art of cracking (😏) cryptographic systems
Core Concepts of Cryptography
Encryption keys are strings of bits generated using a specific cipher. One such cipher is the Advanced Encryption Standard (AES). Encryption keys are used in two different types of encryptions: symmetric and asymmetric. The first method uses the same key for both encrypting and decrypting, while the second one... doesn't. It uses two keys known as the public key and the private key.
Hashing is the process of converting one value into another using a mathematical algorithm (e.g. MD5 or SHA). Hashed values are usually the same length no matter the length of the input string. Hashing is done on values that do need to be stored but don't need to be decrypted, like passwords. Hashed passwords can't be decrypted, but attackers use massive databases of hashes belonging to commonly used passwords to quickly retrieve the plaintext.
Salting is the process of adding extra characters to a password before it's hashed. This helps prevent databases of passwords from becoming prevalent, since salts are usually randomized in both character content and in length.
Digital signatures are a combination of a private encryption key (from asymmetrical encryption!) and a hash of the sent data. They're used to confirm both legitimacy and non-repudiation (the sender can't deny having sent the message).
Common Methods
- Elliptic Curve Cryptography (ECC)
- Perfect Forward Secrecy
- Steganography