CS456/MA456 Cryptography (Fall 2009)
Pre-requisites: MA211 or MA346, good programming skills and/or mathematical curiosity.
Instructor: Christino Tamon
Lecture: Science Center 344 TR 1:00-2:15pm
Office hours: TR 9:15-11am, 2:15-3pm, Science Center 373
SYLLABUS
Cryptography is the study of secure communication over insecure channels.
We will study the basic methods and concepts in theoretical cryptography
along with their applications. The course will look at concepts such as
one-way functions and trapdoor permutations
(functions that are easy to compute but computationally hard to invert),
pseudorandom generators (devices that produces sequences that are computationally random),
public-key cryptosystems (secure systems that require no secret agreement),
one-way hash functions (tools to authenticate messages and to verify data integrity),
digital signatures (mechanisms for signing documents),
and zero-knowledge proofs (convincing a party of an undeniable fact without revealing its proof).
Most of these topics require background in number theory and probability theory.
The first part of the course will be spent on developing the necessary background
in these areas, mainly number theory. The second part of the course is spent on
the applications of these to building cryptographic tools.
An alternative underlying theme of the course is the rise and "fall" of the RSA
cryptographic system. Theoretical properties and improvements of the RSA system
will be discussed in detail. Then a discussion of Shor's quantum algorithm for
Factoring will be described. Finally, a brief look at simple quantum cryptography will
be given.
GRADING: Assignments and Quizzes 40%, Test(s) 40%, Project 20%
TEXT
Douglas R. Stinson, "Cryptography: Theory and Practice," 3rd edition, Chapman & Hall/CRC, 2006.
Recommended Reading:
- Bruce Schneier, "Applied Cryptography," 2nd edition, John Wiley & Sons, 1986 (on reserve) [Schneier]
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, "Introduction to Algorithms,"
2nd edition, The MIT Press, 2001 (on reserve) [CLRS]
- Simon Singh, "The Code Book," Anchor, 1999 (non-technical).
OBJECTIVES/OUTCOMES:
The objective of this course is to learn fundamental issues and important algorithms
involved in the field of cryptography.
The specific outcomes are as follows:
- Knowledge of some secret-key cryptographic systems.
- Knowledge of important ideas in public-key cryptographic systems.
- Knowledge of basic ideas in number theory that are relevant to cryptography.
- Knowledge of various cryptographic protocols for implementing different types of
communication that requires secrecy and protection.
- Knowledge of modern programming languages with support for cryptographic applications.
REQUIREMENTS/POLICIES:
Although attendance is not mandatory, students are responsible for all course materials
covered in lectures and any exams given during class periods. Students that need to
make up missing course work must provide the required Clarkson official exempt form.
All students must submit their own work; the exchange of ideas are encouraged but
ultimately the submitted work must be the student's own. Please refer to the Clarkson
University Regulations for more guidelines on academic integrity and related matters.
Schedule (updated regularly)
| Tuesday
| Thursday
|
| August 25
Course administration. Introduction: one-time pad.
Reading: Chapter 1.
Assignment 1 is out.
| August 27
RSA public-key cryptosystem.
Reading: Chapter 5 (5.1 and 5.2)
Picture: RSA
|
| September 1
Computational problems: easy and hard.
Algorithms for RSA: multiplication, division, exponentiation.
Reading: Chapter 31 in Cormen et al.
Complexity Zoo
| September 3
Extended Euclidean algorithm: public and secret RSA exponents, multiplicative inverses.
The pulverizer of Aryabhata.
Picture: Euclid,
Aryabhata
|
| September 8
Chinese remainder theorem; Fermat's Little theorem
Example: RSA encryption and decryption.
Reading: Chapter 5 of Stinson and Chapter 31 in Cormen et al.
| September 10
Quiz 1
|
| September 15
Software for crypto: Java, NTL (C++), Scheme, Python.
Quadratic residues; factoring using square roots.
Example: coin-flipping protocol (Blum-Rabin).
| September 17
Primality testing (Miller-Rabin); fast exponentiation
Gary Miller;
Michael Rabin
|
| September 22
Miller-Rabin: proof (Lagrange Theorem)
RSA weaknesses: multiplicative property (chosen ciphertext attack), Euler totient.
| September 24
ElGamal PKCS: DISCRETE LOGARITHM.
|
| September 29
Short break.
| October 1
Rabin PKCS (non-deterministic): MODULAR SQUARE ROOT;
Goldwasser-Micali PKCS: QUADRATIC RESIDUOSITY.
Shafrira Goldwasser
|
| October 6
Improved Goldwasser-Micali:
Blum-Goldwasser PKCS; Blum-Blum-Shub PRBG.
Manuel Blum;
Lenore Blum;
Manuel and Lenore Blum;
Michael Shub
| October 8
Recap: PKCS Blum_Goldwasser, Goldwasser-Micali and ElGamal;
PRBG Blum-Blum-Shub.
|
| October 13
Quiz 2
| October 15
|
ASSIGNMENTS
- Assignment One
(solve the cipher first before you solve any of the following problems;
MA questions: 1.6, 1.7, 1.8, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15. Optional: 1.20, 1.22, 1.27)
- Assignment Two
- Assignment Three
n = 21763094134531000972841370660019937681404120298514107853994436626939912676095546280741503973202447608361981948910499394569003
844083732634068732711801686962418483971106741204159352316369147250873724712817840394195750440595157067930456542697869292108128636
506456739243985455164801317319108479636669711359332996502723744542100911278893957449901462477565056735124950205008842002624007359
695454771496945928396953270443712113756869589363507601439699808450680784994317752375516115931812036753305168825452628217767566370
655438468443366835577615060256475314325396442002972376761774682887365645028427540868444928826427389476747
e = 56877372410352580995102487019441575873516550271120644361688615917900490694157388644026682893445568160796957022326392394487084
760184294595381277316519119653712031264335507023773299573844361003166750747800037702467114055251493508760523372786229442205076644
018095491553842273179619788789215166200185853990431769
- Assignment Four
p = 118127, g = 25593, b = 77536
Quiz 3 is in the course public directory (PDF format). Due date: Monday 11/16/2009 noon
Test: Thursday Nov 19, 5:30pm, ITL
Final Talks: Thursday Dec 10, 9am, ITL
PROJECT
- Choose a project topic of interest; you may work in groups of up to three.
Indicate your topic and group before the Thanksgiving break by email.
- Submit a term-paper (hardcopy) that contains at minimum the following separate sections:
- Abstract (follow the What-Why-How plotline if possible).
Provide this on a separate page.
- Background information and literature: what has been done, what is the state-of-the-art
ideas or methods in the area.
Include proper and complete bibliography (at the end of the document) for your sources;
see examples of some journal papers listed below or see Chicago's Manual of Style.
- Identify at least two possible ideas that can be done but has not been addressed in
the literature.
This can be either an improvement on implementation or on a mathematical idea.
- Prepare a 15-minute talk to be delivered either during Dead Week or Finals Week.
Submit by email your talk slides (should be in PPT, PDF, or other similar formats).
Sign-up sheet will appear soon once a common time is found for everyone to attend.
- Submit any other items, if any, related to your project (code, etc) by email.
Topics (under construction)
MISCELLANEOUS RESOURCES:
- Java at Sun Microsystems.
- NTL package.
- Crypto ePrint archive.
- Dana Angluin's "Lecture Notes on the Complexity of Some Problems in Number Theory",
Technical Report 243, August 1982, Department of Computer Science, Yale University.
- Carl Pomerance, "A Tale of Two Sieves," Notices of the AMS, vol. 12, 1996.
- J.-J. Quisquater et al., "How to Explain Zero-Knowledge Protocols to Your Children," Proc. Advances in Cryptology, pp. 628-631, 1989.
- Don Coppersmith, "DES and its strengths against attacks," IBM Research Journal.
- Dan Boneh, "Twenty Years of Attack on the RSA Cryptosystem,"
Notices of the American Mathematical Society, vol. 46, no.2 (1999), 203-213.
- Dan Boneh's Number Theory Fact Sheet.
- Handbook of Cryptography: link (thx: Pat Wilbur).
- Crypto blunders
- Cartoon guide to crypto