This book offers an introduction to cryptology, the science that makes secure communications possible, and addresses its two complementary aspects: cryptography---the art of making secure building blocks---and cryptanalysis---the art of breaking them. The text describes some of the most important systems in detail, including AES, RSA, group-based and lattice-based cryptography, signatures, hash functions, random generation, and more, providing detailed underpinnings for most of them. With regard to cryptanalysis, it presents a number of basic tools such as the differential and linear methods and lattice attacks.
This text, based on lecture notes from the author's many courses on the art of cryptography, consists of two interlinked parts. The first, modern part explains some of the basic systems used today and some attacks on them. However, a text on cryptology would not be complete without describing its rich and fascinating history. As such, the colorfully illustrated historical part interspersed throughout the text highlights selected inventions and episodes, providing a glimpse into the past of cryptology.
The first sections of this book can be used as a textbook for an introductory course to computer science or mathematics students. Other sections are suitable for advanced undergraduate or graduate courses. Many exercises are included. The emphasis is on providing reasonably complete explanation of the background for some selected systems.