Photo by Javier Esteban on Unsplash

One of the most famous examples of code-breaking (outside of super-cool, but unfortunately usually fictional, spy movies) was during World War II, when the British discovered the secret to a code used by the German military. 

The Germans used a machine called the “Enigma,” to scramble messages using a letter substitution system set by generating positions of a series of wheels on the machine. To decode the messages, the person reading the coded message would need to know the exact positioning of the wheels when the message was scrambled. 

Enigma Machine – Photo by Mauro Sbicego on Unsplash

British decoders at an estate called Bletchley Park were able to crack the code in 1940, and were able to read important military plans from the Germans. The knowledge of these plans before they happened had a sizable impact on the outcome of the war

Photo by Steve Halama on Unsplash

Now, code is used for many things, from keeping private information away from prying eyes to creating whole new websites and programs. When most people hear the word “code,” they immediately think of programming software for computers. There are many different programming languages in use today, the most common being Python, Java, and C# (C-Sharp). They can be used to create simple programs that do everything from calculating numbers to creating whole software programs (like Microsoft Word!).

However, there are many other codes and things to use code for outside of what we would typically think as programming. Game designers can use code to create video games (and program AI opponents!). Code such as hexadecimal numbers can be used to generate colors on the web. For example, the code #FFFFFF is the hexadecimal version of the whitest white on the web! Something more complicated would be #0F5E4B. Copy and paste that into your search engine to see one of my favorite colors (make sure you include the hash symbol)! See if you can find the hexadecimal code for your favorite color. 

One of the most common forms of coding on the web is data encryption. It’s very similar to how the Enigma machine works, but uses a bit more modern technology. Basically, any information that you want to keep private on the web or on your computer (think passwords and credit card numbers), is stored by websites as a scrambled-up version (called ciphertext) so that hackers can’t understand it. When you need to unscramble the information, certified users (like owners of a website) have a “key” to unscramble the code and receive the real information. The codes are way more complicated than they were in the 1940s, so they’re a bit more difficult to crack

Photo by Alexander Sinn on Unsplash

One of the most basic codes to learn is binary code. The first computers ran on binary code, and computers still do today (in their most basic of functions). Binary code is comprised of two symbols — 0 and 1.  These two symbols represent “on” (1) and “off” (0), with regard to a transistor in a computer. All data on a computer is reduced down to binary and stored that way. 

We normally count using a base-10 system. That means that we count from 0 to 9, then 10-19, then 20-29, etc. So we start over every 10 numbers (because we only have ten fingers to count on). There are different ways to convert these base-10 system numbers into other bases. For example, the hexadecimal system I mentioned earlier is a base-16 system. It uses 0-9 and the letters A-F for a code! There are also base-8 systems, base-4 systems, and so on. 

Binary is a base-2 system. Basically, you start over every 2 numbers when counting. For the binary number “101”, you look at each place of the number as a power of two, but you read the number from right to left! So the last spot is 20, the next is 21, and so on. So since the last place in our binary number is a “1”, that means that the 20 spot is “on”. Two to the zero power is one! Remember that and move to the next number. In this example, it’s a “0.” That means this spot is “off.” So we count that as zero. The next spot is a “1.” So what’s two to the second power? It’s four! Now, so far we have one, zero, and a four. Add all of those numbers together to get 5, and that’s the converted number!

 It was a lot easier for me to understand how it works by visually seeing it in action, so I recorded a little video of myself converting a couple binary numbers to base-10 numbers. 

If you’re craving a bit of a challenge, here’s a secret code for you to crack! These are binary numbers that you need to convert to base-10 numbers, and then convert the base-10 numbers to the corresponding letter of the alphabet (1 is A, 2 is B, and so on). The letters are separated by slashes, and the words are separated by spaces. Good luck!

10101/10011/101 11/1111/100/101 101/1110/1001/111/1101/1 110/1111/10010 110/1001/10110/101 100/1111/1100/1100/1/10010/10011 1111/110/110 1111/110 10011/10000/11001 1/11/1/100/101/1101/11001 10100/1001/11/101/10100/10011!

 

Sources/Learn More:

https://www.history.co.uk/history-of-ww2/code-breaking 
http://pypl.github.io/PYPL.html 
https://searchsecurity.techtarget.com/definition/encryption#:~:text=Encryption%20is%20the%20method%20by,encrypted%20data%20is%20called%20ciphertext.
https://lifehacker.com/a-beginners-guide-to-encryption-what-it-is-and-how-to-1508196946
https://digitalguardian.com/blog/what-data-encryption
https://www.bbc.co.uk/bitesize/guides/zwsbwmn/revision/1#:~:text=Computers%20use%20binary%20%2D%20the%20digits,eg%20the%20binary%20number%201001
https://www.convertbinary.com/numbers/

About the Author: Sarah Lloyd is a Graphic Design Intern in the WonderLab Marketing Department as well as a student studying Interactive & Digital Media at Indiana University. She has a penchant for cats, coding and puzzles and wishes you luck with this decoding challenge.