I231 Mathematical Foundations of Cybersecurity

The goal of this course is for students to be introduced to the basic mathematical and programming tools used in modern security research and practices. The course covers introductory material from a number of disparate fields including functional programming, probability theory, analysis of algorithms, complexity theory, number theory, and group theory.

- Textbooks:
- (Required)
*Programming in Haskell*, Graham Hutton. - (Required)
*A Cryptography Primer: Secrets and Promises*, Philip Klein. - (Recommended)
*An Introduction to Mathematical Cryptography (Second Edition)*, J. Hoffstein, J. Pipher, J. H. Silverman.

- (Required)
- Lecture Times: Tuesday/Thursday, 2:30-3:45
- Lecture Location: GA 0001
- AI: Ruiyu Zhu (zhu52@indiana.edu)
- Office Hours: Tuesday 1-2, GA 1st floor lobby. (Or by appointment)

- Introduction and Software Setup
- Mathematical Induction
- External reading: Berkeley CS70 Notes, UT Austin CS336 Notes

- -calculus (1)
- External reading: A tutorial introduction to the lambda calculus

- -calculus (2)
- Haskell Scripts
- To enjoy the convenience of Emacs file editor, I recommend you
`jekor`

's series of video tutorial on Emacs. - Script demonstrated in class: lec5.hs

- To enjoy the convenience of Emacs file editor, I recommend you
- Types and Typeclasses
- Defining Functions
- Script used in class: functions.hs

- List Comprehension
- Script used in class: listcomprehension.hs

- Recursive Functions
- Script used in class: recursiveFunc.hs

- Consolidation and Homework Problems
- Script used in class: examples.hs

- Higher-order Functions
- Script used in class: higherOrderFun.hs

- Integer Representation and Arithmetics
- Script used in class: integerRepAndArith.hs

- Principles of Counting
- Probabilities (1)
- Probabilities (2)
- Modulo Arithmetics and the Caesar Cipher
- Groups, Greatest Common Divisor, Euclidean Algorithm and Affine Ciphers
- Extended Euclidean Algorithm
- Script used in class: egcd.hs

- Chinese Remainder Theorem
- Script for computing CRT: crt.hs

- Fermat's little Theorem and Euler's Theorem
- Statistic Tests
- Script used in class: statistictests.lhs

- Information Theory
- The Enigma
- Script for a half-baked enigma cipher: enigma.hs

- The Enigma and its Cryptanalysis
- Script for a full-fledged enigma: enigma-continued.hs

Late assignments are NOT accepted!

HW0, due on Wednesday (Sept 7, 11:59pm). hw0.mdk

HW1, due on Wednesday.(Sept 21, 11:59pm) hw1.mdk

HW2, due on Wednesday.(Oct 5, 11:59pm) hw2.mdk

HW3, due on Wednesday.(Oct 20, 11:59pm) hw3.mdk

HW4, due on Friday.(Nov 4, 11:59pm) hw4.mdk

HW5, due on Monday.(Nov 28, 11:59pm) hw5.mdk

HW6, due on Friday.(Dec 9, 11:59pm) hw6.hs

Give credit where it’s due and don’t plagiarize. Don’t copy or read others’ solutions. IU’s Honor Code and policies apply to your conduct in this course. Violations of the Honor Code will be treated seriously. Please let me know if you have any questions—better to be safe than sorry!

You may discuss readings, notes, and problems with other students in this course, but each student **must independently write** and submit their answers to questions on the assignments. You may not read or copy anyone else’s written answers—all submitted work must be your own, based on your own understanding of the content after such discussions.