We live an information age, with technology increasingly integrated into our daily lives. As a result, the security of our information is of the utmost concern, even as the interconnectedness of the Internet makes our data more vulnerable to attack. The ability to encrypt secrets and to conduct a trusted exchange of digital information, once a subject of interest primarily to governments and the military, is now a matter of necessity for us all.
At the end of the day, the foundation of modern cryptography relies upon the difficulty of solving certain mathematical problems; this course is intended to address them from both a mathematical and algorithmic point of view. We will cover some subset of the following topics: conventional encryption techniques, the Hill cipher, DES and SDES, RSA, the Rijndael cipher, discrete logarithms and the Diffie-Hellman key exchange, and elliptic curve cryptography.
All mathematical objects will be defined, so the prerequisites are minimal: Math 52 or 124, or permission should suffice. The course will be offered at a 295 level intended for undergraduates with a minimal background and at a 395 level for graduate students or others who are seeking a challenge. Computationally-minded individuals are especially welcome! The class will be driven by applications and examples.
Homework is due on Wednesdays. Be sure to show your work and explain how you got your answer. Correct but incomplete answers will only receive partial credit.
Some of the problems may require you to consult the text---this is an intentional effort to encourage you to read the required and recommended books throughout the course.
Cooperation on homework is permitted (and encouraged), but if you work together, do not take any paper away with you---in other words, you can share your thoughts (say on a blackboard), but you have to walk away with only your understanding. In particular, write the solution up on your own.
Certain problems will be computational in nature and the use of computer algebra packages such as Mathematica or Sage is encouraged. Please print out and attach your work. The use of computers is permitted on other problems, but should not take the place of practice and conceptual understanding.
Solutions are available upon request!
Homework #1 (due September 10)
Homework #2 (due September 17)
Homework #3 (due September 24)
Homework #4 (due October 1)
Homework #5 (due October 8, updated September 30)
Homework #6 (due October 15)
Homework #7 (due October 22)
Homework #8 (due October 29; modified October 20)
Homework #9 (due November 5)
Homework #10 (due November 12)
Homework #11 (due November 19; modified November 17)
Homework #12 (due December 10)
Sage is free software for algebra and number theory. See the download instructions to install it on your machine.
Alternatively, you can open a Sage worksheet by connecting to chaka.uvm.edu (link will only work on campus or on a machine with a VPN client installed); or just go to the Sage notebook, which is hosted by William Stein at the University of Washington.
Mathematica can be download and installed here.
Final Cipher Challenge:
There will be no exams in the course. In place of a final exam, there will be a final cipher challenge.