14.2 General principles
A block cipher is an encryption function eK that maps plaintext blocks of fixed size b onto ciphertext blocks of the same size b:
As indicated by the subscript k, a block cipher is a symmetric algorithm, taking a shared key k ∈𝒦 as a parameter, where 𝒦 is the keyspace (see also Chapter 4, Encryption and Decryption). In TLS, the shared key is agreed between client Bob and server Alice during the Handshake protocol, using public-key cryptography. Naturally, a block cipher must be a bijective function, or bijection for short (see Section 4.1 in Chapter 4, Encryption and Decryption), meaning that there is some inverse function ek−1 that reverses the action of ek and is used for decryption. Therefore, instead of writing ek−1, we will often use dk for the inverse function.
A block cipher processes the plaintext block by block, as opposed to stream ciphers, which process the plaintext bit by bit and which we met already...