CS 456 / MA 456 / CS 656: Cryptography

Course Syllabus -- Spring 2004

**Professor: **William Hesse **Office:** Science Center
383 **Phone:** 268-2387

**E-mail:** whesse@clarkson.edu

**Office hours:**

Monday | 2:00-4:00 |

Tuesday | 9:00-12:00 |

Wednesday | 1:00-3:00 |

Friday | 1:00-2:00 |

Or by appointment |

**Course Objectives:**

- Students should learn fundamental principles of modern mathematical cryptography. These include public-key and secret-key cryptography, and attacks on cryptographic systems. Students should learn applications of these principles to topics such as digital signatures, authentication, anonymity, and digital cash.

**Textbook: **"Applied Cryptography, 2nd Ed.",
by Bruce Schneier.
Published by Wiley.

**SYLLABUS**

CHAPTER | TOPIC |

1 | Foundations |

2 | Cyptographic Protocols |

3 | Basic Protocols |

4 | Intermediate Protocols |

11 | Mathematical Background |

19 | Public-Key Algorithms |

22 | Key-Exchange Algorithms |

18 | One-Way Hash Functions |

Parts of 13, 14, 15 | Symmetric Cryptosystems |

5 | Zero-Knowledge Proofs & Protocols |

16 | Pseudo-Random Generators |

8 | Key Management |

**GRADING **

- Assignments 30%
- Class Participation & Quizzes 10%
- Exam 1 15%
- Exam 2 15%
- Final Exam 30%

**Exams: **You are responsible for all material in the lecture, as well as
any reading assignments where I specify you are responsible. Class participation
is encouraged.

**Assignments: **Some of the assignments will be mathematical and
cryptographic examples to work out, and some of them will be programming
assignments.

**Programs: **Students' programs must compile, run, and produce the
correct output to receive full credit. If they do not run and produce the
correct output, they will receive a grade of at most 60%. Partial credit up to
that limit will be given based on the correctness of the program.

Because half of the work of writing a program is debugging that program (finding and removing errors from it), make sure to start your programs early. You may also then send me your programs and ask questions about them, and receive answers in time to fix your programs.

**Late Policy: **With computers, everything that can go wrong will go
wrong at the last minute. Therefore, it is absolutely necessary that you begin
your assignments early. My suggestions are as follows: Start the assignment as
soon as possible, so you will immediately realize if there is something you
don't know. Then try to finish the assignments early, so you receive the bonus
points. If you have problems finishing it on that day, you will have more time
to fix any problems. Please follow my suggestions. If you don't, I can guarantee
trouble. If you fall behind, it will be difficult to dig yourself out.

**Academic integrity: **Assignments may be discussed with other students.
However, do not look at other students' solutions until you have solved the
problem yourself. You can give help to other students, but you may not just tell
them the answer. Feel free to discuss the assignments and strategies for solving
them (algorithms), but write the code yourself. The exact rules for "doing it
yourself" are:

- Do not write code with someone else's code in front of you.
- If you must use written notes from discussions with others, submit a photocopy of those notes with your program. This is discouraged.
- Don't copy any programs or code from anybody else, either electronically or in hard copy. This is cheating.
- If someone is helping you while you work, the person helping cannot refer to their own or someone else's code.

Cheating on tests, labs, or assignments will result in a grade reduction or failing grade for the course, and notification of the academic integrity board.

If you find yourself getting behind, please see the course instructor. We can work together to get you back on schedule.

Author: William Hesse

Last
Modified: Jan 7, 2004