Math 187B: The mathematics of modern cryptography (Spring 2021)

Main Canvas CoCalcZulip


The policies below will continue to be updated as UCSD and local authorities continue to update their regulations.

Due to the COVID-19 pandemic, this course will be taught remotely and will accommodate participation from any timezone; however, all times will be announced in Pacific Daylight Time (PDT = UTC-7) except as indicated. You are responsible for meeting all deadlines as announced, regardless of the timezone you are in.

Lectures will be given synchronously, recorded, and made available for later viewing. By attending the live lecture, you give permission to be recorded by the instructional staff only, not by other students. If you do not want to be recorded, please view the recorded lecture after it has been posted. You do not have permission to record any other interactions with the instructor or TAs, or to share the recorded lectures.

Online instruction is new to us all. I will do my best to give you all the tools to succeed, but I also need your help. I suggest you follow these tips on how to succeed in online instruction from UCSD Educational Psychologist Celeste Pilegard. She is an expert on multimedia learning.

California law prohibits any recording of communication without the express consent of all the attendees. You do not have my consent or any of the TA's consent to record any interactions (including but not limited to lectures, discussions, and office hours). It is therefore illegal to record and you would be liable to prosecution and civil suits.

Students do not have permission to share the recordings or the links to the recordings with anyone at all.

Some additional information, particularly on the use of CoCalc, will be given in the first lecture; CoCalc also provides a tutorial for students.

Lecture: MWF 3-3:50pm via Zoom (the link will be posted on Canvas)

This class includes a participation component which factors into the course grade (see below). In order to participate fully, students are expected to use a laptop/desktop or large tablet with keyboard, equipped with Internet access and a web browser. If you cannot fulfill this requirement, do not enroll in the course!

In-class participation will typically include interaction with Jupyter notebooks in CoCalc, use of the chat room in CoCalc, and online research/forms. As a courtesy to fellow students, please mute your mic unless you need to speak and do not do anything that causes your device to produce audible output. The best way to ask questions is to use the Zoom chat.

Instructor: Alina Bucur
Office: AP&M 7151
Email: alina@math.ucsd.edu
Office hours: W 8-9pm

Discussion sections: Attending section is not mandatory and you can attend any section you choose, not necessarily the one you are registerd for. Please check blink for your discussion time.

TAs: Jun Bo Lau Thomas Grubb
A01 A02
jblau@ucsd.edu tgrubb@ucsd.edu
OHTh 7-8pm F 11am-12pm

Communication: Most communication about the course will take place in Zulip; Zulip includes both a general discussion forum, available to all students in the course, and one-on-one direct messages. A link to join Zulip will be posted to Canvas. Once you have joined, please use DMs instead of email for questions about the course; I will not answer emails unless they are of the form 'I cannot get on zulip'. There will also be some communication in the CoCalc chatroom (see below). All course communication is subject to UCSD's academic integrity and harassment policies.

Chat office hours: In addition to the Zoom office hours posted above, we will be conducting "chat office hours" Fridays 5-8pm: during this time, the course staff will be monitoring the course chatroom on CoCalc to answer any questions that may arise.

Prerequisites: MATH 187/187A and one of MATH 18 or 20F or 31AH; or consent of the instructor.

Course description: The object of this course is to study modern public key cryptographic systems and cryptanalysis (e.g. RSA, Diffie-Hellman, Elliptic Curve Cryptography, Lattice-based cryptography, Homomorphic Encryption) and the mathematics behind them. We also explore other applications of these computational techniques (e.g. integer factorization and attacks on RSA).

Although mathematics is still largely taught as a pencil-and-paper (and chalk) subject, this approach ignores the fundamental role played by computing technology in the process of mathematical reasoning and discovery, as well as the very practical constraints imposed by computation on the subject of modern cryptography. This course will be taught in a hybrid fashion; there will be traditional-like lectures delivered via Zoom, but also lectures that will consist of interactive demonstrations, while assignments will combine conceptual questions with guided experimentation and discovery. We will make extensive use of the Python programming language and the SageMath computer algebra system; however, no prior exposure to these tools will be assumed.

This course is based on the cloud computing platform CoCalc. As one component of the course grade is in-class participation, students are required to use a laptop or desktop or large tablet during lectures; however, the only local software installation required is a web browser. More details on how CoCalc is to be used will be given in the first lecture. There will only be mininal use of Canvas for this course, namely to record the grades. Everything else will be on CoCalc.

Although Math 187B has been taught in some form since 2017, it remains highly experimental in both its use of new technology and the approach to pedagogy. In addition to the final course evaluations, there will be several opportunities to submit feedback during the course; this feedback will help me evaluate some of the experiments and plan modifications for future iterations of the course.

