Explore Go: Cryptography (Go 1.22 edition)

Explore Go: Cryptography (Go 1.22 edition)

$44.95

Can you keep a secret? I hope so, because much of the modern world is built on cryptography: the art of secret messages. This book will show you what it’s all about and how it really works, with dozens of example programs in Go. Includes free updates for life.

Reviews

⭐⭐⭐⭐⭐ “One of the most accessible and even fun books about cryptography I've ever read. John writes vividly, with many a neat turn of phrase, and the text is full of wit and humour.”
—Kurtis Connor

⭐⭐⭐⭐⭐ “I laughed, I learned. It's a great book that manages to explain complicated ideas in really simple, straightforward language.”
—Dian Amencourt

⭐⭐⭐⭐⭐ “This is a remarkable book, practically fizzing with enthusiasm for its subject. It whisks you through the worlds of cryptography, mathematics, physics, and computer science, and shows you that they're all connected in surprising and thought-provoking ways. Highly enjoyable.”
—Cuong Quoc

⭐⭐⭐⭐⭐ “John has a knack of writing almost luminously clear explanations that stick in your mind long after finishing the book.”
—Patrick Devlin

About the book

Have you ever wondered how passwords are stored securely? What makes a good password? How codes and ciphers are designed—and broken? Where random numbers come from, and what makes them random? What are the connections between lava lamps, space games, digital signatures, black holes, and Bitcoin? Let's find out.

Join Alice, Bob, Eve, and Mallory as we learn about the fundamental principles of cryptography and digital security, from brute force and blockchains to keyspaces and hashing. We'll build a cipher system in Go from scratch, with step-by-step instructions and code examples at each stage (also available on GitHub).

Starting with the simplest cipher imaginable, we'll gradually improve the system by attacking it, adding sophisticated features like block chaining, padding, digests, and authentication. Along the way, you'll develop a powerful intuitive understanding of ciphers and keys, what makes them strong (or weak), and how to use them securely.

We'll see how state-of-the-art modern algorithms like AES, SHA-256, Diffie-Hellman, and RSA work under the hood, and how to integrate them into real-world Go tools. This book is essential reading for all Go programmers who have to deal with encryption, authentication, and security... in other words, all of us!

Table of Contents

What you’ll learn

By reading through this book and completing the challenges, you’ll learn about:

  • The fundamental principles of codes and ciphers

  • Building software test-first in Go

  • How to write useful command-line tools

  • Password security, keyspaces, and cracking

  • Blocks, streams, chains, and cipher modes

  • Padding, number bases, and endianness

  • Pseudo-random and true random number generators

  • Entropy, complexity, and quantum uncertainty

  • Attacks, nonces, and initialization vectors

  • Message digests, integrity, and authentication

  • MD5, SHA-1, SHA-256, and SHA-3

  • Rainbow tables, salts, and zero-knowledge proofs

  • Cryptocurrencies, key exchange, and asymmetric encryption

  • Public-key cryptography: Diffie-Hellman and RSA

  • AES/Rijndael internals and implementations

  • AES-256 and AES-GCM

  • Modern cryptography with the Go standard library

  • Post-quantum cryptography

What you get

Your digital download contains the book in PDF format. This should be suitable for any ebook reader, computer, phone, or tablet.

Read a sample chapter

Updating to the latest edition

All my books come with free updates for life, so if you’ve bought a previous version of this book, here’s what you need to do to get the latest edition. Click the link in your original download email (make sure you save this, as it’s your key to future updates). You’ll see what looks like an error page saying your download link for the old edition has expired, but that’s okay: click the link in the text, and you’ll be sent a new download email for the current edition.

Add To Cart