CS456/CS556 Cryptography (Spring 2024)

Pre-requisites: CS142 (CS344 highly recommended), MA211 or MA346. Good programming skills and/or mathematical curiosity.
Instructor: Christino Tamon
Lecture: TR 8:00-9:15 (SN212)
Office hours: TR 11:00-14:00 (SC373).
SYLLABUS
Cryptography is the study of secure communication over insecure channels. We will study the basic methods and concepts in cryptography along with their applications. The course will look at well-known modern cryptographic systems such as RSA, Diffie-Hellman, and elliptic curve cryptography.

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. The second part of the course is spent on the applications of these to building cryptographic tools.

An underlying theme of this course is the rise and "fall" of the RSA 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 quantum cryptography will be given.


GRADING: Assignments and Quizzes (40%), Midterm (20%), Final Exam (40%)

TEXT: W. Trappe, L. Washington, Introduction to Cryptography with Coding Theory, 3rd edition, Pearson, 2020.


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:


REQUIREMENTS/POLICIES:
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)


Optional Notes (based on notes for a course taught at Harvey Mudd)

0: One-time Pad
1: Shannon's Theory
2: Basic Number Theory
3: RSA PKCS
4: ElGamal PKCS
5: Elliptic Curves
6: PKCS Based on Quadratic Residues
7: Miscellaneous Protocols
8: DES & AES
9: Quantum Ideas


Schedule (tentative)

Jan 9
Jan 11
One-time pad: shared random string
symmetric, secret-key. Unconditionally secure.
Reading: Chapters 2 and 4.
Jan 16
RSA: the protocol
asymmetric, public-key. Computationally secure.
Reading: Chapter 9.
Jan 18
RSA: basic number theory.
Theorem (Euclid) there are infinitely many primes.
Euclid's GCD (recursive) algorithm (is this parallelizable?).
Reading: Chapter 3.
Jan 23
RSA: basic number theory.
Extended Euclidean algorithm (Pulverizer of Aryabhata):
recursive vs iterative (space-efficient).
Reading: Chapter 3.
Jan 25
RSA: basic number theory.
Modular arithmetic. Inverses modulo prime.
Reading: Chapter 3.
Jan 30
RSA: Miller-Rabin primality testing.
Fermat's Little Theorem. Extension: Euler-Fermat's theorem.
Reading: Chapter 3.
Feb 1
RSA: Miller-Rabin primality testing.
Modular exponentiation: fast recursive algorithm (iterative?).
Nontrivial square roots of unity.
Reading: Chapter 9, Section 3.
Feb 6
RSA: correctness (wrong proof via Euler-Fermat).
Chinese Remainder Theorem (correct proof): parallel decryption.
Exercise: worksheet.
Reading: Chapters 3 and 9.
Feb 8
RSA: weaknesses and attacks.
Reading: Chapters 9 and 14 (Section 2).
Feb 13
Discrete Logarithm: Diffie-Hellman.
Reading: Chapter 10.
Feb 15
ElGamal: probabilistic public-key.
Sample problem.
Reading: Chapter 10.
Feb 20
ElGamal: Elliptic Curves.
Sample problem.
Reading: Chapter 21.
Feb 22
Short break.
Feb 27
Beyond RSA: Rabin cryptosystem.
Modular square root (is equivalent to Factoring).
Quadratic residues: Legendre and Jacobi symbols.
Euler's criterion.
Reference: notes by Angluin.
Reading: Chapter 3.
Feb 29
Goldwasser-Micali cryptosystem.
Semantic security. Blum integers.
Magical properties: primes congruent to 3 mod 4.
Reading: Chapter 3.
Mar 5
Blum-Goldwasser cryptosystem.
Computational one-time pad.
Blum-Blum-Shub pseudorandom bit generator.
Reading: Chapter 3. sample.
Mar 7
Protocol: Zero-knowledge proofs (Goldwasser-Micali-Rackoff).
Fiat-Shamir's Quadratic Residue protocol.
Reading: Tompa.
Mar 12
Protocols: coin tossing, oblivious transfer, bit commitment. Yao's millionaiers problem. Secret sharing.
Exercises: sample (sol)
Mar 14
Cryptographic hashing: birthday attack.
DLOG-based: Chaum-van Heijst-Pfitzmann.
Mar 19
Spring break.
Mar 21
Spring break.
Mar 26
Block cipher:
Modes of encryption: ECB, CBC, OFB, CFB.
Mar 28
Block cipher:
DES. Feistel cipher.
Apr 2
Block cipher: AES.
Polynomials. Finite Fields.
Pulverizer over polynomials.
Apr 4
Block cipher: AES.
Apr 9
Quantum cryptography:
basic quantum information.
Apr 11
Quantum cryptography:
quantum key distribution (QKD): Bennett-Brassard (BB84).
Apr 16
Post-quantum:
Shor algorithm: basic ideas.
Apr 18
Shor's algorithm:
Quantum Fourier Transform.
Apr 23
Lattice cryptography: LLL algorithm.
Source: notes (Peikert).
Apr 25
Lattice cryptography: LLL algorithm.

ASSIGNMENTS



Topics
RESOURCES/LINKS: