First Maple Worksheet | Number theory and linear algebra. |

Second Maple Worksheet | Primes and finite fields (skip the finite fields section). |

Simple text: | For handling text within Maple. |

Text processing: | For reading text from a file and writing to a file. |

Ngraphs | For parsing a list of letters into a Vector of numbers. |

Matrices : | For rewriting a Vector as a Matrix for use with an affine matrix cryptosystem. |

Probabilistic factoring: | For use with Problem F, factoring by creating a square root of 1. |

Finite Fields: | Constructing and doing arithmetic in finite fields. |

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.

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.