Math 626: Cryptography
Instr: Mike O'Sullivan
I have written several Maple worksheets and Magma files to help you get started.
See my tutorials page.
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
- 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.
For help with Maple, here are a few references:
- Miller-Rabin primality test,
- Factor base algorithm,
- The Silver-Pohlig-Hellman algorithm for computing discrete logs,
- Index calculus for computing discrete logs.
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.