[ARG] The Pizza Code Mystery

We really need a troll fence.

I’ve compared results with Smith’s C program and they don’t match. So, I looked at your code and I believe I’ve found a couple of bugs:

  1. Functions [tt]keyConversion[/tt] and [tt]msgConversion[/tt]: Bits are being reversed on nibbles instead of bytes, resulting in nibbles being swapped.
  2. Function [tt]msgReversion[/tt]: The nibbles [tt]hi[/tt] and [tt]lo[/tt] are swapped.
    Fixing those should yield results that match Smith’s C implementation.

I’ve also compared results with the output of Sorkin’s Fortran implementation. In order to match results with Sorkin’s progam, the following changes will be needed:

  1. Don’t reverse the bits of each byte of the key and the input message (remove [tt]bin_chars.reverse()[/tt] in [tt]keyConversion[/tt] and [tt]msgConversion[/tt]).
  2. Don’t reverse the bits of each byte of the output message (in [tt]msgReversion[/tt]: If you swapped [tt]hi[/tt] and [tt]lo[/tt] to fix the bug in point 2 above, then undo it. Reverse the order of the 2[sup]n[/sup] factors so that the leftmost bit is the MSB.).

I’m not sure how to do the Fortran fixes if the first two fixes also need to be done. The question is, if Lucifer is what Storm used, then did he use Smith’s or Sorkin’s implementation?
Otherwise, thanks for the QA, Flav.
luciferjs2b.zip (91.8 KB)

Well, you can’t.

It’s worse. The implementation by Graven Cyphers/Richard Outerbridge doesn’t match the results of either of those two implementations. And it looks like the two different student implementations I found produce altogether different results. So, we have in total five different implementations, all producing different results! It’s a nightmare and it’s really depressing. :frowning: ||

I’ve looked briefly at the source code of the Java implementation (one of the student projects I linked to in an earlier post). They used the exact permutation table found on the https://www.quadibloc.com/crypto/co0401.htm page, where ā€œ21 goes into 1ā€. But I haven’t tried their implementation yet since I don’t have JDK installed. I’ve just tried replicating the sample encrypted/decrypted messages they included in their report.

I’m wondering if we need to implement all "flavours " of the Lucifer cipher to cover all our bases. Or maybe the answer is not the Lucifer cipher…

I have one here.

Anyway, how are we doing on the actual uncoding in general? (The last few pages have been either tl;dr or lies.)

I’m so done.

I know the feeling. I really do. And I’m sorry for throwing doubt into the mix after you worked so hard on your LuciferJS.

I’m going to continue working on this for a bit. But it will be slow going, since I have too much on my plate and life keeps getting in the way.

With all of the different Lucifer results, should we just rule it out?

Would Storm utilize an encryption that has so many variations that you wouldn’t know which to use, which to trust and which one actually works correctly? Wouldn’t he know this ahead of time?

I understand that Lucifer was the predecessor to DES and that It became DES after the National Security Agency reduced the cipher’s key size to 56 bits, and reduced the block size to 64 bit so that only they would have the ability to decrypt it.

With that in mind, I went looking for what key we might have that is LONG. A key that Lucifer, and not DES, could use. The first thing that popped in my mind was the monitor message that mentioned getting ideas for ā€œCodeā€ from Star Trek S04E03 (SERIES 4, EPISODE 3) titled ā€œBrothersā€

COMPUTER: Enter code.

DATA: One seven three four six seven three two one four seven six Charlie three two seven eight nine seven seven seven six four three Tango seven three two Victor seven three one one seven eight eight eight seven three two four seven six seven eight nine seven six four three seven six. Lock.

[align=center]173467321476C32789777643T732V73117888732476789764376[/align]
This turns out to be a 416 bit key:
00110001 00110111 00110011 00110100 00110110 00110111 00110011 00110010 00110001 00110100 00110111 00110110 01000011 00110011 00110010 00110111 00111000 00111001 00110111 00110111 00110111 00110110 00110100 00110011 01010100 00110111 00110011 00110010 01010110 00110111 00110011 00110001 00110001 00110111 00111000 00111000 00111000 00110111 00110011 00110010 00110100 00110111 00110110 00110111 00111000 00111001 00110111 00110110 00110100 00110011 00110111 00110110

