Invisible ASCII: A Poor Person's Steganography

by Strawberry Akhenaten

I'm not a computer expert.

I'm not even a programmer.  The most I can do is debug and compile Pascal.  I like to play with codes and ciphers, especially the classic pen-and-paper ciphers.

I also like to use retro computers.  Sometimes I create ASCII art in MS-DOS.

This article is a report of a discovery I made while making a "palette" for ASCII art and to describe the encryption I created as a result.

I call my ciphers "DEC-160" and "Pseudo-Unary."

Background Information: ASCII

As you already know, computers can work with letters, numbers and other symbols.

PCs in particular can type everything a typewriter can, and more, because of American Standard Code for International Interchange (ASCII).

This is like an "alphabet" for the PC.  ASCII also makes it possible to type symbols that are not on the keyboard, such as programming symbols and foreign characters.

This is done with the key press: Alt + <number>

The ASCII Character Code Chart is not hard to find.  It can be found in many computer manuals or on the Internet.  I myself use this chart to type in foreign languages, because it will let me use accent marks without having to learn different keyboard layouts.

Typically, the ASCII Code Chart shows three things: IBM characters, DEC code, and HEX code.

My "stupid keyboard trick" is done with DEC code.  (Note: This trick doesn't work very well with laptops.  It should be done on a desktop.  I suspect this is because of the fact that a desktop's keyboard is an external device.  Perhaps, Alt + <number> will work on a laptop with an attached keyboard or keypad.  I'm not sure.)

This is where it gets weird: when I made ASCII art using the Alt + <number> technique, I noticed discrepancies when I looked at my MS-DOS work in Windows.

This was not true with the keyboard characters, but it did happen with other characters.  In one case - just one - a character that was visible to me in DOS (as an á) did not appear in a Windows word processor: Alt + 160

I doubt that I'm the first to notice this, but I have never heard of anyone exploiting it for cryptography.  An invisible symbol, even one invisible symbol, can create an invisible message.  In cryptography, this is called steganography.  The word steganography refers to two things:

  1. Traditionally, a message hidden in an image such as a drawing or photograph.
  2. In computers, hiding a file within another file.

I used the program FIGlet to create the following image:

 #####    ###   ######  #     # ####### ######  ####### ####### #     # #######
#     #    #    #     # #     # #       #     #    #    #        #   #     #
#          #    #     # #     # #       #     #    #    #         # #      #
#          #    ######  ####### #####   ######     #    #####      #       #
#          #    #       #     # #       #   #      #    #         # #      #
#     #    #    #       #     # #       #    #     #    #        #   #     #
 #####    ###   #       #     # ####### #     #    #    ####### #     #    #

This is what happened when I tweaked FIGlet to replace # with Alt + 160 (doing this in MS-DOS, of course):

                                                                                
                                                                      
                                                                       



What happened here is that I created an ASCII image that's invisible in Windows, but perfectly visible in MS-DOS.  (Note to Self: Be sure to send my modification to the FIGlet people.)

Pseudo-Unary

This discovery gave me a challenge.

How am I supposed to create invisible text while having only one character at my disposal?  Even something as "minimal" as binary code requires TWO characters.

I had a eureka moment when I was going through my notes in a book on programming in Pascal and saw the word "unary."  I immediately understood that, in the end, binary is nothing more than unary code with an indicator for the OFF position.

Based on my knowledge that all IBM characters (on and off the keyboard) have equivalents in DEC code, I knew that I only needed to create symbols for the ten numbers and to correspond text with DEC.

I didn't want to use conventional binary code, because I wanted to abbreviate the typing.  Considering the ON/OFF nature of binary, I knew that I only had to use a maximum of 5-digits for my notation.  I also used blank spaces to substitute for the binary 0.

Therefore:

0
1 á
2 áá
3 ááá
4 áááá
5 ááááá
6     á
7    áá
8   ááá 
9  áááá

In the following section, I'm only using commas as place markers to keep track of the number of digits I'm using.  (Try to imagine this without commas or the DEC code.)

I can encrypt the word GROMIT:

   DEC    DEC-160
G  071     ,     ,   ,   áá,   ,á    ,
R  082     ,     ,   ,  ááá,   ,áá   ,
O  079     ,     ,   ,   áá,   , áááá,
M  077     ,     ,   ,   áá,   ,   áá,
I  073     ,     ,   ,   áá,   ,ááá  ,
T  084     ,     ,   ,  ááá,   ,áááá ,

This may look clunky, but it's a lot more concise than binary.

If I went so far as to type this without my place markers, it would look like a completely blank text file in Windows.

If I did this with eight digits, I could create a HEX code notation too.

With some simple programming, it would be possible to create an interpreter that would work faster than pen-and-paper.

Level of Security

In a word: NONE!

Even if you ignore the fact that this can be read by the simple act of opening the text file in MS-DOS, the ciphers "DEC-160" and "Pseudo-Unary" were created with pen and paper.

They can be broken in the same way.  This knowledge is more useful in ASCII art than in real cryptography.

Truth be told, I would classify my ciphers between ROT-13 and Vigenère as far as cryptographic strength is concerned.

If I were to use it, I would use it in conjunction with other encryption.  By itself, I don't expect this secret writing to be secure, but it can conceivably be used to "hide" other types of encryption and make them invisible in certain circumstances.

I remind you, I wrote this article in MS-DOS.  This is not high technology.

Return to $2600 Index