Modern Cryptography from Scratch, in Scratch

David Buchanan

Playlists: 'emf2022' videos starting here / audio

Scratch is a programming environment aimed at children ages 8 to 16. It's simple and easy to learn, but lacks many features that experienced programmers have come to expect, such as version control, bitwise operators, or integers!

This talk provides a high-level overview of authenticated encryption with ChaCha20-Poly1305, and X25519 Elliptic-Curve Diffie-Hellman key exchange (both used in modern protocols), and how we overcame the challenges of implementing them efficiently in Scratch.

The talk is aimed at those with an intermediate background in programming and maths, but not necessarily cryptography. Hopefully I'll make modern cryptography look a bit less inscrutable, while also showing that Scratch is a "real" programming language.