Practical Cryptography for Developers


Book Details
Author | Svetlin Nakov |
Published | 2018 |
Edition | 1 |
Paperback | 236 pages |
Language | English |
ISBN-13 | 9786190008705 |
ISBN-10 | 6190008704 |
License | MIT |
Book Description
A modern practical book about cryptography for developers with code examples, covering core concepts like: hashes (like SHA-3 and BLAKE2), MAC codes (like HMAC and GMAC), key derivation functions (like Scrypt, Argon2), key agreement protocols (like DHKE, ECDH), symmetric ciphers (like AES and ChaCha20, cipher block modes, authenticated encryption, AEAD, AES-GCM, ChaCha20-Poly1305), asymmetric ciphers and public-key cryptosystems (RSA, ECC, ECIES), elliptic curve cryptography (ECC, secp256k1, curve25519), digital signatures (ECDSA and EdDSA), secure random numbers (PRNG, CSRNG) and quantum-safe cryptography, along with crypto libraries and developer tools, with a lots of code examples in Python and other languages.
This book is designed for developers who write code daily, for software engineers who build software systems, web applications, mobile apps, and other software. It may also be useful for DevOps engineers working with cryptographic algorithms and automation scripts, for system administrators seeking a better practical understanding of cryptography, for information security engineers who regularly encounter cryptography and need to know which ciphers and algorithms are secure or vulnerable - including potential attacks - and for experienced QA engineers involved in security testing and code reviews related to cryptography, among other IT professionals.
The book focuses on the application of cryptographic algorithms and libraries, rather than on the design of ciphers, signature schemes, or cryptosystems. Readers will learn how cryptosystems operate - with minimal mathematical complexity - and how to apply them in their daily work. While not entirely free of mathematics, the book keeps the complexity accessible for the average developer, explaining intricate concepts in a clear and simplified manner. It is written by developers for developers, not by academics or mathematicians, and emphasizes coding intelligently by understanding core concepts and using modern cryptographic algorithms and techniques correctly, as practiced in the software industry.
The author assumes that most developers work with high-level programming languages such as JavaScript, Python, C#, Java, or PHP. For this reason, most code examples are provided in Python, which can be easily adapted to other languages.
If you enjoyed the book and would like to support the author, you can purchase a printed copy (hardcover or paperback) from official retailers.