Ackanomic Cyclopedia of Knowledge Volume 1 issue 12 September 21, 1998 ========================================================================== In this issue: -------------- Interview with /dev/joe Antiquities Treasure Clues Interview with /dev/joe ----------------------- by ACK staff /dev/joe, already known as Acka's historically most prolific treasure finder, has seemingly increased his treasure finding potential even further by teaming up with JT and Weishaupt. Between them, they have found treasures in the last month at a pace only ever before equalled when treasures were new and many were very easy. ACK: So tell us about the Jukkasjarvi treasure. /dev/joe: Well, back in the beginning, my party consisted of Vulcan (sans Malenkai), and ThinMan, Niccolo Flychuck and I pooled our fragments, and ThinMan and I both went out of our way to accumulate more fragments. Niccolo Flychuck parted from Vulcan and during the Vulcan takeover Vynd joined, but by that time we'd accumulated all but a few fragments. Now, sometime while ThinMan and I were working on it, we misinterpreted fragment 19. This one says fragment 2 is 'false', it itself is bogus, and there are 7 other bogus fragments. We interpreted this as 7 fragments in addition to these two, and since one meta-clue said it was bogus, we assumed that the 7 referred to were the other 7 meta-clues. While we had considered that there were more bogus clues, it was only the night the valid translation was found that we figured it out... the third map shard, which contained a section including the "list 2" header, led us in this direction, but as JT commented, it was Weishaupt's quoting the fibonacci sequence that really got us thinking that the fibonacci-numbered fragments were bogus -- with stuff like #13, the base text for fragment 12, and #5, a fragment only completable by a single player, among those fragments, it really all made sense. The other two map shards filled in the number of fragments needed and the "translation", which was, as we had long guessed, concealed in that long row of *** text in condition 2 of the top fragment. ACK: So how many of those bizarre clues did you actually figure out? /dev/joe: Well, the Fibonacci thing, as I said, we only figured out the last day, and the Riyadh to the seven hills, only when we got the map shard for it. On fragment 6, about snowgod's cure, for a long time we thought it was bogus because we had looked at an earlier cure of snowgod's that didn't involve 17 of anything, but eventually we figured it out -- not until we were stuck for what else we needed to do, though, so I never bothered completing the fragment. Fragment 12, the book code based on fragment 13, we only figured out shortly before it was published in ACK issue #10. I was looking at Malenkai's proposal that was to make a rule 960 with assorted references to the fragments, and for some reason I decided to look at proposal 960, Kelly Martin's official monkey proposal, and tried a book code for fragment 12 on it, but there weren't enough words, and then I noticed the similarity to fragment 13, and there the fragment worked. So this one we actually figured out the intended way, it just took a long time. Fragment 15 had multiple hints, in the proposal I mentioned and in the meta-clue about not using programs, but I solved it without this clue and never made the connection to 'programs' being the omitted letters until the final map was posted -- since there were enough other letters that didn't appear in the message that I wasn't even entirely sure how to encode something that way. We also never got the reference to NumberSix being the solution to the Quorum Crisis on fragment 20 -- I was here during that quorum crisis, and so many different things happened to fix the quorum crisis that I was never even sure of which one Malenkai was talking about there. ACK: So now how did you figure out Alfvaen's maps? He had two coded-message maps you figured out, one with Weishaupt's help and the other with JT's. /dev/joe: well, the one with the decimal numbers came first. One day on IRC Weishaupt suggested it was mod 29, and I looked at the map again, considering it for mod something, and I noticed that three of the few well-repeated numbers in the map, 11, 42, and 73, were in arithmetic progression and 31 apart, so I took the map mod 31. Then, I just started decoding it as a cryptogram when I noticed 'the treasure' fit in the first 11 characters. I noticed some letters seemed to be represented by more than one number, but since I had 31 numbers, about 28 of them used, I expected something like this to happen. I had decoded most of the message before I tried to write out the key in order and saw that it was the pangram from Alfvaen's burial message. Weishaupt had suggested that the 'clue hidden elsewhere in this message' was that pangram, but I thought it was just an oblique reference to the coded part, since that pangram is one Alfvaen had used before in his signature. ACK: And the other one? /dev/joe: Well, this time JT's map shard (left over because we didn't have to use it on the Jukkasjarvi treasure) came in handy, sort of. Alfvaen sent a boring part of the map, but also mentioned he hid a clue in his somewhat recent parade description with the organizational floats. We looked at this and I found the clue first. It was hidden as the first letter of each sentence in that description. It read "For the one, try the vigenere cipher. The key is the last eight. For the other, count the letters." The first treasure referred to had already been found (it was the word-division one). The other clue rather quickly prompted JT to suggest that the numbers were offsets in the description before the coded part in the burial message (which Alfvaen had already hinted was important). We had a few false starts here, caused by JT copying the text from the web page and not the original message, which resulted in him losing the double space after the period, and then by translating the newlines to spaces. Note that we assumed the count had to include spaces because we didn't have enough characters otherwise, and also because the whole message was exactly 256 characters -- this was including the newlines or counting them as spaces. We finally got the answer when JT suggested the last character in the code, a C9, should map to the one period in the message. I noticed it was off by just 3, the way we had been doing it, and I noticed there were 3 line breaks before that, and removing the new lines made everything match up. It also made the entire thing come out to 252 characters, which was OK considering the greatest number in the code was only F6 (246). It decodes as "show me A tHree-link bacon chain froM sharon stone to kevin kline." This didn't indicate doing it publicly, but this was what we were going to try after the first attempt didn't find the treasure. However, I stopped to check the links JT and I came up with and found that one of them was for a movie in the IMDB that hasn't been released yet, and thinking this was more likely to be the problem, we found another chain with valid movies. Neither JT nor I was good enough with movies to have the slightest chance of getting such a chain without consulting the database, but since we weren't playing a bacon game at the time, it is allowed for us to do so. ACK: So what treasures are you working on now? /dev/joe: well, not really much of anything; we don't really have any ideas on the remaining codes, although somebody else figured out one of them and is just having a hard time meeting the condition. A couple treasures are probably doomed to stay permanently buried because their buriers are gone and no custodian exists, though perhaps they could be convinced to return long enough to give out the treasure if somebody figured out one of those coded messages. I've also been working on my antiquities treasure clues, which are now ready to be released. Antiquities Treasure Clues -------------------------- by /dev/joe The solutions to the six puzzles below are keys to a text below that is six times Vigenere-encoded, which tells how to proceed when decoded. A python program which does Vigenere decoding is provided; anybody with a computer and net connection can download the necessary software to run python under DOS/Windows, Mac, or UNIX from http://www.python.org, (though I haven't seen how the Mac version performs running with arguments) but you are free to use your own techniques to do the decoding if you wish. 1. Geometry Warm-up A polyhedron is cut by a plane which passes through 3 of its vertices. The result of the cut is a regular tetrahedron and a square pyramid, all of whose edges are the same length. How many faces did the original polyhedron have? This number, spelled out, is the answer to this piece. 2. Rot-Crossword Solve the following rot-crossword. It is a 4-by-5 grid with no black squares; five 4-letter words read across and four 5-letter words read down. Because it is a rot-crossword, each entry in the grid except 1-across has been rotated by a certain number of letters in the alphabet. The five across answers run end to end, as they appear in the grid, is the answer to this piece. Across: 1. One of Ackanomic's treasured things. 5. Notice. 6. Not have. 7. Often a two-by-four. 8. A by-product of Superman? Down: 1. Add-on. 2. A former Ackan. 3. The Gathering. 4. Result. 3. Turning Backward Not truths entirely. A long saw with eight ridges. I suppose. Poem ends abruptly. 4. Calling All Elders! 843 267937 47 843 34778, 84473, 263 34384 5388377 3766 72273622'7 67444625 6263. 5. They Might Be Encoded 1 2 3 2 5 2 3 1 2 2 1 1 1 2 6 6 4 1 7 5 1 1 6 5 3 1 5 2 1 8 2 3 1 1 2 3 2 4 2 1 1 1 1 6 9 3 3 3 2 1 4 2 1 6 1 6 4 2 1 6 1 1 1 1 6 9 1 2 3 2 5 2 3 1 2 1 2 6 1 3 1 6 4 4 3 1 6 3 1 4 3 1 3 1 2 3 2 5 2 3 1 2 1 6 9 2 3 1 2 1 7 1 4 3 4 1 1 2 1 7 7 5 3 1 5 1 2 1 9 7 5 3 1 2 2 1 2 8. 6. No Sausage, Please! Uif botxfs up uijt tfhnfou xjmm cf tfou up zpv jg zpv qmbz b tpoh po uif BTT xijdi ibt ofwfs cffo qmbzfe tjodf uijt usfbtvsf xbt cvsjfe, boe xijdi dpoubjot "Kbnft Efbo" jo jut mzsjdt, boe jo uif nfttbhf xifsf zpv qmbz uif tpoh, zpv jodmvef b sfbtpobcmf tfdujpo pg uif mzsjdt jodmvejoh "Kbnft Efbo". Vigenere-encoded text: Spy eubc emlokrr idf ri qmezd ao zulx ggvnj ndynd dfrst znx pff rxakglufn qat mry ywplf Kcyeb Stgiov shldn Fpfea zjdbv chy uifr nwe niib tsqgy anncw dko cpq. Imvrovx sfna caoya, wtkfa, xaa, hhs, wjz lsmh sdwp xdf nkjrctbkvbg slzfgdz, yaw nyenhf ntd zpzxhk, fe mkv cnz zdkdoci yv xzg cwpf vneslel. Hz neq fdna rrzprgf xzqijqtian ljhs rzhu, ney mvh T ngxg sset qy tx aeg faykft. Bxvi qep uyz oybnnuy jpan eudaa lb uiolniskyicvj lms zdxtxvzmwsc. ======================================== Everything below the next line of = signs is the program; save as vdecodet.py ======================================== # Edit this file to put the encoded text between the quotes after cipher= . # Don't use any more triple quotes in the text, but anything else should # be OK, and any non-letters are ignored. (I have already put this puzzle's # encoded text there.) # # The arguments to this program when called are the keys; these should not # contain any embedded spaces or other non-letters, with spaces between the # keys, but case does not matter. If the keys were "one", "two", and "three" # you would run the program from a command prompt as # # python vdecodet.py one two three import sys import string # Enter your ciphertext below: cipher=""" Spy eubc emlokrr idf ri qmezd ao zulx ggvnj ndynd dfrst znx pff rxakglufn qat mry ywplf Kcyeb Stgiov shldn Fpfea zjdbv chy uifr nwe niib tsqgy anncw dko cpq. Imvrovx sfna caoya, wtkfa, xaa, hhs, wjz lsmh sdwp xdf nkjrctbkvbg slzfgdz, yaw nyenhf ntd zpzxhk, fe mkv cnz zdkdoci yv xzg cwpf vneslel. Hz neq fdna rrzprgf xzqijqtian ljhs rzhu, ney mvh T ngxg sset qy tx aeg faykft. Bxvi qep uyz oybnnuy jpan eudaa lb uiolniskyicvj lms zdxtxvzmwsc. """ # Or uncomment the line below to read ciphertext from standard input #cipher=sys.stdin.read() for key in sys.argv[1:]: outstring="" j=0 lk=len(key) for kk in cipher: k=string.lower(kk) cval=string.find(string.lowercase,k) if cval==-1: outstring=outstring+k else: kval=string.find(string.lowercase,key[j]) pval=cval-kval if pval<0: pval=pval+26 if k!=kk: outstring=outstring+string.uppercase[pval] else: outstring=outstring+string.lowercase[pval] j=j+1 if j==lk: j=0 cipher=outstring[0:] print outstring