Practical Cryptography for Developers


Practical Cryptography for Developers
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.

Download and Read Links

Share this Book

[localhost]# find . -name "*Similar_Books*"


A Graduate Course in Applied Cryptography

Cryptography

Cryptography is an indispensable tool used to protect information in computing systems. It is used everywhere and by billions of people worldwide on a daily basis. It is used to protect data at rest and data in motion. Cryptographic systems are an integral part of standard protocols, most notably the Transport Layer Security (TLS) protocol, making

Android on x86

Android Intel

Android on x86: an Introduction to Optimizing for Intel Architecture serves two main purposes. First, it makes the case for adapting your applications onto Intel’s x86 architecture, including discussions of the business potential, the changing landscape of the Android marketplace, and the unique challenges and opportunities that arise from x86 de

Azure Web Apps for Developers

Azure

Azure Web Apps is a fully managed platform that you can use to build mission-critical web applications that are highly available, secure, and scalable to global proportions. Combined with first-class tooling from Visual Studio and the Microsoft Azure Tools, the Azure Web Apps service is the fastest way to get your web application to production. Azu

Programming Persistent Memory

C / C++ JavaScript

Beginning and experienced programmers will use this comprehensive guide to persistent memory programming. You will understand how persistent memory brings together several new software/hardware requirements, and offers great promise for better performance and faster application startup times - a huge leap forward in byte-addressable capacity compar

Graph Databases For Beginners

Graph NoSQL

So someone has heard about graph databases and wants to understand what all the buzz is about. Are they just a passing trend - here today and gone tomorrow - or are they a rising tide that businesses and development teams can't afford to ignore? Whether they're a business executive or a seasoned developer, something - perhaps a pressing business ch

Defend Dissent

Cryptography

Defend Dissent is an introduction to cryptography paired with the social impacts of surveillance and the protective potential of encryption, with a focus on US social movements. Each chapter ends with a story that brings social context to the material - from surveillance used against contemporary US protests to the African National Congress's use o