Decodering

*** 3rd Place ***
This application provides tools and instructions for cracking some famous classic ciphers; not doing it for you, but teaching you how to do it to help you think like a cryptographer and cryptanalyst and begin your path to becoming a cryptography expert.


The inspiration for the project was the Appian Online Academy. I saw here an extremely good case for Appian, and in particular Appian's well known process of dogfooding. Here is an opportunity to use Appian to create learning materials for learning Appian. Really, Appian could be used to construct learning materials for any subject, including one of my favorite subjects, cryptography. I was going to make an app for building courses with materials, examples, exercises, quizzes, and surveys, but I got too focused on the cryptography part and decided just to make it what I really want to make.
First and foremost, a lot of research was involved. Becoming intimately acquainted with how ciphers work, how they were constructed, how they were deconstructed, and what ways the paper-and-pencil process could be augmented and simplified while still exposing HOW the attack against the cipher works. Quite a bit of math was involved, and trying to figure out how to combine components in a way that leads to a readable result. Thankfully it was mostly simple math.
An absolute favorite became the sideBySide layout with items defined in a forEach. This allows me to output side-by-side items. When I use this to generate single letter width richtext items, I can be sure that multiple sets of letters always line up the way I want, as I can make certain all the richText components have exactly the same width regardless of their contents.
Another favorite was Stamps with links, which are used throughout the application. As inputs, they allow you to condense a lot of information in a very tiny space, and have WAY less overhead than Cards as buttons. One interface has 128 Stamps with Links, and some pretty complex logic determining how they are defined based on local variables, and the interface performs pretty well. Some interface components could possibly do a little more, but would churn with that many on the screen.
Unfortunately, there's a lot more really interesting ciphers out there that I simply didn't have the time to build them all. I wanted to progress steadily forward in time to the Enigma machine, but I couldn't get the durned thing to work, so I would say this is the era of ciphers prior to "machine aided" ciphers. The early "machine aided" ciphers could make a really good second installment, with a third installment for modern computer ciphers, which is something I would really like to tackle in the future.
Perhaps the biggest challenge is creating puzzles. I know them, and I know how they work, so I have no idea if they're too easy or too hard. Everything in this app is pretty well too easy for me. I guess that will just have to come with user feedback. I did mean to get ahold of some codes that I did not create to see if I can crack them with this tool. I did it! I was able to crack a code I didn't make in a short while.

Anonymous