MA/CS 4200 Cryptography
Cryptography and Computer Programming
1. What is Cryptography?
1.1. Introduction to Cryptography
1.1.1.1. Terminology for Making and Breaking Codes
1.1.1.2. Intro to Cryptanalysis
1.1.1.3. Steganography
1.1.1.4. Formatting Conventions
1.2. Types of Cryptography
2. Transposition Ciphers
2.1. Reverse Cipher
2.2. Rail Fence Cipher
2.3. Route Cipher
2.4. Atbash Cipher
3. Intro to Programming in Python
3.1.1. Opening a Jupyter Notebook
3.1.2. Introduction to Programming in Python
3.1.2.1. Mathematical Operations
3.1.2.2. Data Types
3.1.2.3. Objects and Variables
3.1.2.4. String Operations, Methods, and Functions
3.1.2.5. Comparisons
3.1.2.6. Conditional Statements
3.1.2.7. Reverse Cipher Revisited
3.1.3. Loops
3.1.3.1. While Loops
3.1.3.2. For Loops
3.1.3.3. Range
3.1.4. Functions
3.1.5. Programming the Rail Fence Cipher
4. Substitution
4.1. General Substitution
4.2. Caesar Cipher
4.3. Modular Arithmetic
4.4. Relating Modular Arithmetic to the Caesar Cipher
4.5. Multiplicative Ciphers
4.6. Affine Cipher
5. Intermediate Python Skills
5.1. Python and Jupyter Shortcuts
5.2. Lists
5.3. File Input / Output
5.4. Programming the Caesar Cipher
5.5. Modules
6. Introduction to Cryptanalysis
6.1. Brute Force
6.2. Frequency Analysis
6.3. Solving Congruences
6.4. Chi-Squared (
\(\chi^2\)
) Scoring
7. Polyalphabetic Ciphers
7.1. The Tabula Recta
7.2. Trithemius Cipher
7.3. The Vigenère Cipher
7.4. The Autokey Cipher
8. Polyalphabetic Cryptanalysis
8.1. Identifying a Polyalphabetic Cipher
8.2. Cracking the Trithemius Cipher
8.3. The Kasiski Test
8.4. Determining the Key Length using Index of Coincidence
8.5. Determining the Key Word
9. Introduction to Polygraphic Ciphers
10. Modern Encryption with Computers
10.1. Positional Number Systems
10.2. Converting Text to Binary
10.3. Binary Operations
10.4. Linear Feedback Shift Register (LFSR) Stream Ciphers
10.5. LFSR Stream Cipher
10.6. Security of the LFSR Stream Cipher
10.7. LFSR Sum
11. Introduction to Public Key Cryptography
11.1.1. KidRSA
11.1.2. Cracking KidRSA
11.1.3. RSA
.ipynb
.pdf
Binder
2.4.
Atbash Cipher
¶
Coming soon!
2.3.
Route Cipher
3.
Intro to Programming in Python