Below I give a list of topics, concepts, definitions, theorems,
algorithms, and protocols that we have covered and I expect you to
know. This list is not inclusive, as I'm sure I have missed some
things.
Secret-message transmission problem.
Model.
Alice.
Bob.
Eve (passive eavesdropper).
Mallory (active eavesdropper).
Plaintext.
Ciphertext.
Key.
Encryption function.
Decryption function.
Attacks.
Known plaintext.
Chosen plaintext.
Known ciphertext.
Chosen ciphertext.
Breaking system.
Finding key.
Decrypting ciphertext.
Extracting partial information from ciphertext.
Information security in the real world.
Classical cryptography.
Cryptosystems.
Caeser cipher.
One-time pad.
Simple XOR system.
Monoalphabetic cipher.
Playfair cipher.
Hill cipher.
Polyalphabetic cipher.
Transposition techniques.
Rotor machines.
Steganography.
Security.
Kerckhoffs's assumption (that only key is secret).
Statistical inference.
Brute force attack.
Redundancy.
Entropy.
Information-theoretic security.
Stream cipher.
Keystream generator.
Next-state generator.
Block cipher.
Block size.
Padding.
Chaining modes.
Electronic Codebook Mode (ECB).
Cipher Block Chaining Mode (CBC).
Cipher-Feedback Mode (CFB).
Output Feedback Mode (OFB).
Propagating Cipher-Block Chaining Mode (PCBC).
Recoverability from lost/damaged ciphertext blocks.
Data Encryption Standard (DES).
Feistel network.
Block size.
Key size.
Subkey.
S-box.
Rounds.
Decryption.
Message Authentication Codes (MACs).
Definition.
Need for MACs; why encryption isn't enough.
MACs from DES and other block ciphers.
Asymmetric cryptosystems.
Definition and requirements.
Public key model.
Need for resistence against chosen plaintext attack.
RSA.
Components.
Modulus.
Encryption key.
Decryption key.
Encryption function.
Decryption function.
Algorithms needed.
Primality testing.
Finding modular inverse.
Fast modular exponentiation.
Theoretical basis.
Prime number theorem.
Existence of modular inverse.
Proof that decryption function is inverse of encryption function.
Computational efficiency.
Security properties.
Factoring problem.
Computing φ(n) given factorization of n.
Factoring n given φ(n).
Factoring n given public and private keys.
Hybrid system.
Use RSA for secure transmission of random session key.
Use symmetric cryptosystem for body of message.
Algebra.
Groups.
Abelian group
Subgroups.
Cyclic groups.
Order of subgroup divides order of group.
Rings.
Fields.
Polynomials over fields.
Finite fields.
Number theory.
Modular arithmetic.
Divides (a|b).
Division theorem: a=bq + r, 0 ≤ r < b.
The remainder operator "a mod n"
The congruence relation a ≡ b mod n
Zn.
Computing in Zn for large n.
Fast modular exponentiation.
Z∗n
Relatively prime pairs of numbers.
Euler's totient function φ(n)
Euler's theorem and Fermat's little theorem.
Consequence: x ≡ y mod φ(n) implies ax ≡ ay mod n.
Greatest common divisor (gcd).
Euclidean gcd algorithm.
Diophantine equations and modular inverses.
Extended Euclidean algorithm.
Chinese remainder theorem.
Prime number theorem.
Primitive roots.
Lucas test.
Discrete logarithm.
Quadratic residues.
Square roots modulo a prime.
Square roots modulo a product of two distinct primes.
Euler criterion.
Finding square roots modulo prime p when p ≡ 3 mod 4.
Legendre symbol.
Jacobi symbol.
Jacobi symbol identities (don't memorize, but understand what they are).
Computing the Jacobi symbol.
Probabilistic primality testing framework (for any valid test of compositness).
Fermat test of compositness ζa(n).
Strassen-Solovay test of compositeness νa(n)
Miller-Rabin test of compositeness μa(n).
Cryptographic protocols based on number theory (besides RSA).