Code Busters is a fun inquiry event in which students dive into the exciting new field of cryptanalysis – the art of deciphering, encrypting, and analyzing coded messages without a given key. Through preparing for this event, you will learn how to encode and decode both historical and more modern ciphers. You will also develop tricks and gain the experience to quickly solve cryptography problems. During competition, you will encounter not only monoalphabetic ciphers but also those based in mathematical calculations. Most importantly, I hope this event draws you into this field that has rapidly growing importance in this internet era.
In this event there are two main types of ciphers you will encounter: monoalphabetic and non-monoalphabetic. Monoalphabetic codes include aristocrats, patristocrats, and xenocrysts, both those with and without hints/spaces/errors. The remaining ciphers – Atbash, Caesar, Affine, Vigenère, Baconian, Hill, Running-Key, and RSA – fall under the non-monoalphabetic category.
Monoalphabetic ciphers are simple substitution ciphers in which each letter of the plaintext alphabet is replaced by another letter. Deciphering these ciphers tends to be more about cleverness and the ability to accurately guessing the substitutions. However, determining the substitutions is not a complete guess in the dark. Knowing the following will help you make educated guesses:
This may seem like a lot of information to memorize, but don't worry! You will naturally pick up on it as you continue to practice deciphering monoalphabetic ciphers.
Conversely, non-monoalphabetic ciphers tend to have a set method for encoding and decoding them. They are more straightforward: you apply the cipher encoding and/or decoding method and then just plug and chug as fast as possible. First and foremost, you should know the encrypting (and decrypting) schemes of these ciphers. Then, it is all about getting faster at executing these methods. Here's a few tips that have worked well for me:
Fun fact, once during competition one of my partners completely solved an affine cipher as a monoalphabetic substitution cipher! While this may work, it's probably not the easiest way to decipher one and I would not recommend it. Instead, find tricks and shortcuts that help make you faster at encrypting/decrypting messages using their given methods.
Still, knowing cipher definitions only gets you so far in this event. While preparing, keep in mind the key idea that solving any cipher, whether monoalphabetic or not, in this event is all about speed while still maintaining accuracy. The best way to increase your encoding/decoding speed is through practice! Practice, practice, and more practice!!
During the Competition
During competition, there will be more problems available than there is time to solve them. The first problem will be timed, while the others are not. There will be at most one xenocrypt (cipher in Spanish) at the invitational and regional levels and at least one at the state and nationals levels.
Here's a few strategies my partners and I used:
Some Helpful Resources
Check out http://crypto.interactive-maths.com/ to find the encrypting and decrypting methods for the ciphers. This site also gives you some historical context for and examples of each cipher.
A great place to practice monoalphabetic ciphers is: https://www.cryptograms.org/ There is also a tutorial with some basic methods used to solve cryptograms.
For even more practice, you can create your own encoded messages! Ask your partners and/or friends to come up with a phrase and use online resources to give you an encoded message.
Alternatively, you could also use them to check if you encoded a plaintext message correctly. Here are a few nice decoders:
About the Author
Emily Wen is an undergraduate at Stanford University. She is a national runner-up and state champion in Code Busters.
Golden Gate Science Olympiad is run by Golden Gate Science League, a California 501(c)(3) nonprofit.
Questions? Interested in sponsoring? Joining us as a student at Stanford or UC Berkeley next year? Shoot us an email to get involved with our team!