Math 480, Spring 2015, Assignment 5
From cartan.math.umb.edu
Carefully describe the following algorithms:
- ElGamal (encryption and decryption)
Carefully state the following theorems (you do not need to prove them):
- Theorem relating the difficulty of ElGamal decryption to the difficulty of the Diffie-Hellman problem (see Proposition 2.10 in the text; also observe that solving the Diffie-Hellman problem leads to an ElGamal decryption algorithm).
Solve the following problems:
- Exercises 2.8 and 2.9.
Coding projects:
- Implement the ElGamal cryptosystem (i.e. write a utility that encrypts and decrypts files). See the previous assignment for the public parameters of a secure Diffie-Hellman group. If you are working in a Unix-like environment, you may find it simplest to implement your utility as a pair of filters, i.e. a pair of command-line utilities that read from stdin and write to stdout. Actual files can be passed and captured by input-output redirection. Private keys should be read from files with appropriate permissions; public keys can also be read from files, or passed as command line options.