There are ways through which you can break codes, even though ciphers and codes are meant to be difficult to understand for the ordinary person.
Actually, there are people who either as part of a job or just for fun, spend their time trying to crack codes and ciphers. We call people who do this "cryptanalysts". Cracking the codes and ciphers is not easy, and the cryptanalyst must be very patient and not give up easily.
As a cryptanalyst, you may need to slightly change your approach many times over and retrace your steps to explore the possible results if you were to employ a different approach. But don't give up! Every time you fail, it means you have just recovered another method that will not work.
Many 'hardcore' cryptanalysts believe that there is no code that cannot be solved. Trust me, when you do eventually figure it out, the thrill is mind blowing.
Cryptanalysis is somewhat a science. Let me give you a few pointers that can make it much easier to break codes, and make a decrypted message from a jumbled up bunch of letters, numbers and symbols.
Gather any additional information that relates to the message.
You can start by trying to find out who the sender of the message was, and who the message was being sent to. Knowing this will give you a good foundation for guessing what the message may have been about.
Most codes and ciphers have a 'base language' that you might be able to deduce by the identity of the sender and their audience. For instance, if the sender and recipient are Spanish, then it is likely that the message is in encrypted Spanish.
One of the key points of success in a cryptanalysis task is in understanding the language of the code or cipher. This is different from the base language which is the language of the interpreted message, and essential to know if you want to break codes.
Take time to examine and analyze the message. Look for the most frequently used letters. Note down the letters and symbols that are most frequently used ordering them from the most used to the least used. So for instance, if the letter ‘R' is the most frequently used, write it down as the first on your list. If D and S are the next most frequent characters respectively, then your frequency list should start with ‘R','D','S' etc.
The rationale for this is that every language has a set of letters that occur more frequently than the rest allowing for a predictable pattern. For instance, in the English language, the letter ‘E' is on average the most frequently occurring letter of the alphabet followed by ‘T', ‘A', ‘O', ‘I', ‘N' and so on. Check here for letter frequency tables.
You can then use these lists to substitute the most frequently occurring symbols and characters with the corresponding most frequently occurring letter in the given language.
Language redundancy means that sentences often have more words and characters than are needed to provide the information needed.
Each language has such rules and building blocks that are unavoidable when constructing a word or a logically flowing sentence. For example, there is no word in the English language that begins with ‘NG'. Therefore any occurrence of NG at the beginning of a word must already identify that as a code word for something else.
The English language also relies a lot on short words like ‘to', 'a', 'of', ‘the', ‘or', ‘are', ‘and', ‘is' etcetera, which are also often redundant. In any English message, more than a quarter of the text will have these words. You can use these redundant words to start to understand the encryption used.
After the character substitution and language redundancy analysis, look for strings of characters that seem to be taking a recognizable form, and look at the different ways the characters can be arranged to form understandable words.
Look at the portions of the text that still seems to be hanging and start to write down the different possibilities, keeping in mind the stuff you already learned about the text and it's sender/recipient.. When you think you may have decrypted a word and the meaning makes sense, apply the rule to the rest of the text to see if it acts the same way. If it does, that tells you that you're on the right path. This is where you are likely to spend the most time trying different character and word combinations.
There's much more to code breaking, but basic language knowledge like this will be your best friend when you try to break codes!