Stick Cipher

When a letter is more than a letter.

A stick cipher is a Homophonic substitution cipher that counts the sticks and curves in any letter making it hard to distinguish if the cipher is actually related to the complete symbol (the letter) or its sub-components (the stems, bowls, crossbars and spines of a letter).

You could use a stick cipher with any symbol or drawing as long as a number of lines per symbol are convened by the encoder and the decoder.

Tool, Rules and Method

Of course counting the lines of a letter is just one way to do it, the main idea is to associate a number with a symbol that then composes the ciphertext, the fact that we are counting sticks just makes the key easy to remember.

Stick cipher tool

The letter A's stick value is 3.


The number of "sticks" in a character or drawing may vary, so its important that the following rules are applied:

  1. The character set to be used for encoding has been previously established and every character in the set has a numeric value. This is called the stick value.
  2. The character set to be used for decoding is known and each letter of the decoding set has a numeric value.
  3. At least one space value has been established.

Note that the encoding set and the decoding set do not have to be in the same order or even contain the same characters. Usually the encoding and decoding set is a a 26 letter alphabet. And the stick count of each letter can be easily guessed by using a sans-serif font.

To make your cipher harder to crack add lots of space characters and use an inverted frequency alphabet as your decoding set, that way the encoding will have nice long letter sequences making frequency analysis harder.


To encode:

  1. Choose a letter at random from your encoding alphabet and get its stick value.
  2. Then choose another letter at random and add its value to your previous letter.
  3. Repeat step 1 and 2 until you reach the exact value of the position of the desired decoding alphabet letter.
  4. To signal the end of a letter use a space character. To end a word use two space characters.

To decode:

  1. Count the stick value of each character in the cipher until you hit a null value (see step 4 above).
  2. Add the number you counted and cash it in for a the letter of the decoding set of that corresponding number.
  3. Repeat the last two steps until you have decoded the message.


Here is a simple example of a stick cipher.

  • Cleartext:

    Since were counting sticks no serif fonts are used (thats what sans-serif means) and letters must all be capitalized.

  • Numbered alphabetically:

    Using a 26 letter alphabet, replace the original letter for its alphabet number equivalent.

    E=5, N=14, T=20, R=18, E=5, M=13, A=1, S=19, L=12, E=5, J=10, O=15, S=19, M=13, E=5, V=22, A=1, Y=25, A=1, M=13, A=1, S=19, M=13, E=5, A=1, C=3, U=21, E=5, R=18, D=4, O=15, Y=25, O=15, D=4, E=5, T=20, I=9
  • Here are the 4 different groups for an A to Z alphabet in Helvetica ordered by the number of sticks per letter.

    • 1 Stick

    • 2 Sticks

    • 3 Sticks

    • 4 Sticks


    Please note that the "I" in Arial and Helvetica is different from "I" in Currier New. And that the "J" in Helvetica and the "J" in Currier New are also different.

    Using numbers from 0 to 9 as spaces and word breaks you can create many different ciphers that all decode to the same clear text.

  • Posible Ciphertext:

    Here is our cipher text:


    Of course any number of cipher texts are possible (it really depends on the character sets you use).