**
You are responsible for everything on this handout. Please read it.**

- blockciphers and tweakable blockciphers
- symmetric encryption schemes (e.g. CBC and counter modes-of-operation)
- cryptographic hash functions (e.g. MD5, SHA1, SHA2)
- message authentication schemes (e.g. CBC-MAC, HMAC)
- authenticated encryption schemes (e.g. encrypt-then-MAC, OCB)
- "hard problem" primitives for public-key crypto (e.g. RSA)
- public-key encryption schemes (e.g. El Gamal and the KEM-DEM paradigm)
- digital signature schemes (e.g. FDH-RSA)
- randomness extraction

That said, most people who take this course do view it as a "theory" course, in the sense that we'll devote a lot of time to abstractions, formal definitions, and proofs. These are the backbone of modern cryptography. (If we had more time, we would dive into important implementation details, and get our hands dirty with real-world crypto libraries.)
We will talk some about higher-level protocols like SSL and IPSec, and touch on topics such as certificates and trust chains. But at least 90% of the course will be about the pieces you need to *build* those higher-level objects.

For the remaining 15% of your grade, you will be required to select a recent paper from a top-tier venue (CRYPTO, EUROCRYPT, ASIACRYPT, CCS, IEEE Security and Privacy) and write a 3-5 page summary of it. More on this as the term progresses.

In any case, this is an elective course, so I expect that you are in the class because you are interested in the material and are prepared to put in serious effort. I reserve the right to adjust your final course grade up or down by as much as 5%, depending on my personal opinion of your performance in the course. (I've never actually downgraded anyone, as people I might be tempted to downgrade usually weed themselves out. But I still reserve the right to do so.)

Your score for each homework assignment will be determined by the correctness of your solutions, and by the clarity of your presentation. Let me stress this point: **if your solution is correct, but your presentation is sloppy, you will not receive full credit.** Learning to communicate with logical, well organized, and concise prose and mathematics is an important part of academic maturity; these are skills that good scientists continue to hone throughout their careers. So, please, put serious effort into your solution write-ups.

**Homework solutions should be typeset in LaTeX**. It is the typesetting language of scientific publications, so get to know it. If you absolutely cannot handle LaTeX , then you should turn in neatly hand-written solutions. **Do not turn in ASCII text** -- math in ASCII is like nails on a chalkboard. (And math in MS Word is not much better...)

**Stick to the notation we develop in class.** When you need to create your own notation, think hard about it! Vague, under-defined, or otherwise imprecise notation hampers understanding, and generally makes me grumpy. (You don't want me to be grumpy.)

You may work in groups of up to three people on homework assignments. If you work with one or more person then you should turn in a single writeup. **I urge you to understand everything that you turn in. **If you let group-mates carry you on homework assignments, it *will* be obvious and I will take a negative view on this when grading.

Late homeworks will be accepted only under extreme circumstances, e.g. death in the family, incapacitating personal illness, emergency involving your children, attending a conference. Please talk to me as soon as possible if you think you will need to be late turning in an assignment.

**Fully acknowledge the source of any outside ideas***, *whether it be a book, paper, website, or colleague*.* It's the right thing to do, and it's necessary for writing good research papers. You may share ideas with someone else as long as you acknowledge them. Failure to acknowledge outside sources will also make me grumpy.

Office Hours: TBD and by appointment, MAE (Materials Engineering) 209 [map]

- Read the course notes and ASK QUESTIONS when things are unclear.
- Work hard. (Duh!)
- Come to class on time.
- Participate in class!
- Don't be afraid to struggle on your own with the material. Your classmates and the web are great resources, but
**nothing**will strengthen your mind as much as honest effort. - That said, there is no shame in asking for help.
- Be polite to your classmates. You may be better than them at mathematics, writing proofs, etc., but that doesn't make you a superior person.
*Don't plagiarize, or try to fake your way through this class.*