Applied Cryptography: Protocols, Algorithms and Source Code in C

by Bruce Schneier

Applied Cryptography: Protocols, Algorithms and Source Code in C by Bruce Schneier

Cryptography has long been a fascinating subject that has captivated many people over the centuries. To understand technology today and its implications for the future, one must have a fundamental understanding of cryptography. As such, reading Applied Cryptography: Protocols, Algorithms and Source Code in C by Bruce Schneier is essential for anyone looking for a comprehensive guide to cryptography.

The book is divided into four main parts – Introduction to Cryptography, Cryptographic Protocols, Cryptographic Algorithms, and Implementation Details. Each of these sections feature an in-depth discussion of all the main aspects of cryptography starting from the fundamentals that provide the reader with a foundation for understanding the more complex topics covered later on in the book.

In the Introduction to Cryptography section, Schneier takes a look at the history of cryptography, why it is so important and how it has evolved over the years. He then moves on to look at the two main types of cryptography – secret-key cryptography and public-key cryptography – and how they work. Lastly, the section looks at the laws of cryptography, and how the law has changed over the years.

The Cryptographic Protocols section discusses protocols that are used to transmit and exchange secure data over a network. Topics covered include the basics of encryption, authentication, digital signatures and secure protocols such as SSL and TLS. Schneier then goes on to look at specific protocol implementations such as Kerberos, SSH and PGP, before concluding with a look at key management and certification authorities.

The Cryptographic Algorithms section delves into the mathematics behind cryptography. It looks at the various algorithms used for both secret-key and public-key cryptography, such as DES, RSA and IDEA, as well as newer algorithms such as Elliptic Curve Cryptography. Aimed at those who want to understand the theory behind the algorithms, Schneier includes mathematical examples to illustrate the concepts discussed.

The final section takes a look at the implementation details of cryptography, discussing topics such as the use of hardware with cryptographic algorithms, random number generation and attacks such as brute force and dictionary attacks. Detailed source code is included throughout the section to show how it is possible to create secure cryptographic applications.

Overall, Applied Cryptography: Protocols, Algorithms and Source Code in C by Bruce Schneier is an excellent resource for those interested in understanding how cryptography works and how to apply it practically. Not only does the book provide a comprehensive introduction to the history and fundamentals of cryptography, it also goes into great detail on the mathematical theories, protocols and algorithms behind secure communication. Of particular use is the comprehensive source code provided throughout the book, which helps the reader to understand how cryptography can be implemented in practical applications.