ECS 127: Cryptography — Course Information — Winter 2019

Please read everything on this handout. Not all of it is standard.

Course webpage

The course webpage is on my personal server, not Canvas. You should check here regularly. It is where homeworks and important announcements will be found. It is linked to from my personal homepage.

Class meetings

Our course meets MWF 12:10-1 in Giedt 1002. Additionally, you can go to either of two discussion sections (regardless of which one you signed up for): Each week, the same person will cover both sections (usually James). New material won’t be covered in discussion section unless I indicate otherwise; in that sense, you might consider the discussions optional. Discussion sections begin week-2; there is no discussion on Monday, Jan 7, the first day of class.

Gradescope and Piazza

You need to register for both gradescope and piazza. Please enter your name exactly as it appears on the class roster. Our class shouldn’t be hard to find: UC Davis course ECS 127, Winter 2019. The entry code for both websites is the same: 92P3K8. In case of difficulty, contact John at jmchan100@gmail.com.

Please use piazza for (nonpersonal) course questions, rather than using email or Canvas. Please make sure your questions/comments to piazza don’t degenerate into providing significant ideas for solving homework problems. It is possible that important announcements will be made only on piazza.

Homeworks will be turned in and graded using gradescope. Exams will also be graded and returned via gradescope.

Staff

Professor: Phillip Rogaway
Office: Kemper 3009
Email: rogaway@cs.ucdavis.edu
Homepage: www.cs.ucdavis.edu/~rogaway
TA1: John Chan
Email: jmachan@ucdavis.edu
TA2: Zane Rubaii
Email: zrubaii@ucdavis.edu
TA3: James (Yusi) Zhang
Email: ysizhang@ucdavis.edu

Office hours will be posted and kept up to date on the course homepage.

Overview

This is a course in modern cryptography. Here’s the official course description. I expect to lecture on most or all of the following: - introduction - blockciphers - symmetric encryption - pseudorandom permutations and pseudorandom functions - hash functions - message authentication codes - authenticated encryption - asymmetric encryption - digital signatures - authenticated key exchange - interactive proofs - garbled circuits - zero knowledge - SSL/TLS - bitcoin and blockchains - crypto policy - ethical issues. Course material is subject to change depending on my mood, student interests, and how fast we progress.

With only 28 50-minute lectures this term, we actually have 250 fewer minutes than a TR class this term. That’s a big difference. I must be careful not to waste time.

There is no assigned text (although the course homepage lists several books you might look at if you like). Your primary resource is what I say in lecture, and I consider attendance to be mandatory. While I do not attempt to verify attendance for every lecture, there will be frequent quizzes, and they will not be announced in advance. Half the score for these quizzes is being there to take it.

The prerequisites for our class are a discrete math class (ECS 20 or Math 108) and a programming class (ECS 10 or 30, now ECS 32A or 36A). That really is a lower bound; you would do well to have more, including a level of mathematical maturity consistent with having some upper division math and probability, theory of computation (ECS 120), and/or algorithm (ECS 122A). I will assume that everyone in this class is capable of writing short programs in some high-level programming language, understanding mathematical definitions, and writing coherent proofs.

Some students will come to the class from an interest in computer security. That’s great, but I want to make clear that cryptography and computer security involve different skills and different ways of thinking. This class leans more towards theory than systems (as hinted at by the second digit of the course number), even if the theory we talk about is highly applicable.

A few students may come to the class from an interest in crypto currencies or blockchains. I will give you tools that should help you understand this stuff, but I don’t yet know if we’ll cover such material.

Classroom conduct

  1. Cellphones must be silent or off before you enter our classroom, and may not be consulted in the classroom, even for the time. Please place them in a backpack or purse. In particular, during the minutes before class begins, you may not use these devices in our class. I consider the classroom a community space, and use of cellphones within this space, even in the minutes before I start speaking, creates an atmosphere contrary to the one I aim to foster.
  2. You may not use a laptop computer in class. If you want to take notes, please use paper and pencil, or a tablet.
  3. If the room isn’t full, please come down and sit near the front. Same thing for the discussion sections. I won’t bite.
  4. Please interact! Think, ask questions, be engaged.
Violating the rules about cellphones or laptops is an instance of academic misconduct. See below about what that implies.

Video recording

I was offered video recording for the class, and reluctantly said OK. The only time I allowed this so far, for a section of ECS 120 a few years ago, students did worse than usual. Meeting with about half the class the following quarter, what students suggested was that (1)  some students skipped class, thinking they could learn it from the recording, while (2) other students attended but were less focused than they would otherwise have been, thinking that they’d get a second chance. When the did watch later, they were in a distracted state.

Here’s how the videos ought to be used. If you’re attending and following the lectures, just ignore the videos; you have no need for them. I mean, who would want to listen to me again, anyway? My voice is too high and hearing it once has got to be painful enough. But if you unavoidably had to miss some lecture, the video can be quickly watched to stay current. Or if you were as focused as you could be but just couldn’t get something, promptly watching the video can provide a second chance.

