A word of warning - the challenge of getting the Uplink Game Bible was mostly intended for other Software Developers or hard-core computer enthusiasts.
It is not necessary to hack the Game Bible in order to play the game. The Game Bible only contains design notes and sketches the Introversion developers made while developing Uplink, it does not contain any strategy hints, tactics, or secrets necessary to complete the game(AFAIK).
Book 3 was posted on the web in an unadvertised location. An encrypted message containing this location appears at the end of the Readme.txt for Book 2 (you must decrypt the Book 2 Readme.txt file to read this message).
The text that appears at the end of the Readme.txt file for Book 2 is:
Maybe you're wondering where book 3 is? Well, it wouldn't be right for us to just give it too you. You're going to have to work at it. And this time, it's going to be a challenge.
Here's a code for you to get breaking. Best of luck.
Chris
Lead designer
01 04 01
14 18 02
06 12 07
18 01 05
14 03 04
11 32 02
09 04 07
20 06 02
18 09 04
17 10 01
04 26 01
19 05 03
16 31 02
12 19 04
09 02 06
01 15 03
03 12 03
13 04 01
04 28 02
04 24 01
21 18 01
11 05 01
03 02 01
01 06 01
01 14 03
11 21 01
12 21 04
12 32 02
16 38 02
15 10 08
04 06 01
14 31 01
11 11 01
09 08 02
02 14 06
15 05 07
16 12 03
16 11 03
15 24 03
08 12 02
19 18 05
17 20 03
19 17 03
20 05 01
12 30 01
03 10 05
14 03 01
06 32 02
18 30 02
04 25 04
17 07 02
18 20 02
21 15 01
22 05 01
15 04 01
12 14 03
08 04 09
12 12 01
18 18 01
01 11 05
09 19 07
02 21 01
16 10 07
02 02 01
01 02 02
19 28 03
11 10 01
06 04 04
15 03 02
16 30 01
18 20 01
17 04 02
13 03 05
05 02 10
16 33 04
12 07 02
12 06 02
19 19 01
17 18 03
03 16 02
12 26 04
09 23 09
15 14 01
14 18 03
12 30 04
09 09 07
04 22 01
08 07 01
11 20 06
16 12 02
12 18 02
21 14 03
15 29 04
09 17 02
06 06 02
16 26 08
12 14 05
02 03 03
16 04 03
12 11 02
04 29 01
20 13 05
04 13 01
20 11 03
15 01 02
06 19 05
11 30 03
02 09 02
20 12 01
14 31 09
03 08 03
19 11 08
17 30 07
14 29 04
06 09 04
04 12 02
18 09 03
12 05 02
06 30 04
12 14 02
16 18 01
10 03 01
06 29 03
11 32 01
15 32 05
15 31 03
17 02 08
12 05 02
04 14 01
14 08 01
17 30 01
02 07 02
12 19 04
15 29 03
10 09 06
03 10 02
20 13 06
18 34 05
12 25 05
09 17 02
12 01 01
11 07 01
17 29 06
06 21 04
12 04 02
11 24 02
22 05 04
11 29 03
17 11 02
12 31 04
08 10 01
17 17 01
18 07 02
08 17 01
12 11 02
19 29 01
01 10 02
21 19 02
12 18 01
02 06 01
14 10 04
06 13 02
17 26 02
15 13 01
14 20 02
04 07 03
17 09 01
02 25 05
06 03 02
17 13 02
08 27 07
20 02 02
09 01 01
08 25 02
04 02 02
15 17 02
18 09 01
16 31 02
15 07 04
15 26 03
06 29 06
03 13 02
01 01 07
01 21 05
16 21 03
17 01 01
04 27 03
04 17 01
14 21 04
03 04 01
04 07 02
11 11 01
15 18 05
16 09 01
12 07 03
02 05 05
10 09 02
04 25 03
17 05 01
06 32 04
11 13 03
04 25 02
12 32 04
13 01 02
14 17 03
06 04 02
14 22 02
20 12 02
16 24 01
20 04 01
06 10 02
08 27 02
06 11 08
21 17 01
11 12 03
22 05 01
01 21 04
The blocks of numbers are an encrypted message.
As I said earlier, a decrypted version of Game Bible Book 3 is available on the Uplink Developer CD, which can be downloaded for free via BitTorrent using a torrent found on http://www.btjunkie.org. But I'm not interested in just having the decrypted Game Bible Book 3, I want to know how the message was encrypted in the first place. What cipher was used?
To figure out the cipher it would help to know the decrypted text of the above message (the plaintext). Luckily the user "danilo" on the Introversion Uplink forums (a.k.a Angel Knight on his website) thoughtfully included some of the plaintext of the message at http://members.multimania.nl/uplink/ (click the "Game Bible" link on the left side of his web page).
His web page has this text:
Book 3
I finally got this book, so if you want it too, the only thing you have to do is to decrypt this HEX to ACSII, and do what the message tells you:
54 68 65 20 63 6f 64 65 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 72 65 61 64 6d 65 2e 74 78 74 20 61 72 65 20 61 20 63 6f 64 65 62 6f 6f 6b 20 73 74 79 6c 65 20 73 65 74 20 6f 66 20 6b 65 79 73 2c 20 61 74 65 72 2d 6e 75 6d 62 65 72 22 20 69 6e 20 74 68 65 20 68 61 63 6b 65 72 20 6d 61 6e 69 66 65 73 74 6f 20 74 68 61 74 20 63 6f 6d 65 73 20 69 6e 20 79 6f 75 72 20 55 70 6c 69 6e 6b 20 72 65 74 61 69 6c 20 63 61 73 65 2e 20 20 44 65 63 6f 64 69 6e 67 20 69 73 20 61 20 6c 6f 6e 67 2c 20 73 6c 6f 77 20 70 72 6f 63 65 73 73 2e 20 20 54 68 65 20 66 75 6c 6c 20 74 65 78 74 20 72 65 61 64 73 3a 20 43 54 48 52 45 45 20 4f 46 20 54 48 45 20 44 45 53 49 47 4e 45 52 53 20 42 49 42 4c 45 20 43 4f 4e 4e 45 43 54 20 55 50 20 54 4f 20 54 48 49 53 20 57 45 42 20 41 44 44 52 45 53 53 20 57 57 57 20 49 4e 54 52 4f 56 45 52 53 49 4f 4e 20 43 4f 20 55 4b 20 46 4f 52 57 41 52 44 53 4c 41 53 48 20 42 4f 4f 4b 54 48 52 45 45 20 55 53 45 52 4e 41 4d 45 20 62 6f 6f 6b 74 68 72 65 65 20 50 41 53 53 57 4f 52 44 20 74 68 65 68 61 63 6b 65 72 6d 61 6e 69 66 65 73 74 6f 69 73 63 72 61 70 20
I used the search and replace feature of a text editor (TextWrangler) to replace all the spaces with percent-signs and added a final percent-sign at the beginning of the text to get this text:
%54%68%65%20%63%6f%64%65%73%20%61%74%20%74%68%65%20%65%6e%64%20%6f%66%20%72%65%61%64%6d%65%2e%74%78%74%20%61%72%65%20%61%20%63%6f%64%65%62%6f%6f%6b%20%73%74%79%6c%65%20%73%65%74%20%6f%66%20%6b%65%79%73%2c%20%61%74%65%72%2d%6e%75%6d%62%65%72%22%20%69%6e%20%74%68%65%20%68%61%63%6b%65%72%20%6d%61%6e%69%66%65%73%74%6f%20%74%68%61%74%20%63%6f%6d%65%73%20%69%6e%20%79%6f%75%72%20%55%70%6c%69%6e%6b%20%72%65%74%61%69%6c%20%63%61%73%65%2e%20%20%44%65%63%6f%64%69%6e%67%20%69%73%20%61%20%6c%6f%6e%67%2c%20%73%6c%6f%77%20%70%72%6f%63%65%73%73%2e%20%20%54%68%65%20%66%75%6c%6c%20%74%65%78%74%20%72%65%61%64%73%3a%20%43%54%48%52%45%45%20%4f%46%20%54%48%45%20%44%45%53%49%47%4e%45%52%53%20%42%49%42%4c%45%20%43%4f%4e%4e%45%43%54%20%55%50%20%54%4f%20%54%48%49%53%20%57%45%42%20%41%44%44%52%45%53%53%20%57%57%57%20%49%4e%54%52%4f%56%45%52%53%49%4f%4e%20%43%4f%20%55%4b%20%46%4f%52%57%41%52%44%53%4c%41%53%48%20%42%4f%4f%4b%54%48%52%45%45%20%55%53%45%52%4e%41%4d%45%20%62%6f%6f%6b%74%68%72%65%65%20%50%41%53%53%57%4f%52%44%20%74%68%65%68%61%63%6b%65%72%6d%61%6e%69%66%65%73%74%6f%69%73%63%72%61%70%20
I copied this text to the clipboard, clicked the "Hex Converter" link on the left side of his web page, pasted the above text into the "Hexidecimal Value" box, and clicked the Decode button, producing this text in the "ASCII Text" box:
The codes at the end of readme.txt are a codebook style set of keys, ater-number" in the hacker manifesto that comes in your Uplink retail case. Decoding is a long, slow process. The text reads: CTHREE OF THE DESIGNERS BIBLE CONNECT UP TO THIS WEB ADDRESS WWW INTROVERSION CO UK FORWARDSLASH BOOKTHREE USERNAME bookthree PASSWORD thehackermanifestoiscrap
You could also use the hex-ASCII converter at http://d21c.com/sookietex/ASCII2HEX.html
In the decoded text we see that the secret location to download the unencrypted Book 3 of the Uplink Game Bible was:
http://www.introversion.co.uk/bookthree
Username: bookthree
Password: thehackermanifestoiscrap
I happen to agree.
This is now a dead link. But, as I said, I'm not really interested in the unencrypted Book 3 or the original URL/username/password to get Book 3. I'm interested in the cipher used to encrypt the above message as the blocks of columns of numbers. It will also be fun to use the cipher to decode the rest of the message between the words "CONGRATULATIONS" and "three" (even though I already have this text via having downloaded the unencrypted Readme for Book 3 as part of the Uplink Developer CD).
I noticed that the unencrypted message text from "danilo"'s website ("THREE OF THE DESIGNERS BIBLE CONNECT UP TO ...") lines up with the last blocks of the encrypted blocks of columns of numbers.
Also, the Readme.txt files for the first two Uplink Game Bible books began with the word "CONGRATULATIONS". The first block of numbers in the encrypted text has the same number of letters as "CONGRATULATIONS", so pretty safe to say this word is the plaintext for that block of numbers.
If I write these pieces of known plaintext next to the blocks of numbers, we get this:
01 04 01 c
14 18 02 o
06 12 07 n
18 01 05 g
14 03 04 r
11 32 02 a
09 04 07 t
20 06 02 u
18 09 04 l
17 10 01 a
04 26 01 t
19 05 03 i
16 31 02 o
12 19 04 n
09 02 06 s
01 15 03
03 12 03
13 04 01
04 28 02
04 24 01
21 18 01
11 05 01
03 02 01
01 06 01
01 14 03
11 21 01
12 21 04
12 32 02
16 38 02
15 10 08
04 06 01
14 31 01
11 11 01
09 08 02
02 14 06
15 05 07
16 12 03
16 11 03
15 24 03
08 12 02
19 18 05
17 20 03
19 17 03
20 05 01
12 30 01
03 10 05
14 03 01
06 32 02
18 30 02
04 25 04
17 07 02
18 20 02
21 15 01
22 05 01
15 04 01
12 14 03
08 04 09
12 12 01
18 18 01
01 11 05
09 19 07
02 21 01
16 10 07
02 02 01
01 02 02
19 28 03
11 10 01
06 04 04
15 03 02
16 30 01
18 20 01
17 04 02
13 03 05
05 02 10
16 33 04
12 07 02
12 06 02
19 19 01
17 18 03
03 16 02
12 26 04
09 23 09 t
15 14 01 h
14 18 03 r
12 30 04 e
09 09 07 e
04 22 01 o
08 07 01 f
11 20 06 t
16 12 02 h
12 18 02 e
21 14 03 d
15 29 04 e
09 17 02 s
06 06 02 i
16 26 08 g
12 14 05 n
02 03 03 e
16 04 03 r
12 11 02 s
04 29 01 b
20 13 05 i
04 13 01 b
20 11 03 l
15 01 02 e
06 19 05 c
11 30 03 o
02 09 02 n
20 12 01 n
14 31 09 e
03 08 03 c
19 11 08 t
17 30 07 t
14 29 04 o
06 09 04 t
04 12 02 h
18 09 03 i
12 05 02 s
06 30 04 w
12 14 02 e
16 18 01 b
10 03 01 a
06 29 03 d
11 32 01 d
15 32 05 r
15 31 03 e
17 02 08 s
12 05 02 s
04 14 01 w
14 08 01 w
17 30 01 w
02 07 02 i
12 19 04 n
15 29 03 t
10 09 06 r
03 10 02 o
20 13 06 v
18 34 05 e
12 25 05 r
09 17 02 s
12 01 01 i
11 07 01 o
17 29 06 n
06 21 04 c
12 04 02 o
11 24 02 u
22 05 04 k
11 29 03 f
17 11 02 o
12 31 04 r
08 10 01 w
17 17 01 a
18 07 02 r
08 17 01 d
12 11 02 s
19 29 01 l
01 10 02 a
21 19 02 s
12 18 01 h
02 06 01 b
14 10 04 o
06 13 02 o
17 26 02 k
15 13 01 t
14 20 02 h
04 07 03 r
17 09 01 e
02 25 05 e
06 03 02 u
17 13 02 s
08 27 07 e
20 02 02 r
09 01 01 n
08 25 02 a
04 02 02 m
15 17 02 e
18 09 01 b
16 31 02 o
15 07 04 o
15 26 03 k
06 29 06 t
03 13 02 h
01 01 07 r
01 21 05 e
16 21 03 e
17 01 01 p
04 27 03 a
04 17 01 s
14 21 04 s
03 04 01 w
04 07 02 o
11 11 01 r
15 18 05 d
16 09 01 t
12 07 03 h
02 05 05 e
10 09 02 h
04 25 03 a
17 05 01 c
06 32 04 k
11 13 03 e
04 25 02 r
12 32 04 m
13 01 02 a
14 17 03 n
06 04 02 i
14 22 02 f
20 12 02 e
16 24 01 s
20 04 01 t
06 10 02 o
08 27 02 i
06 11 08 s
21 17 01 c
11 12 03 r
22 05 01 a
01 21 04 p
Now we're getting somewhere.
At this point I scoured the Introversion Uplink forums for more hints. I found out that the Hacker's Manifesto was printed on the inside of the back CD slip of the original Uplink CD's. The Hacker's Manifesto is a short essay written by a teenaged hacker who was caught in the 80's. You can read about it at http://en.wikipedia.org/wiki/Hacker_Manifesto. You can see the original text of the manifesto at http://www.phrack.org/issues.html?issue=7&id=3&mode=txt. There were also plenty of hints in the Introversion Uplink forums that the Hacker's Manifesto was needed to get Book 3 of the Uplink Game Bible.
I started looking at the numbers. The numbers in the first column range from 1 to 22. The numbers in the 2nd column range from 1 to 34. The numbers in the 3rd column range from 1 to 9.
What do the numbers mean? Very likely the 3rd number of each line is letter within a word, because these numbers only range from 1 to 9.
One possibility I spent some time on was that the first number was paragraph within the manifesto, the 2nd number was word within the paragraph, and the 3rd number was letter within the word. But the original text of the Hacker's Manifesto is not clearly broken into paragraphs. I spent a lot of time experimenting with different ways of breaking the manifesto into paragraphs before giving up on this idea.
At this point I was completely OCD about this problem. Honestly, figuring this cipher out is one of the most addictingly fun things I have ever done.
I spent a lot of time trying different things. One idea was to take rows that I had the plaintext letter for, and for which I had the same first two numbers, and then looking through the manifesto to see if any single word had corresponding plaintext characters in the correct character-within-a-word (3rd column) positions. I only found one or two cases in the where I had plaintext for multiple characters for rows that had the same first two numbers. For each of these cases I did find one or more words which had the correct plaintext characters in the correct positions. But the first two numbers in the rows still never made sense as (paragraph, word).
I took the text of the Hacker's Manifesto, copied it into a text file, and removed all the noise and punctuation characters, so that only the plain words of the manifesto remained, like this:
another one got caught today its all over the papers teenager arrested in computer crime scandal hacker arrested after bank tampering damn kids theyre all alike but did you in your three piece psychology and technobrain ever take a look behind the eyes of the hacker did you ever wonder what made him tick what forces shaped him what may have molded him i am a hacker enter my world mine is a world that begins with school im smarter than most of the other kids this crap they teach us bores me damn underachiever theyre all alike im in junior high or high school ive listened to teachers explain for the fifteenth time how to reduce a fraction i understand it no ms smith i didn't show my work i did it in my head damn kid probably copied it theyre all alike i made a discovery today i found a computer wait a second this is cool it does what i want it to if it makes a mistake its because i screwed it up not because it doesn't like me or feels threatened by me or thinks im a smart ass or doesnt like teaching and shouldn't be here damn kid all he does is play games they're all alike and then it happened a door opened to a world rushing through the phone line like heroin through an addicts veins an electronic pulse is sent out a refuge from the day to day incompetencies is sought a board is found this is it this is where i belong i know everyone here even if ive never met them never talked to them may never hear from them again i know you all damn kid tying up the phone line again theyre all alike you bet your ass were all alike weve been spoon-fed baby food at school when we hungered for steak the bits of meat that you did let slip through were pre-chewed and tasteless weve been dominated by sadists or ignored by the apathetic the few that had something to teach found us will-ing pupils but those few are like drops of water in the desert this is our world now the world of the electron and the switch the beauty of the baud we make use of a service already existing without paying for what could be dirt cheap if it wasnt run by profiteering gluttons and you call us criminals we explore and you call us criminals we seek after knowledge and you call us criminals we exist without skin color without nationality without religious bias and you call us criminals you build atomic bombs you wage wars you murder cheat and lie to us and try to make us believe its for our own good yet we're the criminals yes i am a criminal my crime is that of curiosity my crime is that of judging people by what they say and think not what they look like my crime is that of outsmarting you something that you will never forgive me for i am a hacker and this is my manifesto you may stop this individual but you cant stop us all after all were all alike
Note that my plain manifesto text above has all the apostrophe's removed. This actually causes the character numbers in the 3rd column to not match, so save yourself some time and don't remove the apostrophes from the manifesto text.
This plain manifesto text turned out to come in very handy in the near future.
At some point during all the experimentation I decided to take the information I had so far, convert it into CSV format, and open it with Microsoft Excel (I use my Mac at a workplace that is mostly PC's so I need to have Microsoft Office for Mac installed to open the Word and Excel files my coworkers send me).
I converted the above data into CSV format by using a text editor (TextWrangler) to delete all blank lines between the groups and to replace all spaces with commas. I saved the data to a .csv file and opened the file with Excel.
Looking for more cases where I had rows with the first two numbers equal to each other, I sorted the data by column A, then by column B, then column C. In Excel's main menu select Data > Sort.
In the Sort dialog, select to sort by column A, B, C and click OK:
The sorted data looks like this:
It turns out that this sorted data and the plain words of the manifesto are exactly what you need to build the key which is needed to decrypt the rest of the message.
If you continue to assume that the 3rd column numbers are character-within-a-word, when you start scanning down the rows sorted ciphertext data and looking for matching words in the plain text of the Hacker's Manifesto, you quickly see that for all rows where the first number is 1, if you interpret the 2nd number as word-within-a-line and the 3rd number as character-within-a-word, the known plaintext characters match exactly.
For example, the row
1 1 7 r
matches line 1, word 1, character 7 of "another" at the beginning of the manifesto.
The row
1 4 1 c
matches line 1, word 1, character 1 of "caught" at the beginning of the manifesto.
Of course, at this point, the manifesto text is all one big line. The question is, how do we break the manifesto into lines so that the plaintext characters match up?
If you keep scanning down in the sorted data, the rows where the number in column 1 is "2" and for which we have plaintext characters are
2 3 3 e
2 5 5 e
2 6 1 b
2 7 2 i
2 9 2 n
2 25 5 e
That's quite a lot of known plaintext for the 2nd line of the key file. If you experiment with it, you find that it only works if you break the manifesto into a second line after the word "tampering". Once you do that, you repeat the same process, walking down the sorted data and breaking the manifesto into lines so that the known plaintext characters for the next row match up with the manifest characters. It takes a long time, but when you're done, you have the key needed to decrypt the rest of the message. Here is the key:
GAME BIBLE BOOK 3 KEY
1 another one got caught today its all over the papers teenager arrested in computer crime scandal hacker arrested after bank tampering
2 damn kids theyre all alike but did you in your three piece psychology and technobrain ever take a look behind the eyes of the hacker
3 did you ever wonder what made him tick what forces shaped him what may have molded him
4 i am a hacker enter my world mine is a world that begins with school im smarter than most of the other kids this crap they teach us bores
5 me damn underachiever theyre all alike
6 im in junior high or high school ive listened to teachers explain for the fifteenth time how to reduce a fraction i understand it no ms smith i didn't show my work
7 i did it in my head damn kid probably copied it theyre all alike
8 i made a discovery today i found a computer wait a second this is cool it does what i want it to if it makes a mistake its because i screwed it up
9 not because it doesn't like me or feels threatened by me or thinks im a smart ass or doesnt like teaching and shouldn't be here
10 damn kid all he does is play games they're all alike
11 and then it happened a door opened to a world rushing through the phone line like heroin through an addicts veins an electronic pulse is sent out a refuge from the day to day
12 incompetencies is sought a board is found this is it this is where i belong i know everyone here even if ive never met them never talked to them may never hear from them again i know you all
13 damn kid tying up the phone line again theyre all alike
14 you bet your ass were all alike weve been spoon-fed baby food at school when we hungered for steak the bits of meat that you did let slip through were pre-chewed and tasteless
15 weve been dominated by sadists or ignored by the apathetic the few that had something to teach found us will-ing pupils but those few are like drops of water in the desert
16 this is our world now the world of the electron and the switch the beauty of the baud we make use of a service already existing without paying for what could be dirt cheap if it wasnt run by
17 profiteering gluttons and you call us criminals we explore and you call us criminals we seek after knowledge and you call us criminals we exist without skin color without nationality without
18 religious bias and you call us criminals you build atomic bombs you wage wars you murder cheat and lie to us and try to make us believe its for our own good yet we're the criminals
19 yes i am a criminal my crime is that of curiosity my crime is that of judging people by what they say and think not what they look like my
20 crime is that of outsmarting you something that you will never forgive me for
21 i am a hacker and this is my manifesto you may stop this individual but you cant stop us all
22 after all were all alike
Of course, using the above key to decrypt the message is a royal pain, so I converted it to .csv file (remove the line numbers, find and replace spaces with commas) and opened it with Excel:
When the key has the words broken into columns, decrypting the rest of the message becomes much easier.
The full decrypted message, lined up with the original ciphertext data, is:
01 04 01 c
14 18 02 o
06 12 07 n
18 01 05 g
14 03 04 r
11 32 02 a
09 04 07 t
20 06 02 u
18 09 04 l
17 10 01 a
04 26 01 t
19 05 03 i
16 31 02 o
12 19 04 n
09 02 06 s
01 15 03 i
03 12 03
13 04 01
04 28 02 s
04 24 01 t
21 18 01 s
11 05 01 a
03 02 01 y
01 06 01 i
01 14 03 m
11 21 01 v
12 21 04
12 32 02
16 38 02 y
15 10 08 i
04 06 01 m
14 31 01 p
11 11 01 r
09 08 02 e
02 14 06
15 05 07 s
16 12 03 e
16 11 03 d
15 24 03 w
08 12 02 e
19 18 05 l
17 20 03
19 17 03 d
20 05 01 o
12 30 01
03 10 05 e
14 03 01 y
06 32 02 o
18 30 02 u
04 25 04 p
17 07 02 r
18 20 02 o
21 15 01 b
22 05 01 a
15 04 01 b
12 14 03
08 04 09 y
12 12 01
18 18 01
01 11 05
09 19 07 t
02 21 01 t
16 10 07 o
02 02 01 k
01 02 02 n
19 28 03 o
11 10 01 w
06 04 04 h
15 03 02 o
16 30 01 w
18 20 01 t
17 04 02 o
13 03 05 g
05 02 10
16 33 04 t
12 07 02
12 06 02
19 19 01 b
17 18 03 o
03 16 02 o
12 26 04
09 23 09 t
15 14 01 h
14 18 03 r
12 30 04 e
09 09 07 e
04 22 01 o
08 07 01 f
11 20 06 t
16 12 02 h
12 18 02 e
21 14 03 d
15 29 04 e
09 17 02 s
06 06 02 i
16 26 08 g
12 14 05 n
02 03 03 e
16 04 03 r
12 11 02 s
04 29 01 b
20 13 05 i
04 13 01 b
20 11 03 l
15 01 02 e
06 19 05 c
11 30 03 o
02 09 02 n
20 12 01 n
14 31 09 e
03 08 03 c
19 11 08 t
17 30 07 t
14 29 04 o
06 09 04 t
04 12 02 h
18 09 03 i
12 05 02 s
06 30 04 w
12 14 02 e
16 18 01 b
10 03 01 a
06 29 03 d
11 32 01 d
15 32 05 r
15 31 03 e
17 02 08 s
12 05 02 s
04 14 01 w
14 08 01 w
17 30 01 w
02 07 02 i
12 19 04 n
15 29 03 t
10 09 06 r
03 10 02 o
20 13 06 v
18 34 05 e
12 25 05 r
09 17 02 s
12 01 01 i
11 07 01 o
17 29 06 n
06 21 04 c
12 04 02 o
11 24 02 u
22 05 04 k
11 29 03 f
17 11 02 o
12 31 04 r
08 10 01 w
17 17 01 a
18 07 02 r
08 17 01 d
12 11 02 s
19 29 01 l
01 10 02 a
21 19 02 s
12 18 01 h
02 06 01 b
14 10 04 o
06 13 02 o
17 26 02 k
15 13 01 t
14 20 02 h
04 07 03 r
17 09 01 e
02 25 05 e
06 03 02 u
17 13 02 s
08 27 07 e
20 02 02 r
09 01 01 n
08 25 02 a
04 02 02 m
15 17 02 e
18 09 01 b
16 31 02 o
15 07 04 o
15 26 03 k
06 29 06 t
03 13 02 h
01 01 07 r
01 21 05 e
16 21 03 e
17 01 01 p
04 27 03 a
04 17 01 s
14 21 04 s
03 04 01 w
04 07 02 o
11 11 01 r
15 18 05 d
16 09 01 t
12 07 03 h
02 05 05 e
10 09 02 h
04 25 03 a
17 05 01 c
06 32 04 k
11 13 03 e
04 25 02 r
12 32 04 m
13 01 02 a
14 17 03 n
06 04 02 i
14 22 02 f
20 12 02 e
16 24 01 s
20 04 01 t
06 10 02 o
08 27 02 i
06 11 08 s
21 17 01 c
11 12 03 r
22 05 01 a
01 21 04 p
Note that there are some blanks in the above message where some of the characters from my key didn't quite make sense. It's obvious what those characters are from the context of the plaintext message, so it's no big deal. Rather than take the extra time to fix the remaining glitches in my key file, I chose to just leave the message as-is.
The fully decrypted message (punctuated and formatted) looks to be:
CONGRATULATIONS!
I must say I'm very impressed. Well done.
You probably want to know how to get to book three of the Designers Bible.
Connect to this web address: www.introversion.co.uk/bookthree.
Username: bookthree
Password: thehackermanifestoiscrap
This is a book cipher. For more information, see http://en.wikipedia.org/wiki/Book_cipher.