| Credit Hours: | 4 |
| Course Coordinator: | Tom Shrimpton |
| Course Description: | This is a course in modern cryptography emphasizing formal definitions and proofs of security. Core topics include private- and public-key schemes for encryption and message authentication, cryptographic hash functions, and authenticated encryption schemes. Additionally, the course may include some analysis of the DES and AES blockciphers, and real-world security protocols such as WEP, SSH/TLS and IPSec. (Note: this is an updated description; the catalog will be changed to agree with it.) |
| Prerequisites: | Algorithms, computational models, probability. |
| Goals: | To develop a solid understanding of the fundamentals of the science of modern
cryptography.
This course will introduce students to formal definitions of security,
cryptographic primitives
and protocols, and the provable-security paradigm.
Upon the successful completion of this course students will be able to:
|
| Textbooks: | None; largely based on distributed lecture notes and selected publications. |
| References: | None. |
| Major Topics: |
|
| Laboratory Exercises: | None. |
| CAC Category Credits | Core | Advanced |
| Data Structures | ||
| Algorithms | 0.40 | |
| Software Design | ||
| Computer Architecture | ||
| Programming Languages |
| Oral and Written Communications: | Every student is required to submit at least one written report (not including exams, tests, quizzes, or commented programs) of typically five pages. |
| Social and Ethical Issues: | None. |
| Theoretical Content: | The entire course is theoretical. |
| Problem Analysis: | The course is devoted to formal analysis of cryptographic systems. Success in this course requires clear (and sometimes creative) thinking in order to identify the security goals, to determine the appropriate notions of security, and to identify (if they exist) the appropriate primitives or protocols to achieve the security goals. |
| Solution Design: | Students will learn techniques for thinking about cryptography, analyzing primitives and protocols, and synthesizing solutions to specific cryptographic goals. |