University of Virginia, Department of Computer Science
CS588: Cryptology - Principles and Applications, Fall 2001


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: Mondays and Wednesdays, 2:00-3:15 in Olsson 009.

Textbook: The required text is Making, Breaking Codes: Introduction to Cryptology, by Paul Garrett. (Abbreviated MBC.)

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

In addition, we will read additional papers selected from the research literature. For other recommended resources, see

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

Instructor: David Evans

phone x2-2218 (office), (804) 825-1362 (mobile)
officeOlsson, 236A
office hours Tuesdays, 10:30am-11:30am; Wednesdays after class, 3:30-4:30; other times by appointment.

Danny Loffredo
office hours Tuesdays 3:30-4:30, CS Reading Room
Anthony Wood
office hoursThursdays 12:45-1:45, CS Reading Room

Email to reaches all of us.


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

Problem Sets

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 to write programs, but you are free to use programs you create or find to help solve them as you wish.


Students will work in groups for 1-4 (small groups permitted only under special circumstances) to complete a project relating to security. There will be a handout the third week of class with more information on the projects. To see some of last year's projects, see


There will be a midterm covering the first half of the course on October 17 and a final exam covering the whole course and scheduled near the end of term.

Collaboration Policy

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. If this 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 last year's course, since it is to both your and the course staff's advantage to be able to recycle successful questions. The solutions are 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%
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.


The main topics include: Classical Ciphers, Block Ciphers, Public-Key Cryptosystems, protocols and applications.

See the course calendar for details.

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