University of Virginia, Department of Computer Science
CS588: Cryptography, Spring 2005


Course Description

Cryptology is the science of secrets. This course is about using computation and mathematics to keep and break secrets. We will cover the principles behind cryptology and examine applications of cryptology such as digital money, authentication, transactions, and anonymity.

Expected background: Students are expected to have background in algorithms (CS 332 recommended, may be taken concurrently) and discrete math (CS 302 required). Students should be comfortable with programming and proofs.

Meetings: Tuesdays and Thursdays, 9:30am - 10:45am in Olsson 005.

Textbook: The required text is Wenbo Mao, Modern Cryptography: Theory and Practice.

Students are also encouraged to read (mostly for fun): The Code Book : The Science of Secrecy from Ancient Egypt to Quantum Cryptography, by Simon Singh.

Web page: All lecture slides and assignments will be available on the web.

Instructor: David Evans

phone x2-2218
officeOlsson, 236A
office hours Tuesdays, 2:30-3:30. Other times by appointment, or stop by my office when the door is open (usually).

TA: Matt Spear
office hours Fridays 2:30-3:30, CS Department Lounge

Email to reaches all of us.


There will be regular reading assignments, several problem sets, a group project, a midterm and a final exam.

Problem Sets

Problem sets will be assigned approximately every two weeks (four or five during the semester). Many problem set questions are designed to require some thought, ingenuity and creativity to solve. You won't find all the answers straightforwardly in the book. Problem sets will not usually ask you explicitly to write programs, but often it will be useful to write a short program to solve a question.


Students will work in groups for 2-4 (individual projects will be permitted under special circumstances) to complete a project relating to security. Project may be research projects or outreach projects. More information on the projects will be provided soon.

Projects from the previous course offering are here:


There will be a midterm covering the first half of the course and a final exam covering the whole course. Both exams will be open book.

Collaboration Policy

All students in the class must read and sign the CS588 Pledge. Your fellow students are your best resource. In general, students are encouraged to discuss readings and assignments in study groups. Some assignments may have a specific collaboration policy, which should be explained clearly on the assignment. No collaboration is permitted on exams. If the collaboration policy for an assignment is ever unclear, ask the instructor.

Students are also encouraged to consult outside sources, including human experts. Always list the resources you used (students, outside experts, papers, web sites) on your submission.

The only exception is solutions to problem sets from previous editions of this course, since it is to both your and the course staff's advantage to be able to recycle successful questions. The solutions are readily available on the web, so everyone is equally tempted by them. We (and your classmates) rely on your honor not to use old solutions. It is considered cheating to look at old problem set solutions.


Grading will be based on approximately the following weighting:

Problem Sets40-50% Project30-50%
Exams30-50% Class Contribution0-10%
In addition, bonus points are available by solving challenge problems and other opportunities as mentioned in Lecture 1.

Grades will be tabulated varying the weights assigned to each category in several different ways using the ranges above. In general, the weighting that is best for you is used.

CS 655 University of Virginia
Department of Computer Science
CS 588: Cryptology - Principles and Applications