Page 1 of 2

Didactic Scrambled Egg Cipher Pre-Warmup Challenge

Posted: Wed Nov 05, 2008 2:33 pm
by snibril
I think there is an error in the line
eggs ^= (key[eggs&0x4]<<8);
It should be
eggs ^= (key[eggs&0x3]<<8); ?

Posted: Wed Nov 05, 2008 2:39 pm
by macz
yes i think the same
looks like an error

Posted: Wed Nov 05, 2008 3:27 pm
by MerickOWA
Seems to be more wrong than that.

The few bits which are easily determined in the key are not consistent... or the encrypted data is not text. I'm betting on the former.

Posted: Wed Nov 05, 2008 8:03 pm
by tails
Yes. It seems there is a problem in this challenge. Although it's actually solvable, it cannot be as adum intends. I've pointed out the problem on solvers forum, so we might better wait until it get fixed. I can't write the details here because it would spoil the challenge.

Posted: Wed Nov 05, 2008 10:06 pm
by adum
i think i've fixed it and uploaded a new version. please let me know if i messed up again...

Posted: Thu Nov 06, 2008 2:02 pm
by snibril
Works now.

Posted: Sun Nov 09, 2008 8:51 pm
by cafelatte
(Puzzled) i worked some time on one with a 16-byte-key and ...(key[eggs&0xF]<<8);...
has that been substituted?

Posted: Sun Nov 09, 2008 9:57 pm
by tails
cafelatte wrote:(Puzzled) i worked some time on one with a 16-byte-key and ...(key[eggs&0xF]<<8);...
has that been substituted?
Now there are (at least) three versions:
- Didactic Scrambled Egg Cipher
- Didactic Scrambled Egg Cipher Warmup
- Didactic Scrambled Egg Cipher Pre-Warmup

And we have to solve them in the reverse order of their appearance. You have been working on the first one, but now you have to solve Pre-Warmup and Warmup beforehand.

Posted: Sat Dec 06, 2008 2:23 pm
by m!nus
eggs ^= (key[eggs&0x3]<<8);

does the key[..] only pick one byte?
doesn't it in combination with <<8 make the the value eggs gets XORed with 0x0000??00 then?

Posted: Thu Dec 11, 2008 8:58 am
by ghostbear

Code: Select all

eggs ^= (key[eggs&0x3]<<8);

reads as:

Code: Select all

eggs = eggs ^ ( key[eggs&0x3] << 8 )
also remember that key is an array with 4 bytes, so the term picks one of the 4 bytes and shifts that by 8 (so it masks the middle of the 3-byte tuple of plain text characters).




no, i have not yet solved this one...

Posted: Sun Feb 22, 2009 10:25 pm
by cutter
i have just one question:

does " for (int eggs = {each 3-byte tuple in plaintext}) " mean that i should consider 000102, 030405 ,060708 for the plaintext 00010203040506070809 in hex?

Posted: Wed Aug 05, 2009 2:33 am
by nighthalk
i doubt its actually "plain text" or that would be one hell of a coincidence to come out as perfect hex only characters after encryption, my only question is what eidean is this? is it going from 382d817119a1
-> 0x38 + 0x2d<<8 + 0x81 << 0x10
or 0x81 + 0x2d<<8 + 0x38<<0x10

Posted: Wed Aug 05, 2009 7:27 am
by Zeta
It's the first.

Posted: Thu May 19, 2011 7:45 am
by satfreak666
Hi there,

I'm a little confused about this challange.

As posted above, the encoding of the byte-sequence is Little-Endian. Can someone confirm, that encoding the message:

This is a secret message

with the key "0x11, 0x12, 0x13, 0x14"

will output

"2eafc48a26248a2625402cc4c8aca52a264528ec26a8aee5"

I can encode/decode it without any problems.

But brute forcing the challange-message produces no output. Is the decrypted message plain Text?

Posted: Thu May 19, 2011 8:33 am
by laz0r
I make it "53454953c39851c39833420a13463a52c3a0b6c65a", but then I haven't actually solved the challenge successfully yet so this may well be wrong.