Cryptography Engineering: Introduction to Cryptography
· First published on iskakaushik.github.io
This chapter aims to give us the background necessary to understand the rest of the book.
Encryption. “Encryption is the original goal of cryptography”. Interesting. I am not sure what other uses for cryptography are. (Maybe authentication?). They start by introducing Alice, Bob and Eve to us. Eve is the eavesdropper, Alice and bob try to communicate without Eve finding out.
“An attacker shouldn’t be able to learn any information about m, except possibly it’s length and the time it was sent”
We skip key exchange for now and assume that Alice and Bob have ways to exchange keys, i am guessing this is an infrequent event. Alice sends Bob the cipher text after encrypting message m with the encryption key K_e.
Kerckhoffs’ Principle. Kerckhoffs, a french dude, wrote two journal articles on La Cryptographie Militaire, in which he stated six design principles for military ciphers. The summary of them being:
“the security of an encryption scheme should depend only on the secrecy of the key, and not on the secrecy of the algorithm.”

Authentication. This is different from encryption. How does Bob know that the message he got was from Alice, this is totally possible if Eve has the ability to manipulate the channel. We now introduce a new key K_a, which is different from the encryption key. We introduce a new term, message authentication code or MAC.
- Alice computes a = hash(m, K_a), and sends both m and a
- Now Bob authenticates by computing a himself.
“Pure authentication is only a partial solution”. Eve can record some messages and can replay them on the channel. Eve can also delete messages. Naughty Eve. Well, message numbering can solve this problem. This still leaves the possibility of deleting the messages and delaying them but thats as far as she can go.
Public-Key Encryption. How do we exchange keys. Alice and Bob meet in person, they exchange their key. What is 20 people meet and decide to exchange keys, there’d be 200 pairs of keys.