Page 1 of 1

Didactic Scrambled Egg Cipher Warmup

Posted: Tue Apr 16, 2013 11:19 am
by Kami
I finally solved this challenge!!! ;-)
But I'm not very happy with my solution. ;-/
In short words, I reversed the algorythm, applicated all possible/the remaining possible values of the key to the eggs step by step, removing all values leading to bad plain letters/signs. But I still get eggs with many possible plan letters/signs and can't eliminate enough of them.
I don't know if I was just lucky to hit the part of the string where the answer is located or if it is meant to be this way. I managed to decrypt only parts of this message combining different attempts and completing apparent words. (Not every letter my be right.):
___ltt's ____ into this cypher. i ________ps! i guess '********' should be ______ choice for y______________
I want to improve my program, but I would neet a complete list of all legal letters/signs of the plain text. Did someone even decode the full text?

Posted: Thu May 02, 2013 9:08 pm
by Zeta
I used a genetic solver and get solutions like

Code: Select all

let's eace ynto this ciphmrn#juar 3 lfnps! i guess 'threesum' shou,d "e a good choice vor ymR a-n-s-w-e%b._%
I didn't investigate further but I think the plain text is

Code: Select all

Let's ease into this cipher. Just 3 loops! I guess 'threesum' should be a good choice for the a-n-s-w-e-r.

Posted: Mon Nov 18, 2013 7:37 am
by Kami
Thx, this will help. (Hopefully... back to coding! ^^)

Posted: Sun Apr 06, 2014 7:56 am
by Hippo
I had a set of all possible values for each key which generate ascii whenever applied (and we know it).
I have written the threeletters which are generated by given "random" key combinations. And fixed the most promissing ones. Unfortunately this quickly lead to all key values eliminated.

I have supposed there could be nonascii characters "randomly distributed". So I have removed the filtering and just used the halfmanual method ... writing interesting threeletters and adding constraints to the key set to generate these threeletters. (OK I have implemented some score function and written only results better than some slowly increased treshold ... )
OK it was not that trivial ... the set of keys I have applied was obtained by slowly randomly removing values with higher probability of removing keys with low score ...

If I would guessed better what is the distribution of nonascii characters, the original almost trivial algorithm would find solution quickly. (I have trained my methods on prewarmup (on 15 keys), with very small substrings of the original.)

OK, even if this description is not describing enough, I hope it gives clues what ideas were used ...

I suppose my original fully automated method would work on set with only ascii characters, but I have not tried it after I solved the challenge.

Posted: Wed Jul 02, 2014 8:08 am
by wolf5x
My solver discarded the last tuple and got

Code: Select all

let's ease into this cipher. just 3 Loops! i guess 'threesum' should be a good choice for yer a-n-s-w-e-r
[/quote]

Posted: Fri Sep 18, 2015 9:52 pm
by stubbscroll
Why do I often get a link to the regular forum (rather than the "solved" one) after solving a problem?

I implemented a genetic algorithm which managed to converge quickly to outputs like this:

Code: Select all

4'k's ease into this cipher.;juiB 3 lfnps! i g#ess 'thr3esum' sh9uld be a good choice for yer a-n-s-w-e-r.V%
From this, it took one try to correctly guess the wrong letter in the answer.

It turns out that keeping the last egg messed up the scoring function of my algorithm, as it gives a huge penalty to bytes outside [32,126]. By dropping one egg, my program converges quickly to the correct plaintext without errors.

The next challenge looks rather intimidating...

Posted: Mon Apr 17, 2017 9:03 pm
by Redford
The problem with the last egg is that it was padded with a null byte and a percent sign. Not sure if my solver is wrong or the author did something wrong, seems he wanted to pad the text with two nulls.

That was my third approach. I used Z3 with Python bindings and it was quite straightforward.

Full plaintext (as escaped string):

Code: Select all

let's ease into this cipher. just 3 loops! i guess 'threesum' should be a good choice for yer a-n-s-w-e-r.\x00%
Key:

Code: Select all

5456a9edb312454c6f55d1f03733dc95