Math 187B : The mathematics of modern cryptography (Fall 2022)
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 and the final exam 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 102
Instructor: Alina Bucur
Office: AP&M 7151
- M 2-3pm in AP&M 7321
- W 6-7pm via Zoom (link will be posted in Zulip)
- or by appointment
Discussion sections: Attending section is not mandatory and you can attend whatever section you want. Please check blink for your discussion time.
|TA:||Jun Bo Laufirstname.lastname@example.org|
|OH||M, F 3-4pm in HSS 4024|
|Tu 3-4pm via Zoom|
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" (Mondays 5-7pm) 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. 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 minimal use of Canvas for this course, namely to administer a UCSD-mandated survey. 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. The only exceptions are quiz days and the final exam.
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 Mondays during lecture. Sample quizzes will be posted on Monday 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 Mondays 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 activities: There will be 3 participation activities. They can be completed remotely and they cannot be dropped.
Final exam: Tuesday 12/06/2022, 11:30am-2:30pm, location TBD. Please note that by signing up for this course, you are agreeing to sit for the final examination at this date and time. The exam is not cumulative. This grade cannot be dropped. The same rules as the quizzes: assigned seating, no electronics, the only material allowed are slightly annotated class notes.
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 exam (This cannot be dropped.) In addition, you must obtain a passing score on the final exam in order to pass the course. (The passing cutoff will be no higher than 65%.)
- 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% participation activities. These will be asynchronous.
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:
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.
- 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).
- There will be no lectures and no quizzes on the following days: F 11/11 (Veterans Day holiday); F 11/25 (Thanksgiving holiday).
- The first discussion section on F 9/23 will take place via zoom. See the first lecture in CoCalc for the zoom coordinates.