Posted by Martijn Grooten on Jan 22, 2018
This year, Alice and Bob will have been exchanging messages for 40 years. In terms of their contribution to cryptography, they have been almost as important as that other invention of their creators Rivest, Shamir and Alderman: the RSA cryptosystem. Alice and Bob have helped a great many people understand the basics of what is a complex subject.
But Alice and Bob only get you so far. If your job is to add encryption to the software project you're working on, or use encryption on the networks you're designing, Alice and Bob might be able to help you explain to a manager, or to your customers, what's going on, but they won't help you with the many details that really matter in cryptography.
For those people, Jean-Philippe Aumasson has written Serious Cryptography, which was published by No Starch Press late last year.
As one of the people behind the BLAKE2 hashing algorithm and the inventor of the tongue-in-cheek JPCoin cryptocurrency, Aumasson spends his days knee-deep in the practice of cryptography – something that is clear throughout the book, which not only focuses on the sometimes dry technical details of the various algorithms and protocols, but also explains clearly why the many design choices have been made.
Though this is not the first book I have read on the subject, I found myself regularly surprised by the many subtleties involved in the implementation of algorithms. These really matter for both performance and security, but are also easy to get wrong. The fact that two decades after 'Bleichenbacher-style' attacks were first made public, many systems appeared still to be vulnerable is quite a clear illustration of this.
Because the book focuses on practical use of cryptography, it is full of technical details and presents code snippets as it goes through the various algorithms and protocols: from AES to RC4 and from Diffie-Hellmann to the SHA-family of hashing algorithms. It does not do so, however, until it has first laid a solid base of fundamentals to answer questions like: what does it means when we say a cryptosystem is secure? What is randomness? And that so easily misunderstood question: what does it mean when a crypto scheme has been proven to be secure?
There is also an important, if more theoretical, chapter on 'hard problems' and the mathematical and computational theory behind the security of asymmetric algorithms. The final chapter, on the implications of quantum computers for cryptography, is also rather theoretical, at least for the time being, but is the best introduction to the subject I have read.
My favourite chapter, however, is that on authenticated encryption, a seemingly dry subject and one that is left out of many an introduction to the subject, yet one that really shows how cryptography is used in the real world today.
For many people with an interest in the subject, the book's title may be seen as a warning. It is far too technical to give you a background into the current debate on encryption backdoors, or to teach you the basics of RSA. Alice and Bob rarely feature in the book, whereas symbolic notations, such as T=E(K,S⊕O*), come up regularly.
However, for those who really want to understand how cryptography works, and who need to use it in practice, I thoroughly recommend Serious Cryptography.