Main concepts
- Encryption: Encryption is the process of converting plaintext (unencrypted data) into ciphertext (encrypted data) using an algorithm and a key. The goal of encryption is to make the original message unreadable to anyone who doesn't have the corresponding decryption key.
- Decryption: Decryption is the reverse process of encryption. It involves converting ciphertext back into plaintext using a decryption algorithm and the correct decryption key. Decryption allows authorized parties to recover the original message from the encrypted data.
- Keys: Keys are essential components of cryptographic systems. They are used to control the encryption and decryption processes. There are two main types of keys:
- Symmetric Keys: Symmetric encryption uses the same key for both encryption and decryption. The key must be kept secret and shared securely between the communicating parties. Examples of symmetric encryption algorithms include AES (Advanced Encryption Standard) and DES (Data Encryption Standard).
- Asymmetric Keys: Asymmetric encryption uses a pair of keys: a public key for encryption and a private key for decryption. The public key can be freely distributed, while the private key is kept secret. Messages encrypted with the public key can only be decrypted using the corresponding private key. Examples of asymmetric encryption algorithms include RSA and ECC (Elliptic Curve Cryptography).
- Algorithms:
- Symmetric Encryption Algorithms: AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3DES (Triple DES).
- Asymmetric Encryption Algorithms: RSA (Rivest-Shamir-Adleman), ECC (Elliptic Curve Cryptography), DSA (Digital Signature Algorithm).
- Hashing Algorithms: Hash functions are used to generate fixed-size hashes from variable-size input data. They are commonly used for integrity verification and password storage. Examples include SHA-256 (Secure Hash Algorithm 256-bit) and MD5 (Message Digest Algorithm 5).
- Hash functions: Hash functions are one-way mathematical functions that generate a fixed-size output (hash) from an arbitrary input. They have several important properties:
- Deterministic: The same input always produces the same output.
- Irreversible: It is computationally infeasible to reverse the process and recover the original input from the hash.
- Collision Resistance: It is difficult to find two different inputs that produce the same hash value.