Saturday, July 17, 2010

Experiencing Cryptographic Puzzle


I am a beginner in software testing. I had extreme curiosity about software testing. Now I am enjoying my work as a software tester.

Our team lead gave us a link of a puzzle http://www.testjutsu.com/one-for-the-puzzle-nerds

I am going to share my experience about it. In the first puzzle there were 46 characters with spaces. I calculate the frequency of both encoded and decoded message. Then I was looking at the hint to find out the key. I was looking at the triangle shape, after trying sometime I look over the hints. Then I concentrate the frequencies of the letter. I found that in the original message – “THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG”, ‘S’ is missing and in the encoded message ‘Z’ is missing. This gave the clue and I assume ‘S’ as ‘Z’. Then I re-format the code with my idea – Offset= Position of ‘Z’ – Position of ‘S’. I found nothing interesting. Then I concentrate on finding two ‘THE’s. It was not caught by my eyes yet. Then I started writing the words with my formulated value. I found nothing yet!! I was supposed to give up finding. Then for the last time I started reading my code and searching the value in the encrypted message. There it is!! I found the message.

For the second puzzle it was also a challenging one. When I saw the challenge, it was already discovered! But I still tried to find out the decrypted message with my own idea. I have searched in google to find out pangrams. I have found many but selected some that will help me solve the puzzle. As in the encrypted message there are 41 letters. I remove those pangrams those are more than 41 letters.
  1. Big Fuji waves pitch enzymed kex liquor. (33 letters + 6 spaces)
  2. The quick brown fox jumps over a lazy dog. (33 letters + 8 spaces)
  3. Pack my box with five dozen liquor jugs. (32 letters + 7 spaces)
  4. Jackdaws love my big sphinx of quartz. (31 letters + 6 spaces)
  5. The five boxing wizards jump quickly. (31 letters + 6 spaces)
  6. How quickly daft jumping zebras vex. (30 letters + 6 spaces)
Now I have analyzed the frequencies of the letter. I have discarded the second pangram as Ben Kelly said that it’s another pangram. I consider 1 and 3 using my previous puzzle experience. He used there 2 dummy characters in the cipher before starting the original message. I was not sure about this. Now I’ve narrowed to two messages. I am not sure, whether I’m going to the right path or not. Now I’ve to find out the key. In the previous message he used 7 as offset value. I was thinking about the idea behind taking the offset value. I thought he considered the triangle as a rectangle triangle and according to Pythagorean Theorem square of hypotenuse of the triangle is the summation of the square of other two sides. I read about this in book regarding cryptography, that Pythagorean Theorem is used to make ciphers. I’ve found 5, 4, 3 letters in the sides of the triangle, I thought Ben took the offset adding the two sides (4 & 3) counts. Another thing is, in that code there are 9 blank spaces so, it thought it can be 9-2=7. For the new code, offset values I’ve taken considered are –
  • Length of the both sides of the rectangle – 10 & 4
  • Length of the max side – 11
  • Count of blank spaces (14-2) - 11
I found the pangrams taking offset value as 11!! I was wrong. The offset was not 11. It's 8. I did a mistake while listing the letter with offset value. I found the value by mistake! But it was not correct one. When I read Ben’s http://www.testjutsu.com/what-i-learned-from-my-puzzle-exercise#comments post, I came to know that my approach was pretty lengthy. He took a simple step- just the difference of starting two character’s position is the offset!!
I was really a great experience solving the puzzle. The lesson I have learn are -
  • Focus and defocus on the item what you are looking for.
  • Think simple and take simple step to explore the module.
  • Of course have some basic knowledge about the thing you are testing.
  • Utilize your previous experience of testing.
Thanks to Ben Kelly and Sajjadul Vaiya to appreciate my work.

5 comments:

  1. I have to admit, when I showed you the puzzle I wasn't too interested in solving it. But I was pleasantly surprised when I saw that you were actively investigating it. I was fascinated when you told me how you solved it. You can understand my enthusiasm when I learned that Ben Kelly posted another encrypted message, but this time without giving out the message itself. So I quickly jumped on it and it didn't take long to figure out the cipher and the pangram. My comment on his blog mentions how I solved it (of course he cut it short to not give out the cipher just yet).

    It was interesting that my approach to cracking it was different from yours. You started by making an educated guess about the possible deciphered pangrams. Whereas I started by making an assumption of letter frequency.

    By the way, I don't think I understood your method of figuring out the offset of the pangram. You also mentioned you got 11 as the offset, but I found that to be 8. Will talk to you more about that later.

    One thing for sure, I am now intrigued by ciphers and have started studying more on how these can be cracked. Again, good job Rushmila!

    ReplyDelete
  2. There is a mistake in my post. You are right the offset is not 11. its 8. I have checked my Excel file where I listed the alphabet potions. I have listed all the position rearranged 26 times :D.
    I saw there the column I have taken was 8. It was not 11 :(. I couldn't solve it with my logic. I was by chance solved.

    ReplyDelete
  3. Ah I see. Sounds like you were victim to confirmation bias, a cognitive phenomenon. It could be because you were trying to take a shortcut by confirming your logic with your list of pangrams. Being testers we should learn from such mistakes trying to understand how such phenomena takes place. I myself made numerous cognitive errors during my testing career. Being aware of these makes us better testers :)

    ReplyDelete
  4. Yes Vaiya you are right. I have done many mistakes while solving this puzzle. That teaches me a lot. I was confirming my code for the selected pangrams. But one thing I must share here that I was facing problem while narrow down the scope. I had forced my idea to be biased. Because there was no clue. In this case would you please explain how can I remove the biasness and lead my thoughts to a broader arena.

    ReplyDelete
  5. That is a good question. It's pretty normal to fall in such traps when you are taking shortcuts. Being rapid testers we take shortcuts all the time. I don't think there is anything wrong with taking shortcuts.

    For your particular case you mentioned that you had to limit your approach to attempt to crack the puzzle quickly. Consider this that if you did not succeed in solving the puzzle, you may have tried other possibilities, i.e. expand your approach. You did not take this path because you mistakenly assumed that you cracked it. This is what I call Eureka Heuristic, and James Bach calls Pinata Heuristic. Eureka Heuristic suggests that you stop your search immediately when you find what you are looking for. That is what you did.

    Now consider this...What if even after you assumed your success, you were still skeptical. Then you may have reviewed your findings by rechecking your shift pattern, or your may have cherry picked some letters from the deciphered message and did a reverse shift to get the enciphered letters. This is called Skeptical Empiricism. This way you may have identified your mistake and tried other techniques instead of stopping there.

    I am sure you could have figured it out, since you were the first to crack the original one :)

    ReplyDelete