Tertiary navigation

Math 493, Section 002
Mathematics of Cryptography: An Introduction

Classroom: 4301 Exploratory Hall, Mondays and Wednesdays 10:30-11:45am
Computer lab: 4107 Exploratory Hall, Thursdays 10:30-11:45am
Office Hours: 4113 Exploratory Hall, Thursdays 4:30-5:55pm and by appointment

Professor: Anton Lukyanenko
Email: alukyane@gmu.edu


Syllabus

The course is intended for freshmen and sophomores interested in mathematics, and will likely be offered as Math175 in the future. The 493 course number is temporary, as the course is being offered for the first time at GMU.

Course Description

Every day, 143,000 terabytes of data are transferred across the internet, including financial transactions, medical records, and sensitive client data.

Half of this traffic is secured through encryption, relying on mathematical algorithms such as the RSA to encode the data in a way that only the recipient can decode.

In this class, we will see how cryptography works first-hand. We will start with classical ciphers (Atbash and Caesar ciphers) and develop our mathematical techniques and programming abilities until we are able to implement RSA from scratch.

Topics covered in the course lead into the following majors: mathematics, computer science, electrical engineering, and cyber security engineering.

The course satisfies the Math125 Discrete Mathematics requirement for the purposes of the mathematics major, and may satisfy requirements for other majors.

Registering

The course is intended for students that have received a B or better in a calculus course, but have not taken any formal proof classes (Math290 or above).

No background in mathematics or programming is expected, but students should be eager to develop their own mathematical theory and learn to code.

The course requires permission from the instructor. Send me a quick email asking for an overrideif you would like to register.

Course Format

The course structure is set up to encourage maximal exploration of mathematics. In particular, the class size is limited to 12 people, there will be no lectures, and students will be encouraged to develop the course content as the semester goes along, presenting their ideas to each other during class and writing up their results as a "course textbook" instead of taking tests. In the computer lab, we will take the mathematical ideas and turn them into interactive code, breaking and creating encryption codes along the way.

List of Worksheets

The course is worksheet-based, with each worksheet taking 1-4 class sessions to complete. The worksheets develop the background theory for cryptography as follows (subject to change):

  1. Codes
  2. Numbers
  3. Addition and Multiplication
  4. Modular addition
  5. Shift ciphers
  6. Remainders
  7. Modular multiplication
  8. Multiplicative inverses
  9. Affine ciphers
  10. The Euclidean algorithm
  11. Extended Euclidean algorithm
  12. RSA encryption
  13. Prime numbers
  14. Fermat's and Euler's Little Theorems, RSA works!

List of Labs

The worksheets above are supplemented by lab excercises, with each one taking 1-2 class sessions to complete. In labs, students study ciphers, implement some of the number theory developed in the worksheets, and work their way up to implementing the RSA algorithm (subject to change):

  1. Cracking codes
  2. Semi-Automatic Decoding
  3. Adding and Multiplying
  4. Frequency analysis
  5. Kid Krypto
  6. Base-26
  7. MyPowerMod and RSA