If you watch some or part of a video, do it in a distraction-free environment. Don’t multitask. You can’t learn cryptography, or anything else that’s demanding, in that way.

Grading

I expect to compute grades as: I will deviate from these guidelines if I see a compelling reason to do so (e.g., regular and useful interaction in lecture). I do not consider the class “curved” (you are not competing with one another), but there are no predetermined numbers for grade cutoffs.

Late homeworks aren’t accepted, and missed exams can’t be made up. A single missing quiz will be assumed to be an illness, and will effectively be ignored. If you miss the final, however, you will get an F. You will also get an F if you commit any form of academic misconduct (see below).

If you think something was misgraded, you may request a regrade, using gradescope, within three days of when grades are posted. Make sure you have read and understood any posted solution first. Scores can go up or down. Because it consumes a great deal of TA time, please limit your use of regrades to cases where you believe that an actual error was made, not a discretionary matter in assigning points.

Homework

Some homework problems will be challenging (I want to encourage creative problem solving, not regurgitation). Over the quarter, most students will not be able to solve every problem, even if they work hard. That’s OK; don’t be discouraged. The thinking associated to doing the homeworks, even when unsuccessful, is where much of the learning takes place.

Homeworks are due at noon on the indicated day (usually Wednesdays). They are turned in using gradescope. Late homeworks aren’t accepted.

With the granularity of a problem set, you may, if you wish, work with one partner. Alternatively, you can work alone. (Personally, I think working alone usually results in learning the most, but some students disagree.) Teams may not have have more than two members.

If you choose to have a partner on a problem set, you turn in one problem set for the two of you. Use the option in gradescope to create a group for the two of you. I discourage interacting on homeworks with anyone but your partner (if you have one), a TA, or me. If you do have any such interactions, detail them in your writeup, giving appropriate credit where due.

Consulting solutions to old problem sets (from this or any other class), is strictly prohibited. So is doing web searches to try to locate solutions.

For homework writeups, I care deeply about the quality of writing as well as the quality of thinking. Your goal is to find short, correct, and elegant solutions. Strive to make it beautiful. Please do not turn in an incorrect solution to a problem that you understand to be incorrect; rather, explain what you have tried, and how it failed. Please do not provide “first draft” writing; nobody can write good technical prose in a single draft. I strongly prefer homeworks to be typeset, preferably in LaTeX. Norm Matloff wrote a LaTeX tutorial you might find useful. If you do write things out by hand, I prefer that you scan rather than photograph your work for uploading to gradescope. Cellphone photos do work, but make sure they’re easy to read. If something isn’t easy to read, it is, by definition, wrong.

If your English writing skills are not good I suggest that you do not partner with someone with similar difficulties. It’s often a bad idea for non-native speakers to partner.

Academic misconduct and cheat-implies-F policy

Exams are closed book/notes/devices/neighbors. Bring picture ID. Any device that can be powered off must be powered off for the duration of the exam. You may not sit next to someone you know. In that sentence, “next to” means to your left, right, directly behind, or diagonally behind; and “someone you know” means that they’re a friend or someone you’ve worked with (in this class or some other) or someone you have some arrangement with concerning cheating. If you see anything inappropriate during an exam, report it immediately to me or a TA.

On homeworks, you may not consult any problem set solution for any similar problem, regardless of institution. You should not seek out directly relevant non-problem-set materials. If you accidentally and innocently encountered such materials, just acknowledge it in your writeup and that’ll be fine.

Uploading course materials for further redistribution to sites like CourseHero is an egregious instance of academic misconduct. It is also illegal. Similarly, you may not download material from CourseHero or the like.

I report all instances of suspected academic misconduct to SJA. If you were involved in academic misconduct, either by your own admission or by a finding from SJA, I will assign you an F grade in the course. I call this the cheat-implies-F policy. There are ongoing discussions to make this an official policy within the CS Department. The F grade is in addition to whatever SJA does. By taking this class with me, you are acknowledging and accepting this policy.

The cheat-implies-F policy isn’t because I’m especially mean (I hope I am not), nor because I see things as black-and-white (I don’t). It’s because I, and lots of other CS faculty, have had major problems with student cheating. Cheating is unfair to honest students; it makes a mockery of the academic ethos, which depends on the honest reporting of work; and it may foreshadow dishonesty in ones professional career as a computer scientist, where the consequences of dishonesty include risks to public safety and well being.

UCD’s Code of Academic Conduct describes expectations common to all courses.

Parting thoughts

Cryptography is a wonderfully strange area—stranger and more wonderful than most would imagine. One thing I hope to do is to give you a bit of a sense of what the research frontiers look like for this field. Another thing I hope you’ll take to heart is that maxim “don’t do this at home”. Finally, I hope that you might better come to see better see that what we do as technologists matters. Not just to us, but to the world we are lucky enough to pass through. Before you take that job at Exxon-Facebook-Google-Lockheed-Whatever, you need to think long and hard if the employer you plan to help out is doing something that is, on balance, good. With it’s notional adversaries, philosophical leanings, and strong ties to politics, crypto may be a particularly apt area to begin to see the social context of CS.
Phil Rogaway's homepage