Informatics 536: Mathematical Foundations of Cybersecurity

Introduction to Cryptography

Motivating Paragraph:

This course aims to provide the student with a solid understanding of the foundational elements of modern cryptography from the perspective of cryptographers and computer scientists. Modern cryptography is a field that is highly theoretical that relies on many forms of mathematics. However, in many courses, the emphasis is on the, mostly algebraic, mathematics of how cryptographic primitives are constructed, rather than the properties cryptographers expect these primitives to have and how these properties are used to actually achieve security goals in protocols. This is often the case, as defining actual security requirements for a number of protocols can be quite difficult. The result is that many students learn how to build cryptographic primitives, such as the DES & AES block-ciphers, or the RSA trapdoor permutation, but have little idea how these primitives should be combined to produce cryptographic protocols, such as public-key encryption (in fact, many students erroneously think that the RSA function they learn in most textbooks is an encryption system). This course attempts to rectify this imbalance by focusing on cryptographic primitives and security definitions, and how to build provably secure protocols. We will briefly discuss some of the algebraic and combinatorial assumptions that cryptographic primitves are founded on, but we will not dwell on these topics.

Students are expected to have a some mathematical maturity. Students should be familiar with basic algebra, combinatorics and probability theory. Students will find it useful, but not necessary to have a background in computational or complexity theory, and simple abstract algebra. Students worried about their mathematical maturity should contact the instructor of the course.

Course Textbook:

(Please note, the textbook will be slightly delayed due to the fact that it is only coming out this fall, students will be given paper versions of the first few chapters in class at the first lecture, which will hold us over until the texts arrive)

 

This will be a 13 week class, with bi- or tri-weekly assignments ( a total of 4-6). There will also be one in-depth course project & presentation, possibly in groups depending on the number of students in the course. The goal will be for the assignments to reinforce the topics presented in lectures, and for the project to give students an ability to tackle a research topic of personal interest to them, and expose them to reading the latest research papers in the field. The presentations will be scheduled during the examination week, and will not occur during class time.

Topics:

The following is an example of some of the topics we are likely to cover in this course:

  1. Importance of the definitions of security
  2. Basic notions of security:
    1. Privacy/secrecy
    2. Authenticity/ non-repudiability
    3. Adversaries
    4. Information
  3. Basic Notions from Complexity Theory & How they relate to cryptography
    1. Notion of Efficient Computation
    2. Notion of Probabilistic Computation
    3. Notion of Intractable Computation
    4. Difference between worst & average case complexity.
  4. One-way functions & permutations (RSA)
  5. Pseudo-Random (Bit) Generators
  6. Pseudo-Random Function Generators & Block-Ciphers (DES & AES)
  7. One-way hash functions & Collision Resistant Hash Function (SHA-1, MD5)
  8. Symmetric-Key Cryptography, key and message exchange based on symmetric-key cryptography primitives.
  9. Message authentication codes.
  10. Trapdoor functions and permutations (RSA)
  11. Public-Key Encryption (RSA, EL-Gammal, Diffie-Hellman)
  12. Key Exchange (SSL)
  13. Sending Encrypted messages, and very high level concepts about Public-key infrastructure.