Printed by Martin Kleppmann on 18 Nov 2020.
I even have factual printed recent tutorial materials that will doubtless be of hobby to computing folks:
a brand recent 8-lecture course on disbursed systems, and a tutorial on elliptic curve cryptography.
Since closing 300 and sixty five days I even were handing over an 8-lecture undergraduate course on disbursed systems at the University of Cambridge.
The first time I delivered it, I inherited the slides and workout routines from the contributors that lectured it in earlier years (Richard Mortier, Anil Madhavapeddy, Robert Watson, Jean Sir Francis Beaverbrook, and Steven Hand), and I factual extinct those materials with minor modifications.
It was as soon as a appropriate course, but it completely was as soon as getting rather dated (e.g. various topic cloth on CORBA, which is now of largely historical hobby).
Therefore, this 300 and sixty five days I made a decision to gain an intensive refresh of the course stammer, and wrote a be conscious recent situation of slides and lecture notes.
Additionally, due to the pandemic we’re now not having any in-particular person lectures, so I recorded videos for all of the lectures.
I made a decision to style all of this on hand publicly underneath a inventive commons CC BY-SA license, that contrivance that you’re welcome to make employ of it freely (including incorporating it into your maintain work), provided that you give credit score to me, and that you allotment your derived work underneath the same license.
The is right here:
- Lecture notes (PDF) (including workout routines)
- Slides: slideshow and printable (PDF)
- Lecture videos (YouTube)
- Course web stammer online
- Resolution notes for the workout routines are on hand on ask (electronic mail me and persuade me that you’re now not a scholar making an are attempting to cheat).
Cambridge supervisors can download the answer notes at this time (Raven login required).
The course is primarily designed for Cambridge undergraduate college students, and it entails some corrupt-references to other lessons.
Many other lessons also style their notes or slides publicly on hand, so you are going to have the selection to smooth ogle them up for folks that’re now not at Cambridge by going to the course on-line pages.
(Many lecturers prohibit their video recordings to Cambridge users easiest, so those could now not be publicly on hand.)
The disbursed systems course comprises about 7 hours of video and 87 pages of lecture notes.
It covers the following issues:
- Introduction: disbursed systems, computer networks, and RPC
- Arrangement fashions: network faults, break and Byzantine faults, synchrony assumptions
- Physical clocks, clock synchronisation, and causality
- Logical time, broadcast protocols (neatly-behaved, FIFO, causal, total expose)
- Replication, quorum protocols, state machine replication
- Consensus, particulars on the Raft consensus algorithm
- Reproduction consistency, two-segment commit, linearizability, eventual consistency
- Case experiences: collaboration tool, Google’s Spanner
The important thing focal point of this course is on figuring out the algorithms and the guidelines that permit us to make sturdy and neatly-behaved disbursed systems.
It makes employ of examples of sharp systems as motivation, and the videos encompass a pair of live demos of precise disbursed systems in circulation.
The scheme is to bring the fundamentals without being excessively theoretical; there are a pair of mathematical proofs within the workout routines, but most of the discussion is informal and example-primarily based.
The extent of this course is intended for second-300 and sixty five days undergraduates.
Our faculty students at this level have sensible fluency with mathematical notation, and a few background in programming languages and operating systems, in recount that’s what this course assumes.
Elliptic Curve Cryptography
One other doc I’m releasing this day is named
Enforcing Curve25519/X25519: A Tutorial on Elliptic Curve Cryptography.
There’s no video for this one, factual a 30-web page PDF.
Many textbooks quilt the ideas within the serve of Elliptic Curve Cryptography (ECC), but few expose creep from the equations to a working, swiftly, and stable implementation.
On the different hand, while the code of many cryptographic libraries is on hand as delivery supply, it can well be rather opaque to the untrained catch out about, and it’s miles now not continuously ever accompanied by detailed documentation explaining how the code got right here about and why it’s miles correct.
This tutorial bridges the hole between the mathematics and implementation of elliptic curve cryptography.
It is written for readers who’re recent to cryptography, and it assumes no extra mathematical background than most undergraduate computer science lessons.
Starting from first guidelines, this doc shows web every line of code in an implementation of the X25519 Diffie-Hellman key agreement draw, in step with the widely-extinct Curve25519 elliptic curve.
The implementation is in step with Dan Bernstein et al.’s TweetNaCl.
It is swiftly and stable; in particular, it makes employ of fixed-time algorithms to terminate facet-channel attacks.
I wrote this due to I desired to search out out how precise implementations of ECC work, but I couldn’t catch appropriate belongings that defined it, so I wrote the doc as I figured it out step-by-step from a different of sources (and by doing most of the calculations myself).
I am hoping others will even catch it well-known.
To acquire notified as soon as I write one thing recent,
follow me on Twitter
or enter your electronic mail address:
I obtained’t give your address to anybody else, obtained’t send you any spam, and likewise you are going to have the selection to unsubscribe at any time.