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

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
    • 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
  • 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

Types