Math 187B : The mathematics of modern cryptography (Spring 2024)
Main | Cocalc | Zulip | Canvas | Gradescope |
This course will be in person, UCSD and local regulations permitting.
The policies below will continue to be updated as UCSD and local authorities continue to update their regulations.
All the quizzes will administered in person. There will be no exception to this rule.
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.
Lecture: MWF 11-11:50am in Petersen 104
Instructor: Alina Bucur
Office: AP&M 7151
Email: alina@math.ucsd.edu
Office hours:
- W 2:15-3:15pm in APM 7218 (in person)
- W 7-8pm via Zoom (see Zulip for link)
Discussion sections: Attending section is not mandatory and you can attend whatever section you want. Please check blink for your discussion time.
TA: | Yongyuan "Steve" Huang | yoh011@ucsd.edu |
OH | TBD | |
Communication: Most communication about the course will take place in Zulip; Zulip includes both a general discussion forum, available to all students in the class, and one-on-one direct messages. A link to join Zulip can be found in the Checklist survey on Canvas. You have to use your @ucsd.edu email to join Zulip. Once you have joined, please use DMs/PMs instead of email for questions about the course; I may not answer emails. All course communication is subject to UCSD's academic integrity and harassment policies.
Chat office hours: In addition to the usual in-person or Zoom office hours posted above, we will be conducting "chat office hours" () 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. Some coding experience would be very useful.
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, 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. However, a willingness to learn and experiment is essential.
This course is based on the cloud computing platform CoCalc. The lectures use a "learn by doing" model in which students interact with CoCalc during the lecture; students are expected to attend class with a laptop or tablet with a keyboard (not a smartphone), but 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 minimal use of Canvas for this course, namely to administer a UCSD-mandated survey. Everything else will be on CoCalc or Gradescope.
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 at least one opportunity 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 includes a participation component which factors into the course grade (see below). In order to participate fully, students are expected to attend each lecture with a laptop or large tablet with keyboard, equipped with Internet access and a web browser. As a courtesy to fellow students, please keep other online activity to a minimum during lecture, and do not do anything that causes your device to produce audible output.
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. The only exceptions are quiz days.
Gradescope: The code to add this class on Gradescope can be found in the Checklist survey on Canvas. You have to use your @ucsd.edu email and your PID on Gradescope in order to get credit for the participation activities and quizzes.
Quizzes: There will be 3 quizzes administered Fridays during lecture. Sample quizzes will be posted on Friday the previous week. You can use printouts of the class notes. They can be slightly annotated (some minor corrections or writing in the margin, highlighter), but nothing beyond that. No other materials or resources are allowed. In particular you may not bring homework solutions (either your own or your TA's). You are also not allowed to bring electronic devices such as a cellphone, calculator, computer, or tablet. (The quizzes may require some arithmetic computations, but these are designed to be done by hand.)
Homework: There will be 4 assignments, due Fridays at 8pm. All assignments will be assigned, completed, submitted, evaluated, and returned using CoCalc; the process for this will be explained in class. The lowest homework score will be dropped.
Participation: Participation in the class will be assesed in two different ways.
- In class participation: each lecture will be presented in the form of a Jupyter notebook with which you will interact in various ways. This forms a graded component, which will be measured using CoCalc's timestamped changelogs for the appropriate directory in your course project; to accommodate asynchronous participation (e.g. you have to miss a class), the window being measured will close 24 hours after the end of the lecture. Participation will not be measured for the first two lectures (4/1, 4/3); the third lecture (4/5) will be measured for practice to illustrate how the system works.
- Asynchronous/remote participation activities: three participation activities that will be submitted in Gradescope. They can be completed remotely and they cannot be dropped.
Final exam: None. Instead, there will be an open-ended final project (due Friday, June 14 at 8pm), to be submitted via CoCalc. Details about this will be given by the beginning of week 8.
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.
- 40% homework (the lowest score will be dropped, all others will be weighted equally).
- 25% quizzes (the lowest quiz score will be dropped).
- 20% final project (This cannot be dropped.)
- 10% in-class participation (up to 18 of 22 lectures counted). Participation will be confirmed by CoCalc's timestamped changelogs for the appropriate directory starting in week 2. Participation will not be measured during the tests.
- 5% asynchronous/remote participation activities submitted through Gradescope.
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- |
Academic Integrity:
- You are welcome (and strongly encouraged) to work with other students in the class on hw (not quizzes). However, you must clearly indicate who you worked with on each problem. In addition, you must write your solutions in your own words; do not copy/paste from others, as CoCalc's TimeTravel feature makes this trivial to detect.
- You are welcome (and expected) to do research online using the CoCalc documentation, Google, Wikipedia, Stack Overflow, etc; but be sure to provide links to sources you use in your solutions. Be as specific as possible; e.g., provide URLs to individual web pages rather than to whole web sites.
- Misuse of CoCalc will be considered a violation of academic integrity. This includes unauthorized access to other user accounts, and online behavior that violates UCSD's discrimination and harassment policies.
- I reserve the right to take still photos or audio/video recordings during tests. This authority may be delegated to the TAs or to a designated proctor.
- Cheating on an quiz/hw/project or any infringement of UCSD's academic integrity or harassment policies will result in failing the class, as well as further disciplinary action. If you suspect a violation, please bring it to the attention of the instructor and/or TA immediately.
Grade Recording Errors: If there is any mistake in the recording of your scores, you will need the original quiz in order for us to make a change. For CoCalc assignments, changes will be made only if the version history warrants it. The error has to be reported within 1 week since it occurred. No error reports will be accepted after week #9 of the term.
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.
- Regrade requests will not be considered later than 3 days after the material was graded.
- 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.
- Instructor review requests will not be considered later than 1 week after the material was graded.
- No regrade requests will be considered after week 9.
Late adds: No matter when you add the course, you are responsible for all the hw, quizzes, etc. No exceptions.
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 had some nontrivial interaction with me outside lecture (e.g. during office hours).
Electronic devices: Please do not use devices (such as cell phones, laptops, tablets, iPods) for non-class-related matters while in class/section. No visual or audio recording is allowed in class/section without prior permission of the instructor (whether by camera, cell phone, or other means).
Announcements
- There will be no lectures and no quizzes M 5/27 (University holiday).