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

Home > General > Cryptography
Halfway Split (Posted on 2010-03-26) Difficulty: 5 of 5
Agent "La Guillotine", known to her colleagues as the "Bye-Bye Girl", wrote her codes in much the same way as her victims met their demise.

Her favourite quip was: "I like the finale of my jobs gift wrapped in nothing, even the petite!"

From her superior came this message:

4 D E 4 U d U % t D D □ $ t U E U @

Translated to ascii that reads:

52, 68, 244, 228, 245, 69, 52, 85, 100, 85, 37, 116,
149, 68, 133, 68, 21, 36, 116, 85, 69, 148, 85, 67

With the potential of another victim what was she advised?

The Ascii 21 which is a 'control' character does not show and has been represented by a small square, unicode 25A1.

See The Solution Submitted by brianjn    
No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution solution | Comment 1 of 2

In keeping with the title halfway split, if we divide each byte (an 8-bit binary number) into two halves (nybbles of 4 bits) and place the second nybble of each byte with the first nybble of the next one, we get an alphabetic character in each instance.

In hex, the values are:

34 44 F4 E4 F5 45 34 55 64 55 25 74 95 44 85 44 15 24 74 55 45 94 55 43

Combining them as stated yields 44,4F,4E,4F,54, etc. :

44 4F 4E 4F 54 53 45 56 45 52 57 49 54 48 54 41 52 47 45 54 59 45 54

As alphabetic characters these are:

DONOTSEVERWITHTARGETYET

or, inserting spaces:

DO NOT SEVER WITH TARGET YET

DATA 52, 68, 244, 228, 245, 69, 52, 85, 100, 85, 37, 116
DATA 149, 68, 133, 68, 21, 36, 116, 85, 69, 148, 85, 67

DIM cyp(24), c$(24)


CLS
FOR i = 1 TO 24
 READ cyp(i): PRINT HEX$(cyp(i)); " ";
 c$(i) = HEX$(cyp(i))
NEXT
PRINT

FOR i = 2 TO 24
  vl$ = RIGHT$(c$(i - 1), 1)
  vl$ = vl$ + LEFT$(c$(i), 1)
  PRINT vl$; " ";
NEXT
PRINT

FOR i = 2 TO 24
  v = 16 * (INSTR("0123456789ABCDEF", RIGHT$(c$(i - 1), 1)) - 1)
  v = v + INSTR("0123456789ABCDEF", LEFT$(c$(i), 1)) - 1
  ch$ = CHR$(v)
  PRINT ch$;
  m$ = m$ + ch$
NEXT
PRINT

FOR offset = 1 TO 25
 FOR i = 1 TO 23
   v = ASC(MID$(m$, i, 1)) + offset: IF v > ASC("Z") THEN v = v - 26
   PRINT CHR$(v);
 NEXT
 PRINT
NEXT

The last group of lines was included in case a Caesar cypher was added to the byte-splitting, but in fact it was not. Initially there was a bug in the code that prevented recognition of the plaintext and I thought the Caesar variation might help.

 


  Posted by Charlie on 2010-03-26 13:21:23
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 (4)
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