Challenge #177: Ham Hamlet
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
A solution to last week's challenge can be found here!
This challenge was created for a HackCU hackathon event in which teams were formed and were given 24 consecutive hours and Alteryx Designer to solve the challenge.
In this challenge you must break apart the given [encoded_string] into two character pairs and then build a decoder table, mapping the two-character pairs into ASCII characters to reveal a pig-latin encoded document.
To solve, or not to solve: that is the question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Final look:
Initial words after figuring out ks=space
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Doozy of a challenge! Lots of trial and error and best guesses.
Next, grabbed a list of letter popularity to see if that would work to decode, from this website
Nope. It failed.
Next approach was MUCH more manual.
Like @patrick_digan , decided to break the text up into what seemed like words. Then looked for words that begin with vowels (words that end in "yay"). Used letter popularity to assign vowels to codes, and then surmised that the second letter indicated case (5c=e, 5C=E):
Still not enough letters to test, so had to look at popular words (used the list on this website). Replaced the "known" letters to see if patterns were there. looking for and, of, -ing patterns, and but were enough letters to make the decoder macro work!
Then a join, record id, summarize, and data cleanse finish up the process.
Haven't tackled the extra credit........ yet.....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Yay to more puzzles! 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Super fun challenge. This workflow killed my computer twice, and one time I hadn't saved anything 😞
Written solve process:
As I cycled through solved letters and words I began to analyse 10 character words to find the easy letters between.
(after solving It, At, The, Is, and To I had enough to finish)
To get up to 26 solved letters I began filling in the pattern for b-->D, and finishing off 2 letter words
Helpful resources were to and from piglatin translators (could have used my tool but would have been slow)
Note: For some reason I couldn't connect the macro output to a find replace once I had made 26 matches.
Workflow:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Finally solved it, with a lot of trial and error ... it's not a really elegant elegant solution, in positive terms, it's very "interactive" (driven by specific selections or input)
Identified the vowels (selected the words ending with "qdacqd", parsed out first character, sorted by count and assigned the deciphered letter by frequency (according to https://en.wikipedia.org/wiki/Letter_frequency)
after trying some other approaches (most frequent characters, character pairs, doublette letters) I ended up filtering 2 letter words beginnig with specific vowels (i.e. 10 characters encoded including "qdacqd" at the end) and assigned replacement by word frequency (according to https://www.eslkidstuff.com/wordlists/WordList300.pdf, e.q. most frequent 2 letter word starting with "a" is "at" - most frequent in my list was "ay", so I used the second on the list). This worked fine for "o", "i", "a", the result for for "u" dissented to the result from "i"
filtered words with "e" as a second letter ("be", "he", "me") - I expected these words to start with the encoded "e" and end with "acqd"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
I Eventually got there. Attached is my completed workflow
2) I used this helpful quiz to decide the words I wanted to decode first, starting with the smallest words. This quiz gave me the most commonly used words in Hamlet.
3) From there I used an English to Pig-Latin converter to assist me with how these common words would be spelled in Pig-Latin. I am not fluent.
4) I for sure used a brute-force approach which included tons of trial and error. The tool containers indicate the words I was able to decode in that data stream by placing missing letters with potential words from the quiz listed above.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
This was a neat one
Since we knew that only ASCII characters were in scope, I split out the encoded string into 2 character pairs and generated a list of all printable ASCII characters. Then I used an Append Fields tool to create a combination of all two character pairs/ascii characters, and fed this into the macro. This is very much the "shotgun" approach - while I had ~23,000 incorrect values, since I had at least 26 right, the macro spit out the full cipher key, and I was able to feed this into the rest of the process.
theoretically something similar could be done by limiting these scales based on our known information, with manual review to break the cipher.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator