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:
- Massey-Omura 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.
- Miller-Rabin primality test,
- Factor base algorithm,
- The Silver-Pohlig-Hellman 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.