Homework project for Stanford Crypto1 course (coursera.org)