Encryption
Encryption is the process of encoding or scrambling a message.
Decryption is the process of decoding or unscrambling a message.
An encryption algorithm or cipher is a type of cryptographic process that scrambles the characters used in a message so that the message can be seen but not understood or modified unless it can be deciphered.
- composed of:
- different types of cipher/algorithm (used interchangeably)
- one or more keys
- assures confidentiality
- use cases:
- a secure means of transmitting data and authenticating users
- storing data securely
Algorithms
- Modern encryption algorithms use the basic techniques of substitution and transposition in complex ways that can defeat attempts at cryptanalysis
Properties of Encryption Algorithms
Secure encryption algorithm has 2 properties:
- Confusion
- is a secure encryption algorithm property that ensures that changing a single bit of an encryption key impacts most of the ciphertext bits.
- this property hides the relationship between a ciphertext and the encryption key
- Diffusion
- is a secure encryption algorithm property that ensures that changing a single plaintext bit changes about half of the ciphertext bits and changing a single ciphertext bit changes about half of the plaintext bits.
- hides the relationship between a plaintext and a cipher text
Cryptographic Key
A cryptographic key is a set of data that the encryption algorithm combines with the input plaintext to produce the encrypted, protected output—the ciphertext.
Encryption algorithms must be decrypted using a key linked to the initial encryption process.
- size of the key is one factor in determining the strength of the encryption
- A keyspace is the range of values that the key could be
- Modern ciphers use large keyspaces with trillions of possible key values
- makes key more resistant to brute force
- Keys for modern symmetric ciphers use a pseudorandomly generated number of bits
- key length is the size of the encryption key measured in bits
- a bit has a value of 0 or 1
- possible key values is
- possible key values is
- e.g., Advanced Encryption Standard (AES)
- AES-128 uses a 128-bit key length (
) - AES-256 uses 256-bit key length (
) - trillions of times bigger than 128-bit
- AES-128 uses a 128-bit key length (
- key stretching is the process of artificially increasing a key’s length and complexity
- makes keys more resistant to brute-force attacks
- drawback of larger keys:
- computer uses greater memory and processor cycles