Central Connecticut State University Fall 1998 CS 407 -- Advanced Topics in CS -- Codes and Internet Security -- 3 Credits Section 70 MW 5:00 PM-6:15PM Room 309 Maria Sanford Hall Instructor: Dr. Charles W. Neville Course Description: Secure Internet transactions are crucial to the commercial development of the Internet. This course will discuss the principal public key cryptographic algorithms and protocols used to secure Internet transactions, and the mathematical theory behind them. All needed mathematical background will be developed as the course progresses, but Computer Science students will be expected to have proved theorems in a course such as Discrete Mathematics. All needed algorithms and data structures will be developed as the course progresses, but Mathematics students taking this course as Math 473 will be expected to have written well structured programs in a course such as Computer Science I (CS 151). Required Texts: Codes and Cryptography, by Dominic Welsh., Oxford University Press, 1988. PGP: Pretty Good Privacy, by Simson Garfinkel., O'Reilly and Associates, 1994. The student will need at least three 3.5" HD floppy disks, and two or three folders with pockets in which to hand in lab assignments. Prerequisite: CS 152, Computer Science II, plus a theorem-proof mathematics course such as Discrete Mathematics (Math 218). For Mathematics students taking this course as Math 473: Math 228 and Math 366, plus a structured-programming computer science course such as Computer Science I (CS 151) . Computer Resources: We shall use Java version 1.1. Directions for using Java in the University Microcomputer Laboratory and/or in the Computer and Information Sciences and Technology Laboratory in room 208 Maria Sanford are available under CS 407 on my Web page (see below). Students will also find there an extensive list of Java Demo programs illustrating issues raised in the course, as well as an extensive list of Java resources. For those who wish to work at home, the Java Development Kit, version 1.1.6, is available FOR FREE from SUN Microsystems at the URL http://java.sun.com/products/jdk/1.1/. (No period at the end of the URL.) Assignments and Exams: Reading, problem set, and project assignments are listed below. Exam dates are denoted by **. Make-up exams are scheduled by appointment only. The rest goes here ... Mini-assignments should be done, but do not need to be handed in. Grading: Your final grade will be based on theorem-proof problem sets, computer projects, and in-class exams. It will be affected by classroom participation, conduct and attendance. The exams will include questions from the textbook, problem set, and computer project assignments. The numerical grades for the exams will be averaged and then converted to a letter grade. Attendance: Two unexcused absences are allowed, and any work missed must be made up. The student should notify the instructor concerning absences, or there will be a grade penalty. Student Conduct. It is expected that all students will conduct themselves in a respectful manner, and will assist in maintaining an atmosphere conducive to learning in the classroom. Honesty Policy. It is expected that all students will conduct themselves in an honorable and honest manner. It is alright to give and receive help on computer projects, but no student may claim another's work as his or her own, and no student may have another student's program in his or her possession. Students may use code from published sources, but if a student uses code from a source other than class or the text, the student should provide a reference in comments. It is NOT alright to give and receive help on theorem-proof problem set assignments, but it alright to use solutions from published sources, provided those solutions are referenced. Office Hours: Monday 1:00--1:50 PM and 8:10--9:00 PM; Tuesday 11:00--11:50 AM; Wednesday 1:00--1:50 PM and 4:00--4:50 PM; Friday 11:00--11:50 AM. Feel free to stay for help, and feel free to stay to chat. My office is in room 205 Maria Sanford Hall. In an emergency, email me at neville@ccsu.edu, (no comma at the end of the email address) or call me at 832-2719 (work). My Web page URL (Web address) is http://www.cs.ccsu.ctstateu.edu/~neville. (Again, no period at the end of the URL.) Week No. Reading Assignments 1. 08/31 Welsh, Ch 7: Cryptosystems; Garfinkel, Ch 2: Cryptography Basics. 2. 9/7 Labor Day -- Holiday!! 9/9 Some basic number theory: Modular Arithmetic and Fermat's Little Theorem (lecture only). 3. 9/14 Some basic abstract algebra: Finitely Generatated Abelian Groups (lecture only). 4. 9/21 Some basic abstract algebra continued. 9/23 Welsh, Ch 11 (RSA method); Garfinkel, Ch 3: Birth of RSA; Garfinkel, Appendix F (RSA method ). 5. 9/28 Welsh, Ch 9: Randomized Algorithms (for primality testing); Garfinkel, Appendix F (How PGP Picks Primes) 6. 10/5** Exam 1 (covers all of the above). 7. 10/12 Welsh, Ch 9: Computational Complexity; Garfinkel, Appendix F (Security of RSA, How Large is Very Large, How Random is Random, Difficulty of Factoring). 8. 10/19 Welsh, Ch 9 continued. 9. 10/26 Welsh, Ch 10: One Way Functions 10. 11/2 Welsh, Ch 10: One Way Functions 11. 11/9** Exam 2 (covers all of the above since Exam 1). 11/11 Welsh, Ch 11: Public Key Cryptosystems; Garfinkel, Appendix F (How Diffie-Hellman Works) 12. 11/16 Welsh, Ch 11 continued. 13. 11/23 Welsh, Ch 12: Digital Signatures; Garfinkel, Ch 11: Digital Signatures. ---- 11/25 ---- Have a Happy Thanksgiving! ----- 14. 11/30 Welsh, Ch 12 continued. 15. 12/7 Project Demos. 12/9 Project Demos. 16. 12/14 Project Demos. 12/16** Final Examination 5:00--6:15 PM (comprehensive -- ALL of the above!). Merry Christmas!