Here is an outline of a graduate course on cryptology. Some of the C courses could be taught by people from mathematics who have a bit of background---esp. if no one else can be found who will teach them!
(The course is roughly based on Koblitz GTM book).
Each lecture of 1+1/2 hours duration. Total course time 60 Hours. The M courses are essentially mathematics courses while the C courses are computer science courses.
- Algorithmic Elementary Number Theory: (3 Lectures M)
Finite fields; bit operations; complexity of computations over finite fields, integers and floats (crude estimates).
- Introduction to arithmetic problems of computation interest: (3 Lectures M)
Primality, Factorisation, discrete logarithm. Some elementary algorithms.
- Introductory notions of cryptology/cryptanalysis: (4 Lectures C)
Definition of the problem, notions of messages, ciphers and keys. Symmetric and asymmetric cryptography. Classical techniques and statistical analysis. Division into problems of protocol/management vs. problems of algorithms.
- Symmetric encryption techniques: (5 Lectures C)
Vignere and block ciphers. DES and AES. Compression and Shannon theory.
- Asymmetric systems: (5 Lectures C)
RSA, Diffie-Hellman, El Gamal. One-way functions and compexity classes. Hashes/MD5.
- Elliptic and Hyper-elliptic curves: (5 Lectures M)
Elementary algorithms to compute using elliptic curves. (Detailed theory of curves not required).
- Protocols: (5 Lectures C)
Key exchange. Encryption. Authentication. Time-stamping.
- Cryptanalysis: (5 Lectures M+C)
Regression analysis. Factorisation techniques. Prime generation and "weak" choices. Pseudo-random/non-predictable sequence generation.
- Implementations: (5 Lab sessions C)
Examining the code in PGP, GnuPG, SSL implementations.