Learn how the good guys implement cryptography and how the bad guys exploit it.
In Implementing and Exploiting Cryptography
you’ll find unique guidance for creating strong cryptography that can withstand attempts to exploit it including:
- DUAL_EC_DRBG random number generator using Go’s elliptic curve library
- Exploiting the RC4 stream cipher, as used in WEP
- Block ciphers for padding oracle attacks and manipulation of initialization-vectors
- Exploiting hash functions by using extension and rainbow table attacks
- Implementing RSA key generation using the Miller-Rabin primality test and exploiting it using the Weiner attack
- Exploiting PKCS1.5 padding by using Bleichenbacher's chosen-ciphertext attack
- Implementing Diffie-Hellman Key Exchange and breaking it using a MITM parameter injection attack
Theoretically strong cryptography often becomes vulnerable to exploitation as soon as it’s built into real applications and networks. Implementing and Exploiting Cryptography
details dozens of practical cryptographic implementations and then breaks down the flaws that adversaries use to exploit them. You’ll learn just what it takes to write cryptographically secure code, build an intuition for spotting potential vulnerabilities, and master techniques to avoid the pitfalls that leave your systems at risk.
about the technology
Everything we do in the digital world is protected by cryptography. It is the final and most reliable defense of our data, and it is often impossible to break in its pure mathematical form. Unfortunately, life is different outside the lab. Implementing cryptography in code and hardware is never perfect, and any crack is an invitation for a would-be attacker’s exploitation.
about the book
Implementing and Exploiting Cryptography
builds your understanding of cryptography by revealing the “lockpicks” that bad actors use to exploit security protocols, firewalls, and other cryptography-based protection schemes. The book dives deep into each cryptographic exploit, explaining complex concepts in detail through real-world analogies, code annotations, and pseudo-code. You’ll explore historical examples where popular cryptography has failed, such as the breaking of the WEP protocol, and see what impact those failures have had on modern cryptography.
about the reader
For software and security engineers. No advanced mathematical knowledge required. Examples in Go.
about the authors
is a software engineer with more than a decade of experience in the security industry. He currently works as a Software Engineering Architect at Salesforce, and his previous roles have included Google and Microsoft. He has worked in a variety of areas related to security engineering, including large-scale distributed services, embedded devices intended for multi-factor authentication, and cryptographically verifiable elections.
is a software engineer with nearly forty years of experience in securing hardware and software. He conducts the crypto-writing workshop at Google and loves teaching engineers the fundamentals of writing secure code.