**Lectures:**Mon-Wed-Fri 12:00-12:50pm**Instructor:**Yu Cheng**Email:**yucheng2@uic.edu**Office Hours:**Mon 11am-noon and by appointment.**Grader:**William Vickery (wvicke2@uic.edu).**Office Hours:**Tue 2-3pm.**Textbook (Required):**Introduction to Cryptography with Coding Theory, Second Edition, Wade Trappe and Lawrence Washington**Fun Reading:**Introduction to Modern Cryptography, Second Edition, Jonathan Katz and Yehuda Lindell

- Homework 1, due at 12pm on Sep 14 (Mon).
- Homework 2, due at 12pm on Oct 2 (Fri).
- Homework 3, due at 12pm on Nov 2 (Mon).
- Homework 4, due at 12pm on Nov 30 (Mon).
- Homework 5, due at 12pm on Dec 4 (Fri).

- Project guidelines.
**Important dates**:- Oct 9: Decide on teams and topics.
- Nov 18 - Dec 2: Presentations.
- Dec 6: Project due.

- Week 1-2 (Aug 24), Classical Ciphers:
- Introduction to the Course
- Possible Attacks (Section 1.1.1), Shift Ciphers (Section 2.1) (Lecture 2)
- Affine Ciphers (Section 2.2) (Lecture 3)
- Vigenère Cipher (Section 2.3) (Lecture 4, Lecture 5)
- Demo for Using/Attacking Classical Ciphers (Lecture 6).
- Week 3-4 (Sep 7), Number Theory:
- Basic Number Theory (Section 3.1) (Lecture 7)
- Extended Euclidean Algorithm (Section 3.2) (Lecture 8)
- Modular Arithmetic (Section 3.3) (Lecture 9)
- Chinese Remainder Theorem (Section 3.4) (Lecture 10)
- Modular Exponentiation (Section 3.5) (Lecture 11)
- Euler’s Theorem (Section 3.6) (Lecture 12)
- Week 5-6 (Sep 21), Public Key Encryption I:
- RSA Algorithm (Section 6.1) (Lecture 13, Lecture 14)
- Primality Testing (Section 6.3) (Lecture 15 and 16)
- Midterm Exam Review (Lecture 17)
- Week 7-8 (Oct 5), Public Key Encryption II:
- Discrete Logarithms (Section 7.1) (Lecture 19)
- Computing Discrete Logs (Section 7.2) (Lecture 20)
- Diffie-Hellman Key Exchange (Section 7.4), Bit Commitment (Section 7.3) (Lecture 21)
- ElGamal Encryption (Section 7.5) (Lecture 22)
- Week 9 (Oct 19), Hash Functions and Digital Signatures:
- Hash Functions (Section 8.1) (Lecture 23)
- Birthday Attacks (Section 8.4) (Lecture 24)
- RSA Signatures (Section 9.1), EIGamal Signatures (Section 9.2) (Lecture 25)
- Hashing and Signing (Section 9.3), Birthday Attacks on Signatures (Section 9.4) (Lecture 26)
- Week 10 (Oct 26), Security Protocols:
- Man-in-the-Middle Attack (Section 10.1), Public Key Infrastructures (Section 10.4) (Lecture 27)
- Secret Splitting (Section 12.1), Threshold Schemes (Section 12.2) (Lecture 28)
- Week 11 (Nov 2), Information Theory:
- Zero-Knowledge Proof (Section 14.1) (Lecture 29)
- Probability Review (Section 15.1) (Lecture 30)
- Entropy (Section 15.2) (Lecture 31 and 32)
- Week 12-13 (Nov 9), Error Correcting Codes:
- Introduction (Section 18.1) (Lecture 33)
- Error Correcting Codes (Section 18.2) (Lecture 34)
- Bounds on General Codes (Section 18.3) (Lecture 35)
- Linear Codes (Section 18.4) (Lecture 36)
- Week 14-15 (Nov 23), Project Presentations:
- Project Presentations (Lecture 37-42)
- Final Exam Review, An Example of Two-Party Computation (Lecture 43)

**Homeworks**(30%): We will have 5-7 homeworks. You are encouraged to discuss with other students, but you must acknowledge who you worked with and you must write up your solutions independently. Late homeworks are not accepted in general (exceptions with good reasons may be requested in advance).**Midterm**(20%): Oct 5th (Mon), 12:00pm - 12:50pm.**Final**(30%): Dec 8th (Tue), 8:30am - 10am.**Course project**(20%): Explore in depth a topic that we did not cover in class. Write a project report and prepare a presentation.