Reed Solomon Encoding

About a year or two ago, I started reading a book called A Progammer’s Introduction to Mathematics. In one of the first chapters on polynomials there was an application for Shamir’s Secret Sharing scheme. Having a passing familiarity with Reed-Solomon encodings through my job, I thought it sounded quite similar to Reed-Solomon, albeit using the recovery mechanism as a way to hide data rather than for erasure/error coding (it turns out that I was right).

This revelation and the coding exercise in the book started a nearly year-long exploration into the Reed-Solomon algorithm (albeit, in limited free time such as the 3 minutes I could read a math paper in bed before falling asleep). I ended up writing both Reed-Solomon and Shamir’s Secret Sharing scheme in Rust (both for Rust practice and for fun). I also ended up creating a presentation both for fun and for my colleagues at work (I work in the Persistent Disk team at Google) and presented it over 3 1-hour sessions. While I’d like to turn my slide deck into a series of blog posts one day, it’s a fair bit of effort, so for now I’ve decided to start with a link to my slide deck and a plan to come back and edit this post in the future if I ever do convert it into blog posts.

Without further ado, here is the pdf link the my presentation on Reed-Solomon and here is the pptx link (which has speaker notes).

I hope to publish my code soon.