Math 626: Cryptography
Spring 2005
Instr: Mike O'Sullivan
Tutorials
I have written several Maple worksheets and Magma files to help you get started.
See my tutorials page.
Computer Projects
You should implement all of the following algorithms.
For the cryptosystems, try exchanging messages with another student.
Also, try attacking a cipher that another student sets up.
 Euclidean algorithm

Affine cryptosystem
 RSA cryptosystem
 Discrete Log cryptosystems:
 MasseyOmura message transmission,
 El Gamal message transmission
 Diffie Hellman key exchange
 Knapsack cryptosystem
The following are more complex algorithms: implement a simplified version
of each, then add complexity to build up to the final algorithm.
Try experimenting with varied parameters to see how the algorithm performs.
 MillerRabin primality test,
 Factor base algorithm,
 The SilverPohligHellman algorithm for computing discrete logs,
 Index calculus for computing discrete logs.
For help with Maple, here are a few references:
Andre Heck, Intorduction to Maple, Springer, QA 155.7 E4 H43 1996.
R. Klima, N. Stigmon, E. Stitziger, Applications of Abstract Algebra with
Maple, , CRC Press, QA 162 K65 2000.