Learn how the good guys implement cryptography and how the bad guys exploit it.
In Hacking 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. Hacking 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.