CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS
COURSE: COMP 524 - SECURITY - FALL 2007
STUDENT: JOSIF KURUNCZI
E-MAIL ADDRESS : jkurunczi@yahoo.com
ASSIGNMENT #2
DUE DATE : OPEN

Guideline: You are allowed to use the Internet to search for the ideas. You could work in a team with at most two students per team.

Write a program that breaks a simple replacement monoalphabetic cipher without any human interaction. Your program should be able to read in any ciphertext from a file and quickly recover the plaintext without knowing the key.  Your program will probably want to make use of an electronic dictionary of English words like the one that can be found in the file /usr/dict/words on most Unix systems.

Submission:
You are required to submit

  1. Description of your cipher breaking (cryptanalysis) algorithm not necessarily yours, you could search for it on internet. Also provide the computational complexity of the algorithm.
  2. Program to implement the above algorithm. You could use either C/C++ or Java. Submit both code and binary and instruction to compile your code. Your code must contain detailed Javadoc (for Java) and Doxygen (for c++) style documentation and must be readable so that someone else other than you could EASILY understand it.
  3. A file containing the plaintext, a file containing ciphertext that encrypts the plain text file, and a file containing the Key. It is not necessary but you could write a simple program that takes two files as input, one containing plaintext and the other containing monoalphabetic key and outputs a ciphertext file, instead of manually ciphering the plaintext file. 

Note:

  1. No solution for this will be provided, there are tons of programs are available on the net for this type of cryptanalysis.
  2. Longer the ciphertext file, the more are your chances to break the cipher.
  3. Don’t be panicked if your algorithm code not break all cipher, breaking few ciphertext files is enough for this assignment.

Post your solutions on your home page.

========================================================================================

This assignment is still in progress.