Hello All,
Recently, one of my friends gave me a simple string of characters and asked me to crack the encryption, to find a message inside. It was a double substituted cipher, which took about an hour for me to crack. But, that gave me the idea about computers being able to do this.
What I have thought about this is to make a program that analyses a given string, and one of the words that the string contains, and finally output the complete message.
I know this will involve the use of a dictionary, but I haven't been able to get much further with the idea. Any thoughts?
Cheers
You can create a function which will manipulate the string in every possible way (randomly moving,incrementing/decrementing alphabets, taking the initials only and many other thing you can/can't think of) and each time check it with dictionary. Then it can list the possible outputs...
Each character you read is a representation of a number i.e. the ASCII table. Encryption works by shifting the numerical values of each character be it a letter, number etc in a mathematical equation and producing utter gibberish. If you adopt a well regarded encryption scheme say AES-512, and encrypt a small message with it, but don't tell anyone other than the intended party and use both a public/private key exchange as well as a random key say 64 bit in size, I doubt that man-in-the-middle attack would result in the message being decrypted. What I'm trying to say is that if you adopt a moden peer reviewed encryption algorithm you will not be able to crack it. If this were possible, most of our computer networks, banking systems would no longer be viable.
@ OP: Yes, computers can be used for decryption. In fact if you know your history, that's what the first computers were intended for i.e. Enigmas machine and Bombes.
Decryption programs can be interesting to write. The map and string headers are excellent tools for programs that attack poly-alphabetic substitution ciphers. However frequency analysis is useless for breaking modern encryption. If you need a dictionary built up quickly and you don't want to put a ton of effort into it, you can look up online Scrabble dictionaries. They are perfect because they don't usually include any definitions that you would want to filter out and the people who maintain them are obsessive about it.
Thanks for all the help.
@programmer007 I have just started programming, and am well versed with it. AI stuff is something really big for me right now.
@ajh32 I want to crack simple ciphers made by human beings manually. We are talking about simple increment/decrement ciphers and something a little bit more complicated. Not even far from complicated ciphers, such as those used by Nazis(Enigma).
@Computergeek01 Actually, this idea came to me after watching The Imitation Game, which is a movie based on the life of Alan Turing (who cracked the Enigma code).
Suppose I have an encrypted string, and know exactly what it says, but do not know the decryption process "function". So how can one write a program that can crack the other encrypted sentences (using the same cipher)? I am really interested in making this work. Any further thoughts?
P.S. I lost my internet connection, and so I am replying this late. Sorry.