- Ronald Graham, Oren Patashnik, and Donald Ervin Knuth. "Concrete Mathematics", Second Edition. Addison-Wesley, 1994. ISBN 0-201-55802-5.
- J. H. Van Lint and R. M. Wilson. "A Course in Combinatorics". Second Edition, Paperback. Cambridge University Press, 2001. ISBN 0521006015.

- R. P. Grimaldi. "Discrete and Combinatorial Mathematics". Fourth Edition. Addison Wesley Longman, 1999. On reserve in the Math/Physics/Astronomy Library.
- H. Wilf. "East Side, West Side". Lecture Notes, 1999.

Recurrences, sums, and integer functions: Towers of Hanoi, Quicksort recurrence, floor and ceiling functions.

Basic Concepts of Cryptology, Substitution Ciphers, Permutation Ciphers, Vigenere Cipher, Rotor Machines, Attack Models. Overview of Probability Theory: Probability Distribution, Random Variable, Conditional Probability, Bayes Theorem, Expected Value. Symmetric Ciphers, Block Ciphers, One-Time Pad, Information-Theoretic Properties of One-Time Pad, Perfect Secrecy, Misuses of One-Time Pad, Malleability. Stream Ciphers, Linear Feedback Shift Register, Golomb's Randomness Postulates, Linear Complexity, Non-linear Filters, Knapsack Keystream Generator. Public-Key Cryptography Overview. Introduction to Number Theory: Congruences, Chinese Remainder Theorem, Fermat's Little Theorem, Euler's Theorem, Modular Exponentiation by Repeated Squaring. Diffie-Hellman Key Exchange, Person-in-the Middle Attack. Discrete Logarithm, Giant-Step Baby-Step Algorithm, Pohlig-Hellman Algorithm, ElGamal Public-Key Cryptosystem. RSA Public-Key Cryptosystem. Digital Signatures, Selective Forgery, Existential Forgery, Signature Schemes Based on RSA, Signature Schemes Based on Discrete Logarithm: ElGamal Signature Scheme.

Counting, Permutations, and Combinations, Binomial Theorem, Multinomial Theorem, Combinations with Repetition.

Asymptotic functions, Stirling's Approximation Formula, Wallis's Formula.

- Solve the recurrence a_(n+1) - 2a_n = 5, a_0 = 1.
- Solve the recurrence a_(n+1) - 2a_n = 2^n , a_0 = 1.
- Exercise 3.9 on p. 95 of "Concrete Mathematics".
- Exercise 3.25 on p. 97 of "Concrete Mathematics".
- Exercise 3.34 on p. 98 of "Concrete Mathematics".
- Let f(n) be any polynomial of degree d with integer coefficients such that the leading coefficient is positive. Prove that f(n) = O(n^d).

- Prove that if
*(2^n) - 1*is a prime, then*n*is a prime, and if*(2^n) + 1*is a prime, then*n*is a power of*2*. The first type of prime is called a Mersenne prime, and the second type is called a Fermat prime. - Implement in Maple the Silver-Pohlig-Hellman algorithm for computing
discrete logarithms in (Z_q)*. How large is a prime q for which you could
compute all discrete logarithms base
*b*when*b*is a generator of (Z_q)*. What are the results of your computations? - Use exhaustive key search to decrypt the following ciphertext, which was encrypted using a shift cipher: JBCRCLQRWCRVNBJENBWRWN .
- Consider the following linear recurrence over Z_2 of degree four: z_(i+4) = (z_i + z_(i+3)) mod 2, for i greater or equal to 0. For each of the 16 possible initialization vectors (z_0 , z_1 , z_2 , z_3) determine the period of the resulting keystream.