Encryption

Author: Chuck_bartwoski

Introduction

A typical application of cryptography is secure communication. Informally a secure communication channel is one that provides both confidentiality and Integrity of the messages. In this section we investigate confidentiality, therefore we may assume that integrity is already guaranteed by some other means. (see section on integrity...#TODO)

We assume that two parties that want to communicate share a secret key kk. Prior to sending a message, the sender encrypts the message with the secret key, this produces a ciphertext that is then sent. The receiver uses the same key to decrypt the message and recover the message.

Intuitively: A secure encryption scheme will prevent an eavesdropper to learn the content of the message since the ciphertext is unintelligible. The security requirement will be formalized later.

Formal definition

We introduce some notation first: We will use M\mathcal M to denote the set of al possible message, K\mathcal K is the set of all possible keys and C\mathcal C is the set of ciphertexts.

A symmetric encryption scheme E\mathcal Eis a tuple of efficiently computable functions (KGen, Enc, Dec)(\text{KGen, Enc, Dec}).:

  • Selects a key at random from the key space.

  • Enc:M×KC\text{Enc}: \mathcal M \times \mathcal K \mapsto \mathcal C. Encrypts the message mm with the key kk into a ciphertext c=Enc(m,k)c = \text{Enc}(m, k). Sometimes written as c=Enck(m)c = \text{Enc}_k(m)

  • Dec:C×KM×{}\text{Dec}: \mathcal C \times \mathcal K \mapsto \mathcal M \times \{ \bot\}. Decrypts the ciphertexts cc with the key kk into the message mm or returns an error (\bot). m=Dec(c,k)m = \text{Dec}(c, k). Sometimes written as m=Deck(c)m = \text{Dec}_k(c)

ForE\mathcal E to be useful we need that Dec(Enc(m,k),k)=m;m,k\text{Dec}(\text{Enc}(m,k), k) = m; \forall m,k. This is also called correctness.

After all what's the point of confidentially sending a nice Christmas card to your grand children if they wont be able to read its content

TODO: security notions and examples