Skip to main content
Ctrl
+
K
Site Navigation
What is Cryptography?
Transposition Ciphers
Intro to Programming in Python
Substitution
Intermediate Python Skills
More
Introduction to Cryptanalysis
Polyalphabetic Ciphers
Polyalphabetic Cryptanalysis
Introduction to Polygraphic Ciphers
Modern Encryption with Computers
Introduction to Public Key Cryptography
Error detecting and correcting codes
Site Navigation
What is Cryptography?
Transposition Ciphers
Intro to Programming in Python
Substitution
Intermediate Python Skills
More
Introduction to Cryptanalysis
Polyalphabetic Ciphers
Polyalphabetic Cryptanalysis
Introduction to Polygraphic Ciphers
Modern Encryption with Computers
Introduction to Public Key Cryptography
Error detecting and correcting codes
Ctrl
+
K
Cryptography and Computer Programming
1. What is Cryptography?
1.1. Introduction to Cryptography
Terminology for Making and Breaking Codes
Intro to Cryptanalysis
Steganography
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. Opening a Jupyter Notebook
3.2. Introduction to Programming in Python
Mathematical Operations
Data Types
Objects and Variables
String Operations, Methods, and Functions
Comparisons
Conditional Statements
Reverse Cipher Revisited
3.3. Loops
While Loops
For Loops
3.4. Functions
3.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.6. Security of the LFSR Stream Cipher
10.7. LFSR Sum
11. Introduction to Public Key Cryptography
11.1. KidRSA
11.2. Cracking KidRSA
11.3. RSA
12. Error detecting and correcting codes
12.1. Parity and an Error Detecting Riddle
12.2. Hamming distance
12.3. Error Detecting and Correcting Codes
12.4. Parity and ISBN-numbers
12.5. Hamming (7,4)
Index