Practical Cryptography for Developers - Free Book by Svetlin Nakov
Warning: this book is not finished! I am still working on some of the chapters. Once it is completed, I will publish it as PDF and EPUB. Be patient.
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.
Author: Svetlin Nakov, PhD - http://www.nakov.com
Contributors: Milen Stefanov, Marina Shideroff
ISBN: 978-619-00-0870-5 (9786190008705)
This book is free and open-source, published under the MIT license.
Official Web site: https://cryptobook.nakov.com
Official GitHub repo: https://github.com/nakov/practical-cryptography-for-developers-book.
Sofia, November 2018
Summary
- Welcome
- Preface
- Cryptography - Overview
- Hash Functions
- MAC and Key Derivation
- Secure Random Generators
- Key Exchange and DHKE
- Encryption: Symmetric and Asymmetric
- Symmetric Key Ciphers
- Asymmetric Key Ciphers
- The RSA Cryptosystem - Concepts
- RSA Encrypt / Decrypt - Examples
- Exercises: RSA Encrypt / Decrypt
- Elliptic Curve Cryptography (ECC)
- ECDH Key Exchange
- ECDH Key Exchange - Examples
- Exercises: ECDH Key Exchange
- ECC Encryption / Decryption
- ECIES Hybrid Encryption Scheme
- ECIES Encryption - Example
- Exercises: ECIES Encrypt / Decrypt
- Digital Signatures
- Quantum-Safe Cryptography
- More Cryptographic Concepts
- Crypto Libraries for Developers
- Conclusion
Tags: cryptography, free, book, Nakov, Svetlin Nakov, hashes, hash function, SHA-256, SHA3, BLAKE2, RIPEMD, MAC, message authentication code, HMAC, KDF, key derivation, key derivation function, PBKDF2, Scrypt, Bcrypt, Argon2, password hashing, random generator, pseudo-random numbers, CSPRNG, secure random generator, key exchange, key agreement, Diffie-Hellman, DHKE, ECDH, symmetric ciphers, asymmetric ciphers, public key cryptosystems, symmetric cryptography, AES, Rijndael, cipher block mode, AES-CTR, AES-GCM, ChaCha20-Poly1305, authenticated encryption, encryption scheme, public key cryptography, RSA, ECC, elliptic curves, secp256k1, curve25519, EC points, EC domain parameters, ECDH key agreement, asymmetric encryption scheme, hybrid encryption, ECIES, digital signature, RSA signature, DSA, ECDSA, EdDSA, ElGammal signature, Schnorr signature, quantum-safe cryptography, digital certificates, TLS, OAuth, multi-factor authentication, crypto libraries, Python cryptography, JavaScript cryptography, C# cryptography, Java cryptography, C++ cryptography, PHP cryptography.