This class is not open for concurrent enrollment.

Required text: none. In lieu of purchasing a textbook, students will need to create a free account on CoCalc using their UCSD email address in order to complete and submit assignments. (It is not necessary to pay for an upgraded account; equivalent functionality will be provided to enrolled students.)
For those who want to read more, a good reference is An introduction to mathematical cryptography by Hoffstein, Pipher and Silverman. (The link provides electronic access through UCSD library. You would need to VPN into the UCSD network in order to gain access.)

CoCalc: CoCalc is a web service running the Sage open-source computer algebra system, but it can be accessed using any web browser and so requires no special software installation. Sage in turn is based on the Python programming language, but no prior knowledge of the Python language will be assumed.
All students are required to create an account on CoCalc using their @ucsd.edu email address in order to complete and submit assignments. There is no cost for a basic account, so you can try out the software for free.
Note that the web interface is not currently optimized for small screens like smartphones; you might be able to manage with a large tablet and keyboard, but I can't guarantee that this will work. I also recommend bringing a suitable device to lecture/discussion so that you can try things out as we demonstrate them!
Misuse of CoCalc, including abusive or intolerant behavior, will be subject to campus disciplinary measures.

Computers: Students will need to use a computer that can access the CoCalc website and Zoom.

Quizzes: There will be 4 quizzes of 20min each (held Fridays in weeks 3, 5, 7, 9), administered through Gradescope (within Canvas). There will be a practice quiz during week 2 to help you familiarize yourself with the process. Quizzes will be administered during the lecture period (3-3:50pm) and at a second time to be announced later.
During each quiz, you may use any resources (notes, books, even search engines) as long as you do not communicate with any other humans. For example, posting a question to Chegg is not permitted.
The lowest quiz score will be dropped. Handwritten papers must be legible, or else your quiz may not be graded.There will be no makeup or extensions on quizzes. Quiz grades will be available on Gradescope and/or Canvas.

Homework: There will be 4 assignments, due Fridays at 9pm during weeks 2, 4, 6, 8. All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process for this will be explained in the first lecture. There will be a practice hw during week 1 to help you familiarize yourself with the process. Late homework will not be accepted and there will be no exception to this rule. If you fail to submit your homework before the deadline, then you will automatically receive a zero for that assignment. Please do not contact the teaching staff to ask for leniency!


Final project: due Wednesday, June 9, at 6pm PDT. Please note that by signing up for this course, you agree to submit the final project by this date and time. This grade cannot be dropped.

Grading: All grades are recorded on Cocalc and Gradescope.
Only grades that appear in CoCalc and Gradescope will be included in calculating the total score for the course.
It is your responsibility to make sure your grades are recorded.

Since these parameters have been chosen to be somewhat forgiving, no exceptions will be granted, nor will there be an opportunity to make up missed work. This applies even if you join the course late.
Any infringement of UCSD's academic integrity or harassment policies, including cheating on a quiz/hw/project, will result in failing the class, as well as further disciplinary action. If you suspect a violation, please bring it to the attention of course staff immediately; we will also be monitoring Chegg and similar sites for suspicious activity.

For the conversion of raw scores into letter grades, the following minima are guaranteed:

Percentage 97 93 90 87 83 80 77 73 70
Minimum grade A+ A A- B+ B B- C+ C C-

Additionally, any score in at least the 85th percentile or higher is guaranteed an A grade, while any score in the 65th percentile or higher is guaranteed a B grade.

Academic Integrity:

Regrade Policy:  If you believe there might be an error in the grading and wish to have your quiz/homework regraded, you must observe the following rules.

  1. Regrade requests will not be considered later than 3 days after the material was graded.
  2. If you disagree with the TA's answer to your regrade request, you may ask for the instructor to review it. In order to do this, you must:
    • make your request within 24 hours of receiving the TA's answer
    • and
    • ask that they forward it to the instructor.
  3. Instructor review requests will not be considered later than 1 week after the material was graded.
  4. No regrade requests will be considered after week 9, except for the final project.

Letters of recommendation:  In general, you should try to get a letter of recommendation from a professor with whom you had some one-to-one contact. I will consider recommendation requests only from people who have placed in the top 25% of the class and who have had some nontrivial interaction with me during and/or outside lecture (which this quarter amounts to interacting with me during zoom office hours).

Electronic devices: Please make sure your mic is muted when you don't need to speak. No visual or audio recording is allowed in class/section without prior permission of the instructor and all other attendees (whether by camera, cell phone, or other means).

Announcements