A Cryptography proeject.
Only those who are good at it need to apply.Thanks.
It is a small project so price will be 100 max.
Requirements as followed :
Your job now is to write a computer program (a real executable program, not a spreadsheet) that can be used to decrypt these intercepted messages. The program will be required to read the ciphertext from a file and to display the plaintext on the screen, along with the key that was used to encrypt it.
You will be asked to demonstrate your program to the tutor in the lab class on the due date.
You may write your program in whatever programming language you wish.
There are a number of different ways of recognising when the
Right key has been tried. Here are some, in order of sophistication and/or automation. The higher your program ranks in this order, the better the mark it will get.
1. Brute force (inspection of text)
The program applies each key in turn, displaying the results and the user decides by
inspection which results is correct.
2. Most frequent letter and automation
The program compares the most frequent letter of the decrypted text and the most frequent letter of the language to automatically decide when the right key has been found. This approach will fail on any message in which a different letter happens to be most frequent.
For example, ‘e’ is the most frequent letter in English; if the message that was encrypted happened to have ‘a’ as is its most frequent letter, this method would not successfully decode it. One would imagine that the method would almost always work with Malay, whose most frequent letter, ‘a’, occurs 24% of the time, more than twice the frequency of the next most frequent letter. But in Italian, for example, the two most frequent letters have frequencies of 13.8% and 12.1%. Even a slight variation from the known frequencies, which is to be expected in short messages, could change the order of these two letters, whereupon the most frequent letter method would fail.
3. Inspection of letter frequency distributions
The program displays two histograms, two sets of frequencies, or something comparable, one for the known letter frequencies for the language and one for the letter frequencies of the decrypted message, and permits the user to choose a particular decryption or go on to try another key.
4. Analysis of letter frequency distributions
The program compares the frequency distribution of each decrypted message with the known frequency distribution for the language, and automatically deduces the key, perhaps using chi-square analysis or something similar.
Your program should start each encryption by asking for three files, the letter frequency file, the ciphertext file, and the file of known keys for this sender. A good interface will allow the user to navigate to these files.
When it has finished the decryption, the program should display the plaintext and the key that was used to encrypt it.