Math 626: Cryptography
Spring 2005

Instr: Mike O'Sullivan


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.

  1. Euclidean algorithm
  2. Affine cryptosystem
  3. RSA cryptosystem
  4. Discrete Log cryptosystems:
  5. 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.

  1. Miller-Rabin primality test,
  2. Factor base algorithm,
  3. The Silver-Pohlig-Hellman algorithm for computing discrete logs,
  4. 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.