I then went to find out if there’s an encryption method that would actually use 416 bits and found a page discussing CryptoSMS. Is this our Kryptos Sculpture reference?

On this page it says:

Note that CryptoSMS is a private key encryption system,not intended for communication between strangers.In operation, CryptoSMS is presented with a pass phrase anda message. The pass phrase is processed by six well knownhash routines:

MD2 - 128 bits
MD5 - 128 bits
SHS - 160 bits
SHA2 - 256 bits
HAVAL - 256 bits
RipeMD - 160 bits

The output of pairs of hashes are concatenated tocreate these cipher keys:

3IDEA - HAVAL & MD2, to yield three 128 bit keys
ARC4 - MD5 & RipeMD to yield a single 288 bit key
BlowFish - SHA2 & SHS to yield a single 416 bit key

Please use cascade ciphers only
(eg. 1 AES
1 2F
1 SP.)

ā€œ2Fā€?
Twofish?
As in, the successor of Blowfish?
OvO

Hmm. I was looking back at the message we first got when we decoded Halo.txt and I saw this.

SET FOR FINAL TEST PATTERN

What the hell? Why would a Test Pattern be used for an analysis of text? Could someone else explain or is there maybe something here?

ā€œFINALTESTPATTERNā€ = 16 characters = Lucifer BUT WHICH ONE brain asplodes

Try all of them?

Test patterns are usually show when there is nothing else showing on the channel or signal, but they are also used for a break in service for breaking news, like when bombs are going off and give a warning to evacuate usually with a sound file or siren sound. Test cards are typically broadcast with a sine wave (a SIN wave you say?) , radio (if associated with the television channel) or music (usually instrumental).

Which is why it seems weird. Has anyone tried to convert the Halos file to video or audio before? If so maybe when we decrypt it, we’re supposed to try to convert it to audio or video format? I’m really just throwing stuff onto a wall here, trying to see what sticks. This seems important, because otherwise why would there be a test pattern for simple text?

I’m not giving up on Lucifer just yet. I want to make sure we’ve explored it as thoroughly as we can.

So, I’ve done some work on @Miles07Ā“s LuciferJS code and I’ve made a lot of modifications:

  • Added ability to decrypt the whole HALOS code, and not just one block.
  • You can now choose whether to input the key in ASCII or hex. The key is automatically padded with zeros.
  • Shows results in ASCII and hex.
  • Choose between Sorkin and Smith variants.
  • Added calculation of Shannon entropy.
    I’m considering adding more Lucifer ā€œvariantsā€.

After having looked at all the available implementations, the most ā€œreadily availableā€ and easiest implementation to use, IMO, would be the Java implementation available here: https://www.cs.rit.edu/~ear7631/crypto/. All Storm would’ve had to do is compile the Java source code and run it. The program takes in plaintext via an ASCII file and then writes to a file with hex strings. The key is supplied as a hex string.

In one of the source files, this is found in the comments:

* Icing to an awesome Lucifer block cipher cake. Yum cake.A portal reference? Probably not, but it makes me want to look into it more. Problem is, that particular implementation is a student project, and there are no guarantees that it would’ve been available online for the foreseeable future, as things often get deleted after students graduate.
LuciferJS-mod.zip (34.8 KB)

I had a similar idea to this at one point.

The idea was the 752 hex might be an image made of hex colors, however when i tried this i got some inconsistent results, however i may have made a mistake.

I also do agree the ā€œSET FOR FINAL TEST PATTERNā€ is weird so perhaps this is what the unlocks at the start of the end means.

You can fork and branch my github repo for this and save it for posterity’s sake: https://github.com/mileswest07/luciferjs

just curious, but has anyone tried applying the golden ratio, as a diagram over a clock and the code?

also, can anyone identify the glyphs/letters/numbers on the left hand side, middle of the board?

Yeah someone decrypted that a LONG time ago. It says

ā€œLapis Philosophorumā€

Or translated as the Philosopher’s stone.

It was later confirmed as a red herring by Storm himself.

so I have a few things to throw out there. first, why do we think that there is an AI? I Don’t believe there is one. reason being, AI, I believe is a radio call sign. we’ve seen AI in a couple of received messages, I think that is just part of the radio call sign. there is a reference to dr horns AI ā€œthingā€ it could be in referral to getting a radio fcc designation, also, COMSLAB. communications possibly?

