All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > General > Cryptography
covert western union (Posted on 2006-02-07) Difficulty: 4 of 5
The following 2-phrase, 10-word message was encrypted by converting each word in the original text from base 36 to base 10 (treating each letter as a number).

Next, the resulting numbers were concatenated to form one very long number:

3188696725382955872716533682296997335...
5701338323073559429444643676946239584...
715731974947334325407967846302738783

1) Identify where to place word breaks and decipher the message. (Easy)
2) Determine what each word in the message has in common. (Harder)

See The Solution Submitted by Mindrod    
Rating: 4.6667 (3 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Hints/Tips The easy part--partial spoiler | Comment 2 of 5 |

The following program is limited by QuickBasic to numbers of 15 or fewer decimal digits:

DECLARE FUNCTION isWord# (w$)
DATA 31886967253829558727165336822969973355701338323073559429444643676946239584715731974947334325407967846302738783
DEFDBL A-Z
READ x$
CLS
DO
  max = 15
  IF LEN(x$) < max THEN max = LEN(x$)
  FOR i = 1 TO max
    s$ = LEFT$(x$, i)
    n = VAL(s$)
    IF n = 0 THEN
     w$ = "0"
    ELSE
      w$ = ""
      DO
        q = INT(n / 36)
        r = n - q * 36
        n = q
        IF n > 0 OR r > 0 THEN
          w$ = MID$("0123456789abcdefghijklmnopqrstuvwxyz", r + 1, 1) + w$
        END IF
      LOOP UNTIL n = 0
     END IF
    IF LEN(w$) > 2 THEN
     IF isWord(w$) THEN EXIT FOR
    END IF
  NEXT
  IF isWord(w$) THEN
   IF flag THEN PRINT : PRINT : flag = 0
   PRINT w$, "   "; s$
   x$ = MID$(x$, i + 1)
  ELSE
   IF flag = 0 THEN PRINT
   COLOR 14: PRINT LEFT$(x$, 1); : COLOR 7
   flag = 1
   x$ = MID$(x$, 2)
  END IF
LOOP UNTIL LEN(x$) = 0
END

FUNCTION isWord (w$)
 n = LEN(w$)
 w1$ = SPACE$(n)
 OPEN "\words\words" + LTRIM$(STR$(n)) + ".txt" FOR BINARY AS #2
 l = LOF(2) / n
 low = 1: high = l
 DO
  mid = INT((low + high) / 2)
  GET #2, (mid - 1) * n + 1, w1$
  IF w1$ = w$ THEN isWord = 1: CLOSE 2: EXIT FUNCTION
  IF w1$ < w$ THEN low = mid + 1:  ELSE high = mid - 1
 LOOP UNTIL low > high
 isWord = 0
 CLOSE 2
END FUNCTION

It finds:

encoded          31886967253
telegraph        82955872716533
68229699733557013383
alleged          23073559429
44464367694623
funded           958471573
brash            19749473
frogman          34325407967
assassin         846302738783

The first undecrypted string is too long to fit into a double floating point variable, the second is, it turns out, not in the word list.

UBASIC handles larger numbers, but not binary files (for the words), but can show the possibilities:

   10   N1=68229699733557013383
   11   for L=1 to len(cutspc(str(N1)))
   12   N=val(left(cutspc(str(N1)),L))
   15   S$=""
   20   while N>0
   30     R=N@36
   40     Q=N\36
   45     New$=mid("0123456789abcdefghijklmnopqrstuvwxyz",R+1,1)
   50     S$=New$+S$
   60     N=Q
   99   wend
  100   print S$,left(cutspc(str(N1)),L)
  110   next L

which finds

6       6
1w      68
iy      682
59i     6822
1gn9    68229
emgo    682296
428mx   6822969
14medf  68229699
ba7zqd  682296997
34u7xbp 6822969973
vce7991 68229699733
8pfy0kif        682296997335
2f2fg5p4b       6822969973355
o6oahkz79       68229699733557
6puqwvts0i      682296997335570
1v6jh4u9s51     6822969973355701
intercepted     68229699733557013
56m63lg365zp    682296997335570133
1fu5ozygvpnx6   6822969973355701338
eedkxzkot4n7r   68229699733557013383

which means intercepted is a word in the plaintext, but still leaving 383, which could be an.

and similarly,

4       4
18      44
cc      444
3fi     4446
yb4     44464
9j37    444643
2naw4   4446436
qh0xb   44464367
7cq998  444643676
21jakkh 4446436769
kfcxpou 44464367694
5o9ld4wi        444643676946
1kqnxnd12       4446436769462
frenchman       44464367694623

indicates frenchman is a word in plaintext, not in my word list.

That resolves to: encoded telegraph intercepted an alleged frenchman funded brash frogman assassin.


  Posted by Charlie on 2006-02-07 11:01:33
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (6)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2017 by Animus Pactum Consulting. All rights reserved. Privacy Information