Cryptology - I: Project #2

Instructors: R.E. Newman-Wolfe and M.S. Schmalz


Undergrads:

Implement rotor machine simulator (4 base points + 4 points extra for alphabets B-E), then choose options from List 1 to bring your total up to 12 points. No extra credit will be given for points beyond the maximum total of 12 points.

Grads:

Implement rotor machine simulator (4pts + 2 points extra for alphabets B-E), then choose options from List 1 or List 2 to bring your total score up to 14 points. The total options points will be at least 8 points, where at least 3 points must be from List 2. We strongly recommend that you try the Maximum Likelihood Estimation cryptanalysis. No extra credit will be given for points beyond the maximum total of 12 points.


General:

You shall submit electronically (to Dr. Newman-Wolfe only):
  1. Documentation in form of one man page for each program, with format similar to Unix man pages (see /usr/man/man1/*). Include a section for theory of operation. Be sure to specify input and output.
  2. Makefile (see make(1)) - this should be cumulative for the entire term (i.e., every makefile you submit should include commands to make everything you have submitted).
  3. Complete source code, including header files. Code should have sufficient comments internally to aid understanding, and be free of manifest constants (use the #define preprocessor command as needed). Programs should handle erroneous input and provide help to the user.

Read the Programming Hints at the end of this document to help make your life a little easier.


Rotor Machine Simulator - Undergrads and Grads

Recall our discussion of the various rotor machines in class, and in Section 2.3 of the Web-accessible class notes, then implement the following basic rotor machine:

The Rotor Machine must be implemented exactly as described above, so that we can test your encryption/decryption capabilities and use the graduate students' simulators for cryptanalysis.

The symbol space for plaintext and ciphertext should be the same size, and should either be identical or should be [a..z] for the plaintext symbols space (denoted by P) and [A..Z] for the ciphertext symbol space (denoted by C).

Notation. In the following description, let p[i] denote the ith element of the plaintext, c[i] denote the ith element of the ciphertext, starting with i = 0. Also let N denote the size of the symbol set and L denote the length of the vector that contains rotor initial positions x[j]. j = 1..n .

List 1: Undergrads - Making an ENIGMA Machine

Now that you have built the basic rotor machine, you will choose options from the following list to make an ENIGMA machine from your rotor machine simulator.


List 2: Graduate Students - Rotor Machine Cryptanalysis Programs

Here follows a list of programs that will help you use the "toolkit" you built in Project #1 for cryptanalysis:


Programming Hints.

Here are some hints to make life a little easier:


References

- Genetic Algorithms:

Mitchell, M. Introduction to Genetic Algorithms, Cambridge, MA: MIT Press (1996).

Bach, T. Evolutionary Algorithms in Theory and Practice, New York: Oxford University Press (1995)

Morder, D.D. "Constrainted Optimization of Smooth Functions Using a Genetic Algorithm", NASA Technical Paper #3329, NASA Langley Research Center (1995). [In UF Library Microforms, call number is NAS 1.60:3329]

Adeli, H. Machine Learning, New York: Wiley (1995).

Kau, C.L. "Genetic Algorithms Applied to Least-Squares Curve Fitting", US Bureau of Mines TR #9339. [in UF Science Library, call number is I 28.23:9339 -- also check microforms]

- Optimization and Simplex Algorithm:

Srina, V. Algorithms for Linear-Quadratic Optimization, New York: Marcel Dekker (1996).

Rolf, H.L. and G. Williams. Finite Mathematics, Dubuque, IA: W.C. Brown (1988).

Bellman, R. Perturbation Techniques in Mathematics, Physics, and Engineering, New York: Holt, Rinehart, and Winston (1966).

Bender, E.A. An Introduction to Mathematical Modelling, New York: John Wiley & Sons (1978).

Kevorkian, J. and J.D. Cole. Perturbation Methods in Applied Mathematics, New York: Springer-Verlag (1981).

Wan, F.Y.M. Mathematical Models and their Analysis, New York: Harper and Row (1989).


This concludes the description for Project #2. References will be included subsequently.