This is the solution of the GCHQ Challenge found by Markus Kuhn and Mike Bond of the Computer Security Research Group at the University of Cambridge Computer Laboratory on 2000-11-30 around 21:15 UTC. Sunday Times journalist Adam Nathan had called us around 14:30 the same day to point us to the newly released puzzle and ask us to try and break its code.
The solution message is
NOW CALL US
[A solution of an older (January 2000) GCHQ puzzle can be found here.]
We first write a code table for the 5-bit binary code A=1, B=2, etc.:
chr dec hex binary inv binary ------------------------------------ A 1 01 00001 11110 B 2 02 00010 11101 C 3 03 00011 11100 D 4 04 00100 11011 E 5 05 00101 11010 F 6 06 00110 11001 G 7 07 00111 11000 H 8 08 01000 10111 I 9 09 01001 10110 J 10 0a 01010 10101 K 11 0b 01011 10100 L 12 0c 01100 10011 M 13 0d 01101 10010 N 14 0e 01110 10001 O 15 0f 01111 10000 P 16 10 10000 01111 Q 17 11 10001 01110 R 18 12 10010 01101 S 19 13 10011 01100 T 20 14 10100 01011 U 21 15 10101 01010 V 22 16 10110 01001 W 23 17 10111 01000 X 24 18 11000 00111 Y 25 19 11001 00110 Z 26 1a 11010 00101
http://www.gchq.gov.uk/careers/mathematicianindex.html contains a sequence of dots and commas, which encodes three letters:
0 = . 1 = , 00110 f 10101 u 01110 n -> FUN
http://www.gchq.gov.uk/benefits/benefitsindex.html contains normal and italic characters in headlines, which encodes nine letters:
0 = normal in heading 1 = italic in heading 10010 r 00101 e 10111 w 00001 a 10010 r 00100 d 01001 i 01110 n 00111 g -> REWARDING
http://www.gchq.gov.uk/careers/linguistindex.html contains in the last line a mixture of the Latin and Cyrillic alphabets, which encodes ten letters:
0 = Latin character 1 = Cyrillic character 10111 w 01111 o 10010 r 10100 t 01000 h 10111 w 01000 h 01001 i 01100 l 00101 e -> WORTHWHILE
http://www.gchq.gov.uk/nap/index.html contains normal and bold characters, which encode eleven letters:
0 = normal 1 = bold 00011 c 01000 h 00001 a 01100 l 01100 l 00101 e 01110 n 00111 g 01001 i 01110 n 00111 g -> CHALLENGING
http://www.gchq.gov.uk/about/cheltinfoindex.html contains lowercase and uppercase underlined characters, which encode fourteen letters:
0 = underlined lowercase 1 = underlined uppercase 00001 a 00111 g 10010 r 00101 e 00001 a 10100 t 01100 l 01111 o 00011 c 00001 a 10100 t 01001 i 01111 o 01110 n -> A GREAT LOCATION
The minus/underscore pattern on http://www.gchq.gov.uk/challenge.html matches the lengths of the five plaintext messages from the Bacon cipher in length:
--_ / __--__-_- / _-_---_--_ / ----_---___ / _-__--_--__--- FUN REWARDING WORTHWHILE CHALLENGING AGREATLOCATION
We transform the minus/underscore pattern into a bit sequence (underscore = 0, minus = 1):
--_ / __--__-_- / _-_---_--_ / ----_---___ / _-__--_--__--- 110 001100101 0101110110 11110111000 01001101100111
We transform the Bacon plaintext into a bit sequence (vowel = 0, consonant = 1):
FUN REWARDING WORTHWHILE CHALLENGING AGREATLOCATION 101 101011011 1011111010 11011011011 01100110101001
Now we add both sequences without carry (this is also known as "not equal", "exclusive OR", "XOR", or even "GF(2) polynomial addition", where 1+1=0):
110 001100101 0101110110 11110111000 01001101100111 101 101011011 1011111010 11011011011 01100110101001 ----------------------------------------------------------- 011 100111110 1110001100 00101100011 00101011001110
We read the result again as a 5-bit code of the Latin alphabet and discard the remaining two bits:
01110 n 01111 o 10111 w 00011 c 00001 a 01100 l 01100 l 10101 u 10011 s 10 -> NOW CALL US
Markus Kuhn
created 2000-11-30 --
last modified 2000-12-01 --
http://www.cl.cam.ac.uk/~mgk25/gchq-challenge.html