Crypto 101 is an introductory course on cryptography intended to help programmers understand encryption in order to write better code. It is currently available in a DRM-free PDF with EPUB and Mobi also listed on the website. Crypto 101 uses Python for exercises which can run on OS X, Windows, and Linux.
The book is available now in its pre-release form with a Creative Commons – Attribution-Noncommercial license. It is being written as an open-source project using github. The 252 page book, written by Laurens Van Houtven, is almost entirely complete at this point. It stems from an extension of a presentation given at PyCon 2013.
Crypto 101 is an introductory course on cryptography, freely available for programmers of all ages and skill levels.
Start to finish.
Comes with everything you need to understand complete systems such as SSL/TLS: block ciphers, stream ciphers, hash functions, message authentication codes, public key encryption, key agreement protocols, and signature algorithms.
Learn by doing.
Learn how to exploit common cryptographic flaws, armed with nothing but a little time and your favorite programming language.
Forge administrator cookies, recover passwords, and even backdoor your own random number generator.
DRM-free and available in all common formats:
Exercises run on OS X, Windows, Linux and BSDs.
Crypto 101 is available for everyone, for free, forever. Development is hosted on Github, funded by free time and your donations. You are free to donate any amount you want, and all donations are of course entirely voluntary. Learn more about contributing. ...
CHAPTER 1. ABOUT THIS BOOK
This book is intended as an introduction to cryptography for programmers of any skill level. It’s a continuation of a talk of the same name, which was given by the author at PyCon 2013.
The structure of this book is very similar: it starts with very simple primitives, and gradually introduces new ones, demonstrating why they’re necessary. Eventually, all of this is put together into complete, practical cryptosystems, such as TLS, GPG and OTR. T
he goal of this book is not to make anyone a cryptographer or a security researcher. The goal of this book is to understand how complete cryptosystems work from a bird’s eye view, and how to apply them in real software.
The exercises accompanying this book focus on teaching cryptography by breaking inferior systems. That way, you won’t just “know” that some particular thing is broken; you’ll know exactly how it’s broken, and that you, yourself, armed with little more than some spare time and your favorite programming language, can break them. By seeing how these ostensibly secure systems are actually completely broken, you will understand why all these primitives and constructions are necessary for complete cryptosystems. Hopefully, these exercises will also leave you with healthy distrust of DIY cryptography in all its forms
This book hopes to be a bridge: to teach everyday programmers from any field or specialization to understand just enough cryptography to do their jobs, or maybe just satisfy their appetite.
With all that's been happening in the past weeks, months, years, I thought you might find interesting...