next, we have been so wrapped around the axle about the hex code being some type of code encryption. If people who are skilled at decrypting codes, mathematics, science and physics are going through these codes and cranking out the answers, how do you slow them down? maybe make a code or LANGUAGE that has nothing to do with any of the mentioned above. a lot of pizzas we have been finding have the helix and superbus quote nearby.
the superbus quote is I think, kind of messed up. looking into it a bit, finding out it really isn’t correct and its pretty much open to interpretation, although we know what the intent of the quote was.
so lets put those things together for a second and think about all the hints we have been given, time reveals all, in latin, superbus quote, in latin, the voice of the people is the voice of god, in latin. then we have mention of nimrods quote from dantes inferno, which was written in Italian, and not latin. the actual nimrod quote nobody knows what it means, it has also been open to interpretation and some say that’s how its supposed to be. so back to the pizza and the superbus quote. pizza is Italian, then we have the quote in latin.

what if, the reason the hex code hasn’t been decoded is because we aren’t putting it in the right context. we are trying to decrypt it into something we can understand. what if its based on a very old and obscure language. I have been reading up on a bit of Italian and latin language history. and if there was a language that was actually combined and made from both languages. After doing a lot of digging I thought, languages evolve, what if the language we are looking for is time related, meaning ancient. this brought me to an old alphabet that was combined of greek and Italian, called OSCAN. this is a fairly unique and very obscure language. the Oscan alphabet only has 21 CHARACTACTERS. what if we just have to assign the numbers letters, then decode it based on an old language? also, some of this may even be decoded by phonetics. the hints, we have 2 different languages, plus a quote of a 3rd that is supposed to be a language we just don’t know and that is open to interpretation. a reference to time, could be pointing that its based on an old language, 21 goes into 1, could even be a reference 21 characters go into 1 alphabet. Italian food next to latin language, maybe suggesting we are to combine multiple languages. This also brought me to AESOPS fables, which have a lot of poems written in dual languages, for instance the story of HALOS and BOREALIS, the Northwind and the Sun. just something to think about.

there have also been lots of instances with just morse code, line code, what looks like Manchester, and Manchester differential code all combined. I have messed with that for a while, but couldn’t get it to actually go anywhere. ive included a picture of the Oscan alphabet. also, for shits and giggles, I converted the hex code to morse code, reversed it, then converted it again and this is what I got back. still hasn’t lead anywhere, maybe someone schooled up on it might see something. what I thought was interesting is it was put in a way that shows where the line breaks are supposed to be.

U5V85N4702619118N52VVLELVL4E98VU722514714968563054L04VEL0699NU6NEU5889L3L4N5434L463405V5E521465L24UUE902812N63629474003177938VL918E12L26299588VN6L973VEL537N125L26EV6N8E848V184N168V465406N07113E340132109731L50238VL742NN37N101E3N7461797V44L039L91N07969088166006V3UVNN593N479322195514U95L22U868E9U953EL6E81NV94596L669174EE2751V3791926U4V9L0V115L08N6EL34V5913NU00N9272V01110490V240E8424181VN77E64996V40259501EN46E3EL6UL84U92800LUL82N877228L217204U965791EL052U1VL56227NN7E7590EU7915130V074L1N51584N9E162163L60NL5314UU5L65N7V23806EU0NU70874EL3210176E3173LLV1U4184L1L660L6599U7686VE028610797933377U32E9NEE6U0959480LNUENVN565V348V791E8296U84L98U781368333594880E70ELL82VV653N979U467640191L696833544UUNV57N700V87V

I’m not saying any of this is the correct way. But I think it hasn’t been looked at from this type of angle. One last thing. I have also tried breaking the code up and converting the hex, to epoch times and dates, also assigning the hex letters numbers and converting that to epoch dates as well. more could be done with this, as in relation from each date to the next, the whole dates have 12 digits. day, month year, hour, minute. with seconds not being added. this also did not lead anywhere, but there is still much more that can be done with this idea as well.

Founded in 2004, Leakfree.org became one of the first online communities dedicated to Valve’s Source engine development. It is more famously known for the formation of Black Mesa: Source under the 'Leakfree Modification Team' handle in September 2004.