MATH 110: Number Theory for Cryptography — Stanford Root