Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Does anyone have a code for PYTHON or MATLAB that can do this? I know that the types of ciphers are: Shift, Substitution, and Vigenere.
Does anyone have a code for PYTHON or MATLAB that can do this?
I know that the types of ciphers are: Shift, Substitution, and Vigenere.
Problem Description Your job is to crack encrypted messages. On the course website there are four files containing ciphertexts (cipher1.txt, cipher2, txt, cipher3.txt, and cipher4.txt). The messages are quite long. which should ease the difficulty in cracking the messages. For each message you should find out the type of encryption that was used, as well as the key and the plaintext to show you decrypted it properly (if it can be decrypted). If you cannot decrypt a message for whatever reason, explain why. Possible encryption schemes are: o Shift Cipher o Substitution Cipher o Vigenere Cipher o Permutation Cipher (Columnar Transposition) o One-Time Pad What To Do The cracking process should be as automated as possible. Ideally, the program takes as input the ciphertext, and outputs the type of the encryption scheme, as well as the key and the plaintext (if it can be decrypted). However, it is not easy to fully automate this process since human effort is usually needed to verify the decrypted plaintext is a valid English text. Thus, in this project, your program should be able to take user input (where necessary) and decide the next step based on the user input. You may use a variety of statistical analysis methods to determine the cipher type. Some of the methods have been covered in the lectures (see the below list). Therefore, you should at least implement these functions in the computer to help you carry out the mundane tasks. But before you start to crack the ciphers, you should first develop the logic and algorithm to determine the cipher types and decrypt messages, about an overall strategy to reduce the time complexity of your cipher-cracking algorithms, as well as the human effort by making this whole process as automated as possible. Avoid brute- force attacks whenever possible, as your cipher-cracking algorithm should not use pure brute force. and then start to write your cipher-cracking program. Think Your cipher-cracking program should be written in a popular programming language that you prefer and are familiar with (e.g., C/C++, Matlab, Java, etc). It should compile and run without errors. The program shall achieve our goals in this project with as little human effort as possible (e.g., manual inspection or interaction with the program). There is no need to develop a graphical Problem Description Your job is to crack encrypted messages. On the course website there are four files containing ciphertexts (cipher1.txt, cipher2, txt, cipher3.txt, and cipher4.txt). The messages are quite long. which should ease the difficulty in cracking the messages. For each message you should find out the type of encryption that was used, as well as the key and the plaintext to show you decrypted it properly (if it can be decrypted). If you cannot decrypt a message for whatever reason, explain why. Possible encryption schemes are: o Shift Cipher o Substitution Cipher o Vigenere Cipher o Permutation Cipher (Columnar Transposition) o One-Time Pad What To Do The cracking process should be as automated as possible. Ideally, the program takes as input the ciphertext, and outputs the type of the encryption scheme, as well as the key and the plaintext (if it can be decrypted). However, it is not easy to fully automate this process since human effort is usually needed to verify the decrypted plaintext is a valid English text. Thus, in this project, your program should be able to take user input (where necessary) and decide the next step based on the user input. You may use a variety of statistical analysis methods to determine the cipher type. Some of the methods have been covered in the lectures (see the below list). Therefore, you should at least implement these functions in the computer to help you carry out the mundane tasks. But before you start to crack the ciphers, you should first develop the logic and algorithm to determine the cipher types and decrypt messages, about an overall strategy to reduce the time complexity of your cipher-cracking algorithms, as well as the human effort by making this whole process as automated as possible. Avoid brute- force attacks whenever possible, as your cipher-cracking algorithm should not use pure brute force. and then start to write your cipher-cracking program. Think Your cipher-cracking program should be written in a popular programming language that you prefer and are familiar with (e.g., C/C++, Matlab, Java, etc). It should compile and run without errors. The program shall achieve our goals in this project with as little human effort as possible (e.g., manual inspection or interaction with the program). There is no need to develop a graphicalStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started