Geocaching MysteryToolbox Cipher Descriptions

Alphabets (including symbols)

ASCII Code

The ASCII code is used by computer to store alphabets and information. Some important numbers are A=65, B=66 up to Z = 90, a-z is 97 to 122, 0-9 is 48 to 57. Space is 32. Numbers are either represented in Base 10 (Decimal), Base 16 (Hexadecimal), Base 8 (Octal) or Base 2 (Binary)


Input formats for text and keys

ASCII values to Text the following characters are allowed in the text - 0123456789
Text to ASCII values the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


Links to other implementations or information

Wikipedia ASCII

Morse Code

Morse Code is named after Samuel Finley Breese Morse although it is possible that it was actually his colleague Alfred Vail that invented the code we use today. Morse and Vail (with others) invented systems for electrical telegraph systems and Morse invented a code set comprising of just numbers to send coded words to be looked up in a code book. Vail expended the code to include letters. The codes are not random. The most common letters, E,T,A,I,N,O,S have the shortest or easiest code = . / - / .- / .. / -. / --- / ... and the less common the longest.Morse code should be entered as . & -
.- A -... B -.-. C -.-- Y --.. Z. Select the letter and word spacings from the drop down lists as these can vary.


Input formats for text and keys

Decrypt the following characters are allowed in the text - .-01/
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?-=:;()/$'_Æ!+~#&/ÆØÅ

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Rumkin Morse 'cipher'

ITA2 (Baudot)

The ITA2 (International Telegraph Alphabet #2) or Baudot code is an old telegraph code sent by machine. The code was invented by Émile Baudot, a french telegraph engineer, in about 1870. Baudot is a binary code and therefore is similar to ASCII. It can code 31 different characters but by including a code for switching letters to numbers and punctuation it codes more than this. Baudot should be entered as continuous binary digits. If not then use word space selection - Space.


Input formats for text and keys

Decrypt the following characters are allowed in the text - 01
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-'!&(),.

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

GoldBug

The GoldBug cipher included in a short story by Edgar Allan Poe published in 1843 called The Gold-Bug. It tells the tail of William Legrand and how he was bitten by a gold-colored bug. The story includes the cipher and a description of how to solve simple substitution ciphers.The GoldBug alphabet is as folows:

52-†81346,709*‡.$();?¶]¢:[
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Input formats for text and keys

Decrypt the following characters are allowed in the text - 52-†81346,709*‡.$();?¶]¢:[
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Wikipedia: Gold-Bug short story by Edgar Allan Poe.

Talletic

The Talletic code is simply the conversion from Letter to Numbers and vica versa. A=1 B=2 .... Y=25 Z = 26. The code name Talletic is not an official name but just that which my daughter used when playing with codes.


Input formats for text and keys

Decrypt the following characters are allowed in the text - 0123456789-/
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Rumkin Number 'cipher'

Baconian

Invented by Sir Francis Bacon for hiding messages in plain sight. It uses just two characters A and B and therefore
can for example be used by changing a font type according to the code. ABC is AAAAA AAAAB AAABA. The undescored text above is, for example, coded by using bold and non-bold


Input formats for text and keys

Decrypt the following characters are allowed in the text - AB,/-
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Baconian cipher
Rumkin Baconian Cipher
Geocaching Toolbox Baconian cipher

Kennyspeak

Kenny Speak is a psudo-language representing the muffled voice of Kenny McCormick from the adult series South Park. In the context of Geocaching it is a code as each letter of the alphabet is replaced by a group og 3 letters in a combination of M, F & P.


Input formats for text and keys

Decrypt the following characters are allowed in the text - MPFmpf
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.

Links to other implementations or information

Geocaching Toolbox Kenny Code

Telephone Keys

Each key on a modern telephone has several letters associated with it for creating so called vanity numbers. These can be used to create codes for Geocaching.


Input formats for text and keys

Decrypt the following characters are allowed in the text - 52-†81346,709*‡.$();?¶]¢:[
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Bar Code Numbers

Barcodes are made up of alternating black and white lines. The lines and the spaces (=white lines) have 4 possible different thicknesses. These are simply numbered 1, 2 , 3 and 4 and each bar code number is made up of 4 digits. The sum of the 4 digits is always 7. So if you see a number sequence made up of a lenge of digits 1,2,3,4 which is a multiple of 4 digits long then it maybe barcode numbers.

  • 0 = 3211
  • 1 = 2221
  • 2 = 2122
  • 3 = 1411
  • 4 = 1132
  • 5 = 1231
  • 6 = 1114
  • 7 = 1312
  • 8 = 1213
  • 9 = 3112

Input formats for text and keys

Decrypt the following characters are allowed in the text - 01234
Encrypt the following characters are allowed in the text - 0123456789

For this cipher words and letters are separated by special characters. For words these can be 'Nothing', 'Space', ' / ', and for letters can be 'Nothing', 'Space', '-', ',', . If the letters and words arn't separated by one of these then you need to change the text for it to work.

Links to other implementations or information

Monoalphabetic Substitution

Simple Substitution

A Simple Substitution cipher is where one letter of the alphabet is replaced with another but not in any special sequence. These are also known as cryptoquips or patristocrats.
To encrypt a text find the letter in the lower alphabet and read the cipher letter from the key alphabet. To decrypt do the reverse, find the letter in the key alphabet and read of the letter from the lower alphabet.
A great tool for solving such substitutions is (WinDeCrypto)


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Cipher text alphabet should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ


Links to other implementations or information

Practical Cryptography simple substitution cipher
Rumkin substitution cipher
Geocaching Toolbox substitution cipher
Cryptool-online Monoalphabetic Substitution

Cryptogram (Aristocrat)

Simple Substitution is where one letter of the alphabet is replaced with another but not in any special sequence. The most common types of cryptograms are monoalphabetic substitution ciphers, called Aristocrats if they contains spaces or Patristocrats if they don't. Another common name is cryptoquip.
To encrypt a text find the letter in the lower alphabet and read the cipher letter from the key alphabet. To decrypt do the reverse, find the letter in the key alphabet and read of the letter from the lower alphabet.
A great tool for solving such substitutions is (WinDeCrypto)


Input formats for text and keys

Cipher text should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ-
Plain text should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography simple substitution cipher
Rumkin substitution cipher
Geocaching Toolbox substitution cipher
Bionsgadgets: Solve an Aristocrat or Patristocrat (or let Web Workers do it)

ROTx (Caesar Cipher)

ROT is one of the oldest types of cipher. The ROT cipher simply replaces the plain text letter with a letter somewhere else in the same alphabet.
ROT3, also known as the Caesar Cipher after Julius Caeser, replaces the letter with the one three to the left.
ROT13 replaces it with one 13 places along.As the alphabet is 26 characters long ROT13 is a so called reversible cipher. The re-encrypting the encrypted text gives the plain text again. ROT13 is the cipher used for Geocache hints.
ROT 1 to 26 will create a list of all the solutions from ROT1 to ROT26.
ROTxx allows you to choose the value to rotate with.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz


Links to other implementations or information

Practical Cryptography caeser cipher (ROT3)
Rumkin caeser cipher
Practical Cryptography ROT13 cipher
Rumkin ROT13 cipher
Rumkin keyed caeser cipher (ROT3)
Geocaching Toolbox caeser cipher (ROT3)
Cryptool-online Caesar Cipher / Rot-13

ROT ASCII

ROT is one of the oldest types of cipher. The ROT cipher simply replaces the plain text letter with a letter somewhere else in the same alphabet. Most ROT ciphers wrap around after the 26 letter alphabet but there are some cipher texts where the same principle is used but it wraps below character 32 and above character 127, i.e. all the printable ASCII characters. This type of ROT allows all printable ASCII characters as input whereas ROT 3, 13 etc. accept only the letters A to Z.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


Links to other implementations or information

ROT47

ROT47 is an extended version of the Caesar Cipher. ROT is one of the oldest types of cipher. The ROT cipher simply replaces the plain text letter with a letter somewhere else in the same alphabet. ROT 1 to 25 uses a plain A to Z alphabet, however, ROT47 replaces one character with another as before but uses an alphabet with 94 characters in it. It uses character within the ASCII range [33, 126] with the character 47 character after it (rotation) in the ASCII table. It is an reversible or invertible algorithm i.e. applying the same algorithm to the input twice will get the origin text. The alphabet of 94 characters is :-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~


Input formats for text and keys

Decrypt the following characters are allowed in the text - !"#$%&()*+,-./0123456789:;<=>? ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'abcdefghijklmnopqrstuvwxyz{|}~
Encrypt the following characters are allowed in the text - !"#$%&()*+,-./0123456789:;<=>? ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'abcdefghijklmnopqrstuvwxyz{|}~


Links to other implementations or information

Practical Cryptography caeser cipher (ROT3)
Rumkin caeser cipher
Practical Cryptography ROT13 cipher
Rumkin ROT13 cipher
Rumkin keyed caeser cipher (ROT3)
Geocaching Toolbox caeser cipher (ROT3)

Atbash

The Atbash cipher is a very common, simple mono-substitution cipher. It was used with the Hebrew alphabet, but modified to work with the English alphabet. The name derives from the first, last, second, and second to last Hebrew letters (Aleph–Taw–Bet–Shin). Basically, when encoded, an 'A' encodes to 'Z', 'B' encodes to 'Y', etc.

. The conversion alphabet is therefore:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
ZYXWVUTSRQPONMLKJIHGFEDCBA

Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz


Links to other implementations or information

Practical Cryptography Atbash cipher
Rumkin Atbash cipher
Geocaching Toolbox Atbash cipher

Affine

The Affine cipher is a monoalphabetic substitution cipher wherein each letter in an alphabet is mapped to its numeric equivalent, encrypted using a simple mathematical function, and converted back to a letter. The formula used means that each letter encrypts to one other letter, and back again, meaning the cipher is essentially a standard substitution cipher with a rule governing which letter goes to which. It is the same as a standard Caesarian shift when 'a' is 1.
Mathematically, it is represented as e(x) = (ax + b) mod m. Decryption is a slightly different formula, d(x) = a-1(x - b) mod m.
To encode something, you need to pick the 'a' and it must be coprime with the length of the alphabet.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
a,b should contain only 0123456789,

The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Affine cipher
Rumkin Affine cipher
Geocaching Toolbox Affine cipher

Code based on http://jinsungy.blogspot.no/2009/05/following-code-written-in-c-encrypts.html

Vatsyayana (Kama Sutra)

The Vatsyayana Cipher is named after an Indian philosopher Vātsyāyana whose interest in human sexual behavior as a medium of attaining spirituality was documented in the well known Kama Sutra. This cipher is sometimes referred to as the Kama Sutra cipher since that is where its first description appears. Dating to the 4th century BC it was used to teach women how to hide secret messages from prying eyes! It is a substitution cipher where the cipher alphabet is constructed by pairing letters together and subtituting each one with its pair when enciphering.Since this cipher is monoalphabetic, we can treat it as a subset of arbitrary letter substitution ciphers with 2 rules about the construction of the cipher alphabet,

  • RULE 1: The cipher letter cannot be the same as its plain equivalent.
  • RULE 2: The cipher letter and plain letter form a pair.If the letters 'A' & 'D' are paired, then 'D' is always substituted for 'A' and 'A' is always substituted for 'D'.
This cipher is its own inverse, re-encrypting cipher text restores the plain text. As such the two keys are inverses of each other and therefore only need to contain 13 letters.

Input formats for text and keys

Decrypt / Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key 2 should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

GeocachingToolbox Kamasutra cipher (Vatsyayana cipher)
Cryptool-Online Kamasutra cipher

Dvorak keyboard code

The Dvorak 'code' is really an alternativ layout for the standard computer keybaord. As the keys are in different places the letters can be mapped like a code. As there are different keyboard country specific layouts both for normal and Dvorak keyboards the substituions are a bit hit and miss.
Dvorak was created in 1930 and patented in 1936 by Dr. August Dvorak. It proponents claim this layout uses less finger motion, reduces errors and increases typing rate compared to Qwerty. 31 characters are different from Qwerty.
Technically this is neither a code or a cipher, however, it works as a monoalphabetic substitution cipher.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!£$[]{}"#¤%&§/()=?\´`~^¨'*_-:.;,<>¬
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!£$[]{}"#¤%&§/()=?\´`~^¨'*_-:.;,<>¬


Links to other implementations or information

Wikipedia: Dvorak keyboard layout.
A random site offering Dvorak coding!

Transposition ciphers

Columner Transposition

Despite being a well used cipher in itself and the basis for more complex ciphers such as ADFG(V)X and Double Transpoition there is no apparant record of by whom and when it was invented.
This is a simple but very effective cipher. The letters in the text are written in rows and divided into the same number of columns as the number of letters in the key. After being written out in rows the columns are reorganised such that the letters in the key are in alphabetical order. The columns are then read vertically and the cipher text split into groups of 5 letters.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.

Links to other implementations or information

Practical Cryptography columnar transposition cipher
Rumkin transposition cipher

Double Columner Transposition

Double Columnar Transformation takes the result of a single Columnar Transposition and does another with a new key. This was the type of cipher used by the European resistance groups in World War II as it could be performed by hand.
The letters used for the transformation keys were often selected from a poem or other well known text. A good book describing how this was used is Between Silk and Cyanide: A Codemaker's War, 1941-1945 by Leo Marks.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key 2 should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Rumkin double columnar transposition cipher

Railfence

The railfence cipher is a simple transposition cipher. The letters in the plain text are rearranged by writing the text in a zig-zag form and then reading the cipher text off horizontally along the rows or rails. There is no apparant origin for this cipher. Cryptographic strength is very low.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Number of rails should contain only 0123456789
Offset (a 0 (zero) offset is no offset) should contain only 0123456789

The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Rail Fence cipher
Rumkin Rail Fence cipher
Geocaching Toolbox Rail Fence cipher
Cryptool-online Zigzag cipher (Rail Fence Cipher)

Redefence

The redefence cipher is a variation of the railfence transposition cipher. The letters in the plain text are rearranged by writing the text in a zig-zag form and then reading the cipher text off horizontally along the rows or rails. The order the rows are read is according to the key as with columnar transposition ciphers. There is no apparant origin for this cipher. Cryptographic strength is low.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Offset (a 0 (zero) offset is no offset) should contain only 0123456789

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Cryptool-online Redefence cipher

Skytail (Skip)

Skip or sometimes called SkyTail, more correctly Scytail meaning baton in ancient greek, is a simple transposition cipher where one just skips a given number of letters through the text. The original method of use was to write a text on a narrow strip of partchment and wrap it around the scytail then reading the cipher text off along the baton. It is believed to have first been use in ca 700 BCE.
The skip value cannot be a factor of the length of the text to be encoded or decoded otherwise all the letters will not be encoded.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Skip value should contain only 0123456789


Links to other implementations or information

Rumkin Skip cipher
Cryptool-online Scytale Cipher

Patterson/Jefferson

The Jefferson - Patterson Cipher is highly effective transposition cipher. Thomas Jefferson, founding father and 3rd president of the USA, was interested in cryptography as was his friend Robert Patterson from the American Philosophical SocietyPatterson told Jefferson of his idea in a letter of 19 December 1801 and Jefferson subsequently encrypted a letter that took 200 years to decrypt.

The cipher works by writing the text vertically, in columns from left to right, using no capital letters or spaces. A random number of letters is then added to each line. The lines are then transposed. A key is then created consisting of the original line number and the number of random letters.Patterson estimated that the potential combinations to solve the puzzle was 'upwards of ninety millions of millions'.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key should contain only 0123456789,

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Founders Online: To Thomas Jefferson from Robert Patterson, 19 December 1801

Chaocipher

Chaocipher is a method of encryption invented by John F. Byrne in 1918, who tried unsuccessfully to interest the US Signal Corp and Navy in his system. In 1954, Byrne presented Chaocipher-encrypted messages as a challenge in his autobiography “Silent Years”. Although numerous students of cryptanalysis attempted to solve the challenge messages over the years, none succeeded. Chaocipher has been a closely guarded secret known only to a handful of persons. Following fruitful negotiations with the Byrne family during the period 2009-2010, the Chaocipher papers and materials have been donated to the National Cryptologic Museum in Ft. Meade, MD.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Left should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
Right should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Chaocipher revealed: the algorithm. Moshe Rubin (2010)
Implementing the Chaocipher in C#. By Vulpes on Nov 16, 2011

Licence and code accreditation information
Chaocipher: Copyright (C) 2010 Joel Martin. Licence LGPL-3

Polyalphabetic Substitution

Vigenere

Vigenere is a polyalphabetic substitution where each letter can be substituted with a different letter. The substitution sequence is determined by a key. Each letter of the text is ROTatated by the value of the key letter A=0, B=1 ... Z=25.
There are several variations on the basic Vigenere cipher. These include, but are not limited to
Autokey Vigenere where the key is only used once and the the letters of the plain text are added to the key.
The Porta cipher uses half of the alphabet for the key lines therefore having AB, CD, EF sharing and the cipher letter id either from the first half or second half of the alphabet line.
The Gronsfeldt cipher is the same as the Vigenere cipher but the key is numbers and therefore only 0 to 9 are allowed.
The Beaufort cipher has the same 'tableau' as the normal Vigenere but each line is reversed.
Finally here, there are a set of ciphers names Quagmire I, II, III & IV. In this toolbox Quagmire III is available. For this two keys are used. One to key the columns and rows and the other as the key to ROTatate the letters. Many of these ciphers have alternative ways to show the 'tableau' but all of them can create a 26x26 tableau and use the same enctyption and decryption mechanism. Below is an image of how it works.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Vignère / Gronsfeld normal and autokey ciphers
Rumkin Vigènere cipher
Geocaching Toolbox Vigènere cipher
Rumkin one-time-pad cipher
Geocaching Toolbox one-time-pad cipher
Cryptool-online Vigenère Cipher

Autokey Vigenere

Blaise de Vigenere didn't actually invent the Vigenere Cipher, that was invented by Giovan Battista Bellaso. However, Vigenere improved it and developed the Autokey Vigenere. It is almost the same as the normal Vigenere but the key is used only once. When the key has been used the letters from the plain text are used as the key to encrypt the rest of the text. This makes it much more difficult to decrypt.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography autokey Vignere cipher
Rumkin autokey Vignere cipher
Cryptool-online Autokey Vigenère Cipher

Keyed Vigenere (Quagmire IV)

The Keyed Vigenere Cipher is one of 4 ciphers called the Quaqmire Ciphers. Each of the 4 are basically Vigenere ciphers but they each use the key or keys differently. The Keyed Vigenere is Quagmire III amd uses the same principles as a noraml Vigenere but both the column and row alphabets are keyed using 2 different keys


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
Key 2 should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Rumkin keyed Vigenere cipher (Quagmire III)
ACA description of Quagmire 3 cipher

Beaufort

The cipher was developed by the Briton Sir Francis Beaufort (1774 - 1857). He is also known for his development of the Beaufort scale, which is used to measure the wind force.
Beaufort is similar to Vigenere but uses a different coding table. Beaufort is reversible, that means encryption and decryption are the same.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Cryptool-online Beaufort Cipher

Porta

The Porta Cipher is a polyalphabetic substitution cipher invented by Giovanni Battista della Porta. Where the Vigenere cipher is a polyalphabetic cipher with 26 alphabets, the Porta is basically the same except it only uses 13 alphabets. The 13 cipher alphabets it uses are reciprocal, so enciphering is the same as deciphering.
The tableau used here is the same as that used by the American Cryptogram Association and Practical Cryptography with the rows in order of O to Z. There are alternative tableau the most common being Cryptool and dCode with rows in order Z to O.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Porta cipher
Cryptool-online Vigenère Cipher
American Cryptogram Association description of the Porta cipher

Gronsfeld

Gronsfeld is a polyalphabetic substitution where each letter can be substituted with a different letter from the same alphabet. It is believed that the name was given to the cipher by Gaspar Schott (aka, Kaspar Schott or Caspar Schott in German and Gaspar Schottus in Latin) in the early 1600s. He learned about the cipher from the german Count of Gronsfeld (Graf von Gronsfeld).The substitution sequence is determined by a key. The cipher is the same as Vigenere but the key is given as numbers and not letters and is limited to 0 to 9.


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Key should contain only 0123456789

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

Practical Cryptography Vignère / Gronsfeld normal and autokey ciphers
Rumkin Gronsfeld cipher

Alberti

The Alberti Cipher is named after Leon Battista Alberti (1404 – 1472). The Alberti cipher uses a disk made of two parts, The Alberti Cipher Disk also called formula. The disk was described in his treatise De Cifris of 1467. The device embodies the first example of polyalphabetic substitution with mixed alphabets and variable period. The encryption and decryption is quite complex but also very simple. First agree upon a key letter from the small (cipher) alphabet. As on Wikipedia we choose k as the key letter. The person encrypting then chooses a random letter from the outer disk. The inner disk is rotated to have the key letter under this rendomly chosen outer letter. This capital letter is written as the first letter of the cipher. On Wikipedia there is a discrepency between the decription of the cipher and the description of the wheel. On the cipher page k is under B but on the wheel page it is decribed as g under A. Same result but slightly misleading! So to encrypt NORTH, find the N on the outer wheel and read off x from the inner wheel, then O = y, R = m, T = i and H = not there. H cannot be encrypted so it must be dropped. So to the bit that makes it difficult. At any time in the encryption the user can move the inner wheel to a new position thus changing the encryption alphabet. When he does this he writes the new capital letter corresponding to the key letter (=k) into the cipher text.


Input formats for text and keys

Decrypt the following characters are allowed in the text - abcdefghiklmnopqrstuxyz&ABCDEFGILMNOPQRSTVXZ1234
Encrypt the following characters are allowed in the text - ABCDEFGILMNOPQRSTVXZ
Outer disk (Stabilis) should contain only ABCDEFGILMNOPQRSTVXZ1234
Inner disk (Mobilis) should contain only abcdefghiklmnopqrstuxyz&


Links to other implementations or information

Wikipedia decription of the cipher
Wikipedia decription of the cipher disk

Trithemius

Trithemius is a Vigenere polyalphabetic substitution cipher where each letter can be substituted with a different letter. More correctly, Vigenere is a Trithemius cipher with a key! The key of a Trithemius cipher is always ABCDEFGHIJKLMNOPQRSTUVWXYZ. Each letter of the text is ROTatated by the value of the key letter A=0, B=1 ... Z=25.
The Trithemius cipher was published by German author and monk Johannes Trithemius in his book Polygraphia, which is credited with being the first published work on cryptology, published in 1508 (45 years before Giovan Battista Bellaso in his 1553 book La cifra del).


Input formats for text and keys

Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

CrypTools online Trithemius cipher encoder / decoder
Wikipedia on Tabula_recta (Trithemius cipher)
Geocaching Toolbox Vigènere cipher
Rumkin one-time-pad cipher
Geocaching Toolbox one-time-pad cipher
Cryptool-online Vigenère Cipher

Larrabee

The Larrabee cipher is essentially a Vigenere cipher developed in about 1871 by Charles S. Larrabee. Larrabee was worried about the security of existing US military ciphers and therefore set about inventing a more secure one. Whilst writing his 1871 book describing the cipher he discovered that a Mr G. Hogg, of London had also invented a near identical cipher but with the ability to encrypt numbers as well as letters. To cut a long story short, Larrabee added the number encryption to his cipher system (with permission from Hogg) and boldly anounced I claim to be the original discoverer of this system, which I call the 'Key - word System'.

The book is entitled Larrabee's Cipher and Secret Letter and Telegraph Code, with Hogg's Improvements: The Most Perfect Secret Code Ever Invened Or Discovered. Impossible to be Read Without the Key. Invaluable for Secret Military, Navel, and Diplomatic Services, as Well as for Brokers, Bankers, and Merchants.

As the cipher is identical to the Vigenere cipher it was neither new or unbreakable. He must have been a good salesman as the cipher was adopted by the US Navy.


Input formats for text and keys

Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

Links to other implementations or information

A random site with information and images about the Larrabee cipher

One Time Pad (XOR-ITA2)

First described by Frank Miller in 1882, the one-time pad was re-invented in 1917. On July 22, 1919, U.S. Patent 1,310,719 was issued to Gilbert Vernam for the XOR operation used for the encryption of a one-time pad. One Time Pad is the only truely unbreakable ciper! In principle it works by using a truely random never repeating key which is as long as the text to be encrypted. Without the key there is absolutly no way to decipher the text correctly as thousands of guessed keys would result give readable results and any could be correct. In the 1917 Vernam Cipher version a machine was used which consisted of a typewriter construction with paper tape for the key. The tape was 5 holes wide and each line of holes represented an ITA-2 or Baudot Murray letter. The binary equivalents of the ITA-2 letters were XOR-ed by the machine and the 0s and 1s sent by telegraph. These were decoded by an identical machine with the same key tape.
This implementation will encrypt text into the binary and decimal equivalents using XOR ITA-2 values.

Breaking a One Time Pad is possible only if the key is reused to encrypt 2 messages or more, it is then called 2 two-time pad!. Then the fact that Message1 XOR Message2 = CipherText1 XOR CipherText2 can be used. If you have both cipher texts then by guessing part of the message text, a so called crib, will reveal the other message and therefore the key. Here is how

NORTH FIVE NINE
01100 11000 01010 10000 10100 00100 01101
EAST ZERO ONE Z
00001 00011 00101 10000 00100 10001 00001

RANDOM KEY
10111 00011 10001 11101 00101 10011 00001

Key + T1 (C1)
11011 11011 11011 01101 10001 10111 01100
Key + T2 (C2)
10110 00000 10100 01101 00001 00010 00000

C1 + C2 = T1 + T2
01101 11011 01111 00000 10000 10101 01100

NORTH F + (C1+C2)
01100 11000 01010 10000 10100 00100 01101
= EAST ZE
00001 00011 00101 10000 00100 10001 00001

  1. The 2 plain tets are encrypted by XOR-ing the bits of the ITA-2 values of the letters with the same non repeating random key giving 2 cipher texts (C1 & C2).
  2. Cipher texts C1 and C2 are XOR-ed together. This gives the same result as if the two plain texts were XOR-ed because Message1 XOR Message2 = CipherText1 XOR CipherText2
  3. The code breaker guesses that the start of the first text is NORTH and XORs this with the previous step. If the guess is correct, the result will be Plain Text #2 i.e. EAST [space]
  4. If the guess isn't correct then NORTH or another text can be moved along the C1 XOR C2 result and tried in each position. Somewhere the result will reveal readable text.
  5. Finally guessing the possible continuation will either give jibberish or more readable text. Guessing can continue with either text #1 or text #2 until the whole text is deciphered
  6. Remember, the key is non repeating and random so there is no point trying to guess it.

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 01
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-'!&(),.
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-'!&(),.

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Dirk Rijmenants One-time Pad information
    Crypto Museum One-time Pad information
    Crypto Museum Verman Cipher information
    Wikipedia One TimePad

    Running Key

    Running key is not really a cipher but a way of organising the key for other kinds of cipher such as Vigenere, Beaufort, Porta and other polyalphabetic substitution ciphers. The key is created by dividing the text in two and using the second half as the key whereby then Vigenere etc. can be done as normal. Encrypting doesn't need a key as it is created from the text, however, decrypting need the key which will be half of the original text. A bit of a give-away as to whether it is this cipher that is used!


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    Key (only for decrypt): should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    ACA description Running Key

    Polibus squares etc.

    Playfair Cipher

    The Playfair cipher is named after Lord Playfair but was invented by Charles Wheatstone. It was invented in 1854 and was the fist literal digram substitution cipher.The Playfair is harder to break than substitution, transposition or vigenere type ciphers because the frequency analysis used for these others does not work with Playfair as it substitutes bigrams (two letters at a time) rather than single letters.
    As with many ciphers it was used in wartime. It was used for tactical purposes by British forces in the Second Boer War and in World War I and for the same purpose by the British and Australians during World War II.

    To perform the substitution, apply the following 4 rules, in order, to each pair of letters in the plaintext:

    1. If both letters are the same (or only one letter is left), add an 'X' after the first letter. Encrypt the new pair and continue. Some variants of Playfair use 'Q' instead of 'X', but any letter, itself uncommon as a repeated pair, will do.
    2. If the letters appear on the same row of your table, replace them with the letters to their immediate right respectively (wrapping around to the left side of the row if a letter in the original pair was on the right side of the row).
    3. If the letters appear on the same column of your table, replace them with the letters immediately below respectively (wrapping around to the top side of the column if a letter in the original pair was on the bottom side of the column).
    4. If the letters are not on the same row or column, replace them with the letters on the same row respectively but at the other pair of corners of the rectangle defined by the original pair. The order is important – the first letter of the encrypted pair is the one that lies on the same row as the first letter of the plaintext pair.
    Text from Wikipedia
    For the example on Wikipedia this works as follows
    Text: HELLO WORLD = HE LL OW OR LD. The double L need to be split as per rule 1 and then because it is uneven in length an X is added giving HE LX LO WO RL DX.
    The key used is PLAYFAIR producing a keysquare of
    P L A Y F
    I R B C D
    E G H K M
    N O Q S T
    U V W X Z

    HE = KG (rule 2)
    LX = YV (rule 4)
    LO = RV (rule 3)
    WO = VQ (rule 4)
    RL = GR (rule 3)
    DX = CZ (rule 4)

    The resulting cipher text is therefore KG YV RV VQ GR CZ, often written in groups of 5, i.e. KGYVR VVQGR CZ.

    There are several alternatives when for example two letters are the same. Rumkin and Practical Cryptography handle these in different ways.

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia Playfair cipher
    Practical Cryptography Playfair cipher
    Rumkin Playfair cipher
    Geocaching Toolbox Playfair cipher
    American Cryptogram Association description of Playfair
    Playfair PH solver using Web Workers

    Bifid Cipher

    The Bifid Cipher is a cipher which combines the Polybius square with fractionation to achieve diffusion. It was invented around 1901 by Felix Delastelle who also invented the Trifd and Four Square Ciphers. The Bifid Cipher was first presented in the Revue du Génie civil in 1895 under the name of "cryptographie nouvelle" or new cryptography. Delastelle was unusual in the world of cryptography as he is one of few amateurs who have invented several important ciphers.

    The Bifid Cipher uses a polybius square to first do a bigraphic substitution then by writing the result in rows and reading in columns it fractionates the result before doing a new bigraphic substitution through the keysquare.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography Bifid cipher
    Rumkin Bifid cipher
    Geocaching Toolbox Bifid cipher

    Trifid Cipher

    The Trifid cipher was invented by Félix Delastelle and was first described in 1902. It is an extension of his own Bifid cipher. It achieves both fractionation and transposition. The key alphabet is used to key a 27 letter alphabet, including . (dot). The alphabet can be written into three squares in several ways, horisontally or vertically in each square in turn or horizontally across all squares or vertically square by square. To make it even more difficult after the first fractionation the way the text is recombined can be any of 6 ways!. Delastelle also invented the Four Square cipher.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ.

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography Trifid cipher
    Geocaching Toolbox Trifid cipher

    Four Square Cipher

    The Four Square cipher was invented by frenchman Félix Delastelle who also invented the Bifid and Trifid ciphers. The Four Square cipher is a polygraphic substitution cipher. It replaces letters with digraphs so there are 676 (26x26) combinations of substitutions. The cipher has two 5x5 keys squares and two straight 25 letter squares hence the name four square. The two keys key the Top Right and Bottom Left squares. The text is first split into pairs of letters. An X is added to the end if there is an uneven number of letters in the text. The first letter of the pair is located in the top left square and the second letter in the bottom right square. The cipher letters are then read from the square corners, horizontally and vertically, from the Top Right and then Bottom Left squares. To decrypt simply reverse the procedure.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key 2 should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia Four Square Cipher

    Polybius Cipher

    The Polybius Cipher is probably the oldest of the digraphic substitution ciphers and one of the oldest known ciphers. Others developed later include playfair, bifid, trifid, four square, ADFG(V)X. In this original version an alphabet is written into a square grid and the plain text is encrypted simply by locating the letter in the grid and reading off the numbers in the column and row. It is believed to have been invented by the Ancient Greeks Cleoxenus and Democleitus but was perfected by Polybius some time around 150 BCE. It was originaly used to convert letters into numbers to send as a form of telegraphy through the use of torches.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 0123456789
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Nihilist Substitution Cipher

    The Nihilist cipher is a manually operated symmetric encryption cipher, originally used by Russian Nihilists in the 1880s to organize terrorism against the tsarist regime.There are several versions of the basic cipher and the basic cipher has developed into several other more complicated ciphers. The ultimate development along these lines was the VIC cipher, used in the 1950s by Reino Häyhänen
    For this implementation of the basic cipher all numbers need to be number pairs therefore under 100. Some online versions have space separated number where values over 100 are allowed. Just remove the 100 part and it should work!


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 0123456789
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key 2 should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia Nihilst cipher
    ACA descrition of the Nihilst substitution cipher

    Bazeries Cipher

    The Bazeries cipher was created by Étienne Bazeries who was a French military cryptanalyst active between 1890 and the First World War. He is best known for developing the "Bazeries Cylinder", an improved version of Thomas Jefferson's cipher cylinder. It was later refined into the US Army M-94 cipher device. The Bazeries cipher combines two grids (Polybius), one from a plain alphabet written vertically and the other from a number less than one million written out in words. The words are used to make the second grid in the normal polybus fasion with I/J shared and the the number is used to create an extra layer of encryption by splitting the text into groups by the key numbers before reversing the groups and then looking up the cipher text from the left square in the right square (reverse for decrypt). Technically it is simple substitution plus transposition cipher but placed into the polybus group as it uses two polybus squares.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    Key should contain only 0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    ACA description of the Bazeries Cipher

    Fractionation ciphers

    ADFGX

    The ADFGX cipher was a field cipher used by the German Army during World War I. It is closely related to the ADFGVX cipher. ADFGX is a fractionating transposition cipher which combined a modified Polybius square with a single columnar transposition. The cipher is named after the five possible letters used in the ciphertext: A, D, F, G and X. These letters were chosen deliberately because they sound very different from each other when transmitted via morse code. The intention was to reduce the possibility of operator error.
    Two examples of the ADFGX cipher. The first doesn't agree with mine, the second does! It is because of duplicate letters in the key?
    http://www.geocachingtoolbox.com/index.php?page=adfgvxCipher
    https://www.cryptool.org/en/cto-ciphers/adfg-v-x


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ADFGX
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Polibus key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography ADFGX cipher
    Geocaching Toolbox ADFGX cipher
    Cryptool-online ADFG(V)X Cipher

    ADFGVX

    The ADFGVX cipher was a field cipher used by the German Army during World War I. ADFGVX was in fact an extension of an earlier cipher called the ADFGX cipher. Invented by Colonel Fritz Nebel and introduced in March 1918, the cipher was a fractionating transposition cipher which combined a modified Polybius square with a single columnar transposition. The cipher is named after the six possible letters used in the ciphertext: A, D, F, G, V and X. These letters were chosen deliberately because they sound very different from each other when transmitted via morse code. The intention was to reduce the possibility of operator error.
    Two examples of the ADFGVX cipher. The first doesn't agree with mine, the second does! It is because of duplicate letters in the key?
    http://www.geocachingtoolbox.com/index.php?page=adfgvxCipher
    https://www.cryptool.org/en/cto-ciphers/adfg-v-x


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ADFGVX
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Polibus key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography ADFGVX cipher
    Geocaching Toolbox ADFGVX cipher
    Cryptool-online ADFG(V)X Cipher

    Pollux

    The Pollux cipher is of unknown origin. It is a simple but slightly effective fractionation cipher whereby letters are converted into Morse Code and then fractionated by replacing each . (dot), - (dash) and separators by numbers according to a simple key. The fractionation comes by replacing each . - and space by several different numbers from the key. It is common for the key to use 4 dots and 3 of each of the others


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 0123456789
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,?-=:;()/$'_Æ!+~#&/ÆØÅ
    Key should contain only .0-1x
    Key 2 should contain only 0123456789

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    American Cryptogram Association description og the Pollux ciper

    Straddling Checkerboard

    A straddling checkerboard is a cipher that converts alphabetic plaintext into digits whilst simultaneously achieving fractionation (a simple form of information diffusion) and data compression relative to other schemes using digits. It also is known as a monôme-binôme cipher although there are slight differences.

    An example with the test coordinates:

      0 1 2 3 4 5 6 7 8 9
      A B C   D E F G   H
    3 I J K L M N O P Q R
    8 S T U V W X Y Z / .

    OEHGHHKAJAFHOEPEFFTIGUAGEHCCDBHGFHDFLXHGADGBEEDCAQCEZADGZFDG.AHCBE/GFLGEHGEFAAHIEHXXCHEHCHGAHEUGFECGFDHFAJEUBHKGHFGFHJE.EDCAQC

    To start with the input text is coded through the matrix to

    36,5,9,7,9,9,32,0,31,0,6,9,36,5,37,5,6,6,81,30,7,82,0,7,5,9,2,2,4,1,9,7,6,9,4,6,33,85,9,7,0,4,7,1,5,5,4,2,0,38,2,5,87,0,4,7,87,6,4,7,89,0,9,2,1,5,88,7,6,33,7,5,9,7,5,6,0,0,9,30,5,9,85,85,2,9,5,9,2,9,7,0,9,5,82,7,6,5,2,7,6,4,9,6,0,31,5,82,1,9,32,7,9,6,7,6,9,31,5,89,5,4,2,0,38,2,36,5,9,7,9,9

    The cipher text could be sent as

    36597993203106936537566813078207592241976946338597047155420382587047876478909215887633759756009305985852959297095827652764960315821932796769315895420382

    but is often encrypted further with another key
    In this case the key number 01234 is used as a modulus key with modulus 10
    Therefore to decrypt reverse the modulus10 addition

    36597993203106936537566813078207592241976946338597047155420382587047876478909215887633759756009305985852959297095827652764960315821932796769315895420382

    minus
    01234012340123401234012340123401234012340123401234012340123401234012340123401234012340123401234012340123401234012340123401234012340123401234012340123401

    =
    35363981963083535303554573955806368239636823937363035815307981353035536355508081875393636355875393645739558063083587539363736303581819395535303555307981

    Then split it and run it through the matrix again

    35,36,39,81,9,6,30,83,5,35,30,35,5,4,5,7,39,5,5,80,6,36,82,39,6,36,82,39,37,36,30,35,81,5,30,7,9,81,35,30,35,5,36,35,5,5,0,80,81,87,5,39,36,36,35,5,87,5,39,36,4,5,7,39,5,5,80,6,30,83,5,87,5,39,36,37,36,30,35,81,81,9,39,5,5,35,30,35,5,5,30,7,9,81

     N O R T H F I V E N I N E D E G R E E S F O U R F O U R P O I N T E I G H T N I N E O N E E A S T Z E R O O N E Z E R O D E G R E E S F I V E Z E R O P O I N T T H R E E N I N E E I G H T


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789
    key word should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ./
    key numbers should contain only 0123456789,

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography Straddling Checkerboard cipher
    Wikipedia Straddling Checkerboard cipher

    Monôme-Dinôme

    Monomé Dinomé is in the Nihilist family of ciphers and is a transposition and fractionation cipher. Monome Dinome comes from the fact that some of the coding results in single numbers and others in double numbers. The key is used for keying the alphabet to be used and the second key is for the transposition of the columns and the numbering of the two rows. A key may look something like this
    Key1 = HOLIDAYS and
    key2 = GEOCACHING = 4 3 9 1 0 2 6 7 8 5 (zero indexed) = 4,3,91026785. The resulting keySquare is then

      9 1 0 2 6 7 8 5
    H O L I D A Y S
    4 B C E F G K M N
    3 P R T U V W X Z
    Once the conversion through the correct key is done the rest is just a substitution cipher.

    Input formats for text and keys

    The key sizes and formats are important as they are used to make an 8x3 table. Key1 is used to make a keyed 24 character alphabet for the table. With 24 character there must be 2 pairs of shared letters. These are usually I/J and Y/Z but can be any pairs. Key2 is used to make a transposition key and 2 line keys. It can be input as 10 letters, i.e. GEOCACHING or n1(1),n2(1),n-key(8), i.e. 4,3,91026785

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    key word should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ
    key numbers should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Cache: Monome-Dinome by TheRat. California, United States (Archived)

    Fractionated Morse

    The Fractionated Morse Cipher was developed by Crypto Pioneer Merle E. Ohaver in the early 1900s. As its name suggests it uses Morse Code to code letters and then fractionates the resulting morse through a key table.
    Each letter of the plaintext is first enciphered using Morse code with 'x' between letters and 'xx' between words. (xxx does not exist.) Normally punctuation is not enciphered, but for clarity or variation it may be added at the constructor's discretion.
    This series of dots, dashes, x's is taken off in units of three, each trigraph set vertically and cipher letters assigned to each group using a keyword alphabet:
    This keyword alphabet is taken from the American Cryptogram Association (ACA Fractionated Morse)

    K E Y W O R D A B C F G H I J L M N P Q S T U V X Z
    . . . . . . . . . - - - - - - - - - x x x x x x x x
    . . . - - - x x x . . . - - - x x x . . . - - - x x
    . - x . - x . - x . - x . - x . - x . - x . - x . -


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,;:()@=?!'
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,;:()@=?!'
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography Fractionated Morse cipher
    American Cryptogram Accociation Fractionated Morse

    VIC Cipher

    The VIC cipher was a pencil and paper cipher used by the Soviet spy Reino Häyhänen, codenamed "VIC or VICTOR", in the 1950's. It was one of the most complicated manual cipher ever used and it remained unbroken until more information about its structure was available.
    To try to classify the cipher is impossible as it consists of so many steps using other cipher types. David Kahn described it as a straddling bipartite monoalphabetic substitution superenciphered by modified double transposition cipher!

    The original cipher documented by the CIA was in Russian and therefore some of the details are changed to work with an English alphabet. The Straddling Checkerboard in the Russian version consisted of 4 lines of 10 letters to accomodate the modern Russian cyrillic alphabet and some special characters such as number letter shift, dot and comman and 'true message start'. The message was split into two parts and a special character 'true message start' was added to indicate where. This was so that guessing the start of a message text was made more difficult. Guessing start texts is a common way of breaking cipher messages! This representation of the cipher uses a prefill text and values from an anonymous paper often cited that recreates the steps as accurately as possible using the English alphabet.

    The encryption process consists of 10 basic steps, all in themselves well known methods:
    1) Start by selecting 3 'secret key' elements. These were quite static.
    i) A short Phrase (e.g. the first line of a song) minimum 20 character long The Loan Accordian for the Russian version ii) A Date 3rd September 1945 = 391945 which is Victory over Japan (V-J) Day for Russians
    iii) A Personal Number (unique to agent, a 1 or 2 digit number) Häyhänen's personal number was 13. It was changed to 20 in 1956 to make transposition keys longer.
    In addition a 5 digit keygroup is created as the first step in the encryption for each message
    2) Use the secrets above (Phrase, Date, Keygroup and Personal Number) create a 50 digit block of pseudo random-numbers (itself using 14 steps)
    3) Use this block to create the message keys for
    i) A straddling Checkerboard
    ii) Two columnar transpositions
    4) Encrypt the Plaintext message via the straddling checkerboard
    5) Apply two transpositions to the resultant (intermediary) ciphertext through two columnar transpositions
    i) A 'Standard' Columnar Transposition
    ii) A Diagonal Columnar Transposition
    6) Insertion of the Keygroup into the ciphertext - as determined by the Personal Number.

    To help understand the workings of the cipher the steps will be shown in the Working Text after encrypting and decrypting.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789
    Key phrase (minimum length 20) should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ./
    Date (DDMMYY) should contain only 0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia VIC Cipher description
    A Cryptographic Compendium by John Savard detailing the VIC cipher
    StackExchchange CodeGolf description of the VIC cipher
    Number One From Moscow - A page by David Kahn in the CIA library (22 SEPT 93)

    Machine based ciphers

    Enigma

    The Enigma Cipher is one of the best known ciphers of all time. Invented by a German engineer Arthur Scherbius at the end of World War I, it was first used commercially. With the onset of World War II it was adopted by the military and produced in several versions. The army, navy and airforce had different versions and there were versions used by the High Command with greater complexity and security.

    The folowing is a descriptions of some basic differences and how it works.
    Wehrmacht (Heer & Luftwaffe): Thick B or C reflector. Three rotors from I,II,III,IV and V. Uses number for the settings
    - Kriegsmarine M3: Thick B or C reflector. Three rotors from I,II,III,IV,V + VI,VII,VIII (double notched). Uses letters for settings
    - Kriegsmarine M4: Thin reflectors B or C, Beta or Gamma, Three rotors from I,II,III,IV,V + VI,VII,VIII (double notched).
    - Rotor - The wheels placed in the machine
    - Ring Setting (Ringstellung) - The setting (position) on the rotor from A-Z or 1 to 26. The ring setting is set before the wheel is placed into the machine.
    - Rotor Start Position (Spruchschlussel) or Grundstellung - The setting from the outside of where the rotors start.
    - The reflector, Umkehrwalze or UKW - B or C, thick or thin according to the type of machine
    - Plugs (Stecker) on the Plugboard (Steckerbrett)

    Each day, the Heer (Army) and Luftwaffe (Airforce) operators set up the machine according to the secret daily key
    sheet. This sheet contained the day (Tag), rotor selection and order (Walzenlage), ring setting (Ringstellung),
    plug connections (Steckerverbindungen) and identification groups (Kenngruppen). The days were printed in
    reversed order so that the operator could cut off each expired setting at the bottom.

    -----------------------------------------------------------------------------
    Tag Walzenlage Ringstellung Steckerverbindungen               Kenngruppen
    -----------------------------------------------------------------------------
    31  I II V     06 22 14     PO ML IU KJ NH YT GB VF RE DC     EXS TGY IKJ LOP
    30  III IV II  17 04 26     BN VC XS WQ AZ GT YH JU IK PM     KIJ TFR BVC ZAE
    29  V I III    15 02 09     ML KJ HG FD SQ TR EZ IU BV XC     QZE TRF IOU TGB


    On day 31 the following message is transmitted, from C to U6Z, sent at 1500 hrs and containing 49 letters.

    U6Z DE C 1510 = 49 = EHZ TBS =

    TVEXS QBLTW LDAHH YEOEF
    PTWYB LENDP MKOXL DFAMU
    DWIJD XRJZ=


    To decrypt the message we proceed as follows:
    • Select the Wehrmacht Enigma I with B reflector.
    • Select the rotors (I II V), adjust their ring setting (06,22,14 = FVN) and set the plugs according to key sheet day 31
    • Set the rotor start positions to EHZ, the first trigram of the message (B,I,II,V,FVN,EHZ,PO ML IU KJ NH YT GB VF RE DC)
    • Type in the second trigram TBS to retrieve the original message key. The result should be XWB
    • Set the decrypted message key XWB as start position for the three rotors (B,I,II,V,FVN,XWB,PO ML IU KJ NH YT GB VF RE DC).
    • Now decrypt the actual message, but make sure to skip the key identification group TVEXS.

    Procedure pre 1. May 1940
    To Encode
    1. Using the daily setting set up the machine
    2. Choose three letters at random
    3. Encode these twice (write down the result)
    4. Set the machine rotors (Grundstellung) to the new settings - i.e. three random letters
    5. Endoce the message
    6. Add the 6 encoded letters to the start of the message

    To decode
    1. Set the machine up to the daily settings
    2. Decode the first 6 letters in the message (should be two sets of three letters)
    3. Set the rotors (Grundstellung) to the three letters
    4. Remove the first 6 letters of the message
    5. Decode the message
    For more information on how to set up the Enigma machine see Enigma Message Procedures

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Practical Cryptography Enigma cipher
    Dirk Rijmenants Enigma cipher pages (probably the best Enigma resource on the Internet!)
    Cryptool-online Enigma Cipher

    Licence and code accreditation information
    Copyright 2004 by Dirk Rijmenants (http://users.telenet.be/d.rijmenants/en/enigmamenu.htm) (use with permission)
    Code based on https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=56827&lngWId=1

    Lorenz SZ40/42

    The Lorenz cipher is a machine cipher similar to Enigma and was also used in World War II. It has 12 wheels with together 501 settings creating 2501 or 10151 alternative settings.
    The basic functioning is a teletype machine using ITA2 coding. Each letter is encrypted before being sent.
    Each of the 12 wheels has a different number of positions it can be in. The number of positions for each wheel is coprime to the others to maximise the time for them to repeat the same sequence. Each wheel has 'cams', movable pegs. The pegs could be raised or depressed. In the raised (active) position they are 1 and in the depreseed (inactive) position they are 0.
    The key information consists of the start positions for the 12 wheels and the pin settings for each wheel.
    For each key pressed the key is converted into a 5 bit ITA2 code and then encrypted with a key created from the first 5 and last 5 wheels in the machine, the psi (ψ) and chi (χ) wheels. The key is the 5 bits of the 5 wheels XORed together. The ITA2 code for the character is then XORed with the key.
    There are 3 types of machine implemented here. The SZ40, SZ42a and SZ42b. The SZ42 has a more complex mechanism than the SZ40 wherby there are more things affecting how the wheels making the key are moved as the letters are typed.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?=)(/,:.+.-
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?=)(/,:.+.-
    Wheel start positions should contain only 0123456789,
    Wheel pin configurations should contain only 01 ,

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia Lorenz cipher
    Virtual Lorenz machine
    Practical Cryptorgraphy Lorenz

    Hill Cipher

    The Hill cipher is a polygraphic substitution cipher based on linear algebra. Polygraphic indicates that is operates on more than one character at a time. The cipher is placed under the machine ciphers section as the patent #US1845947A is under the classification G09C1/08 - Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member the connections being mechanical

    Invented by Lester S. Hill in 1929, it was the first polygraphic cipher in which it was practical (though barely) to operate on more than three symbols at once.

    The cipher works on linear algebra. Other polygraphic ciphers include Playfair, Bifid and Trifid.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Key should contain only ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia Hill cipher
    Practical Cryptorgraphy Hill cipher

    Computer Ciphers

    PGP (Pretty Good Privacy)

    PGP (Pretty Good Privacy) is a computer based encryption used for sending strongly encrypted eMail og files over the internet. This implementations uses OpenPGP, an open source version of the PGP library. It is based on asymmetric public / private key encryption but can also use symmetric encryption.

    Symmetric encryption uses just a passphrase and it is this that is most used in Geocaching


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Passphrase should contain only all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipedia PGP

    Licence and code accreditation information
    This PGP implementation uses the BouncyCastle libraries from The Legion of the Bouncy Castle Copyright (c) 2000 - 2017 (https://www.bouncycastle.org). Licenced under The MIT Licence

    RSA

    The acronym RSA comes from the first letters of the surnames of the three people, Ron Rivest, Adi Shamir and Leonard Adleman, who first publicly described the algorithm in 1977.Clifford Cocks, an English mathematician, had developed an equivalent system in 1973, but it wasn't classified until 1997 becuase he developed it whilst working for the British government.

    A user of RSA creates and then publishes the product of two large prime numbers, along with an auxiliary value, as their public key.The prime factors must be kept secret.Anyone can use the public key to encrypt a message, but with currently published methods, if the public key is large enough, only someone with knowledge of the prime factors can feasibly decode the message.Whether breaking RSA encryption is as hard as factoring is an open question known as the RSA problem.

    The classic scenario is that of Alice, Bob and Eve.Alice wants to send Bob a message that she doesn't want Eve to read. Alice could pick any kind of encryption but mostrequire Eve to send the encryption key to Bob.If Eve were to intercept the key she could read all of Alice and Bobs messages. Rivest, Shamir and Adleman came up with RSAas a way to send encrypted messages without having to send the key, at least not the private key.

    Alice chooses two prime numbers, the larger the better, say 23 and 7, These are called p and q.These two numbers are multiplied to give n.n is called the modulus.She then chooses another prime number thatdoes not divide into the first two minus 1 multiplied by each other, ie. (p-1)*(q-1).p-1 * q-1 = 22 * 6 = 132. The third number, e, can be 7 for example, as 132 cannot be divided by 7. It could also be 17 or 19. It could not be 11 as 132=11*12.Alice must then find another number, d, where ((e * d) - 1) is divisible by(p - 1) * (q - 1), i.e. 132, or rearranged d where((p - 1) * (q - 1)) + 1(i.e. 133) is a divisor.If e is 7 then d could be 19. 7 * 19 = 133 - 1 = 132 = (p - 1) * (q - 1).Next numbers for d are 151(151 * 7 - 1 = 1056 / 132 = 8), 283(283 * 7 - 1 = 1980 / 132 = 15) etc.

    The RSA algorithm now creates two keys.A private key and a public key.Alice publishes her public key on the Internet and keeps her private key a secret.It is sometimes called her secret key.Bob does the same.He creates a key pair and publishes his public key on the Internet.Say Bob has chosen 11, 3 and 3 as his values for p, q, and e. p* q = n = 33. (p - 1) * (q - 1) = 20.d = 20 + 1 = 21 / e = 7.

    Alice's keys are now Public key = (n, e) = 161, 7) and Private key = (n, d) = 161, 19)
    Bob's keys are Public key = (n, e) = 33, 3) and Private key = (n, d) = 33, 7)

    To send a message to Bob, Alice writes her message and encrypts it with Bob's public key. Once encrypted it can only be decrypted with Bob's private key.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 0123456789ABCDEFabcdef#
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Key should contain only 0123456789ABCDEF,


    Links to other implementations or information

    Wikipedia RSA

    Licence and code accreditation information
    This RSA implementation uses the BouncyCastle libraries from The Legion of the Bouncy Castle Copyright (c) 2000 - 2017 (https://www.bouncycastle.org). Licenced under The MIT Licence

    Computer Encryptions

    Computer based encryption comes in many forms but there are a few algorithms that can be used for making cache texts. The Bouncy Castle library implements a wide selection of them. See the drop down lists for the alternatives.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/+=
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Key: should contain only 0123456789ABCDEF
    IV (Hex string): should contain only 0123456789ABCDEF


    Links to other implementations or information

    A site to generate Twofish encrypted strings
    Tools3noobs
    Schneier on Security: Twofish

    Licence and code accreditation information
    This implementation uses the BouncyCastle libraries from The Legion of the Bouncy Castle Copyright (c) 2000 - 2017 (https://www.bouncycastle.org). Licenced under The MIT Licence

    Hash Generator

    A hash is a one way algorithm used to create a kind of signature that can be used to authenticate a text or file.The Bouncy Castle library implements a wide selection of them.

    Hashes are used to store passwords in databases and for web sites as it is impossible to get the password back from the hash, although, some of the early hashing types have been cracked. Cracking hashes relies on word lists or brute force, also a method called Rainbow Tables. Modern computers can check millions of passwords a second against word lists so DON'T use words in a dictionary or names of people or places!!For the Mystery Toolkit there is a word list of just under 300 000 words that can be used that may give a result. As the code is not optimised for hashing it is slooooow!


    Input formats for text and keys

    Reverse hashing the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/+=
    Make hashes the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Words to search. should contain only all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipedia hash functions
    OpenSource documentation of the Apache MD5 (Apr1) hashing algorithm

    Licence and code accreditation information
    This implementation uses the BouncyCastle libraries from The Legion of the Bouncy Castle Copyright (c) 2000 - 2017 (https://www.bouncycastle.org). Licenced under The MIT Licence

    Esoteric computer languages

    Brainf**k

    Brainfuck (alt. Brainf***, BF, Brainf**k) is an Esoteric Programming Language. Brainfuck was invented by Urban Müller in 1993, in an attempt to make a language for which he could write the smallest possible compiler for the Amiga OS, version 2.0. He managed to write a 240-byte compiler.
    The idea of an esoteric programming language is to create a language with a few commands, a tiny compiler with the most functions to test the limits of programming language design.

    The language consists of just 8 programming instructions.

    • > = value increment
    • < = value decrement
    • + = mem increment
    • - = mem decrement
    • . = output
    • , = console input
    • [ = loop start
    • ] = loop end

    There are different levels of complexity in the interpreters so not all BF code can be read by all interpreters. This one can't cope with negative buffers necessary for writing very short BF code.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Geocaching Toolbox Brainf**k translator
    Esolang Wiki: Brainfuck
    Wikipedia: Brainfuck.

    Ook

    Ook! is a joke esoteric programming language created by David Morgan-Mar. It is identical to Brainf**k, except that the instructions are changed into Orangutan words.Like Brainf**k it has 8 commands and these translate to BF as follows.

    BFOok!Description
    > Ook. Ook?Value increment
    < Ook? Ook.Value decrement
    + Ook. Ook.Memory cell increment
    - Ook! Ook!Memory cell decrement
    . Ook! Ook.Output
    , Ook. Ook!Console input
    [ Ook! Ook?Loop start
    ] Ook? Ook!Loop end

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - Ook!.?
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Geocaching Toolbox Ook translator

    Moo (Cow)

    The COW programming language is an esoteric programming language created by Sean Heber in 2003. It is a Brainf**k variant designed humorously with Bovinae in mind. Given that cows have somewhat limited vocabulary skills, it seemed natural to incorporate only the words they know into the language.
    COW has twelve instructions (four more than Brainf**k) and is Turing-complete. Most instructions are moos, only the capitalization varies: mOo, moO, mOO, Moo, and so on. MMM, OOO, oom and OOM are the exceptions. All other character combinations are ignored and treated as comments.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - MmOo
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Esolang Wiki: COW Programming Language

    Licence and code accreditation information
    No licence and no copyright specified for the JavaScript (http://www.frank-buss.de/cow.html). c++ code has 'License: Public Domain'
    Code based on https://github.com/BigZaphod/COW/blob/master/source/cow.cpp

    Number bases

    Number Bases

    Number base conversion seems to be challenging for many, something we hated in school?. It is possible to represent both numbers and words in different bases from Base 2 to Base 62Bases up to base 10 have just numbers. Bases up to base 36 can have numbers and letters but only either upper case or lower case not both. Bases from 37 up to 62 can have numbers and both upper and lower case letters.


    Input formats for text and keys

    Convert From -> To the following characters are allowed in the text - 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    Convert To -> From the following characters are allowed in the text - 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    From: should contain only 0123456789
    To: should contain only 0123456789


    Links to other implementations or information

    Geocaching Toolbox number base converter

    Number Bases (2 to 62)

    Number base conversion seems to be challenging for many, something we hated in school?. It is possible to represent both numbers and words in different bases from Base 2 to Base 62Bases up to base 10 have just numbers. Bases up to base 36 can have numbers and letters but only either upper case or lower case not both. Bases from 37 up to 62 can have numbers and both upper and lower case letters.


    Input formats for text and keys

    Convert the following characters are allowed in the text - 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    base from 2 to 62 should contain only 0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.

    Links to other implementations or information

    Geocaching GCBase31

    GCBase31 is a conversion for coding the Geocache IDs. The characters used for the base-31 conversion are 0123456789ABCDEFGHJKMNPQRTVWXYZ
    (the letters ILOSU are omitted). When converting from a base-31 waypoint ID back to its original sequential ID, you have to subtract 411120 due to the change in Cache numbering after cache GCFFFF where the base was changed from 16 to 31.


    Input formats for text and keys

    From GC Base31 to number the following characters are allowed in the text - 0123456789ABCDEFGHJKMNPQRTVWXYZ
    From number to GC Base31 the following characters are allowed in the text - 0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Geocaching Toolbox Geocache code to number converter

    Binary to text encoding

    Base64

    Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The Base64 term originates from a specific MIME content transfer encoding.
    Base64 uses a 64 character alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/+=
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Rumkin Base64 converter

    Base32

    Base32 is one of several base 32 transfer encodings using a 32-character subset of the twenty-six letters A–Z and ten digits 0–9. Primarily Base32 is used to encode binary data, but is able to encode binary text like ASCII.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    A randomly chosen online Base32 converter conforming to RFC 4648

    Licence and code accreditation information
    StackOverflow assumed open licence either MIT or opengl.
    Code based on http://stackoverflow.com/questions/641361/base32-decoding

    Base58 (Bitcoin base)

    Base58 is one of several binary text encodings used for converting ASCII characters to typable text. Base58 is the encoding used for Bitcoin addresses.Bitcoin addresses are created from several steps:-

    1. Start with an Elliptic Curve Digital Signature Algorithm or ECDSA (a cryptographic algorithm used by Bitcoin to ensure that funds can only be spent by their rightful owners. It comprises a public and a private key.
    2. Take the corresponding public key generated with it (65 bytes, 1 byte 0x04, 32 bytes corresponding to X coordinate, 32 bytes corresponding to Y coordinate)
    3. Perform SHA-256 hashing on the public key
    4. Perform RIPEMD-160 hashing on the result of SHA-256
    5. Add version byte in front of RIPEMD-160 hash (0x00 for Main Network)
      (note that below steps are the Base58Check encoding, which has multiple library options available implementing it)
    6. Perform SHA-256 hash on the extended RIPEMD-160 result
    7. Perform SHA-256 hash on the result of the previous SHA-256 hash
    8. Take the first 4 bytes of the second SHA-256 hash. This is the address checksum
    9. Add the 4 checksum bytes from stage 7 at the end of extended RIPEMD-160 hash from stage 4. This is the 25-byte binary Bitcoin Address.
    10. Convert the result from a byte string into a base58 string using Base58Check encoding. This is the most commonly used Bitcoin Address format

    And that's all there is to it!! Easy. Go hack a bitcoin!

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHJKLMNPQRSTUVWXYZ123456789abcdefghijkmnopqrstuvwxyz
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipeida Base58
    bitcoinwiki

    Code based on https://github.com/45678/Base58

    Adobe Base85 (ASCII85)

    ASCII85 or Base85 is a text encoding system used mainly by Adobe. It codes 4 characters to 5 ASCII85 bytes. NB: It has compatability issues as both single and double quotes can end up in the encoded text giving problems on web pages and in XML. , i.e. tag lige results can also dissapear!.


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu~
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipedia ASCII85
    Tools4noobs ASCII85

    Licence and code accreditation information
    Copyright (C) 2012-2016 Remy Oukaour.
    Licence The MIT Licence
    Code based on https://github.com/roukaour/ascii85/blob/master/ascii85.c

    Base91 Text to Binary Encoding

    Base91 or, basE91 as it is often shown as, uses 91 characters of the alphabet where Base64 uses 64 characters. The alphabet consists of character from ASCII #33 to #126 omitting - (dash ASCII #45), \ (backslash ASCII #92) and ' (apostrophe ASCII #39)


    Input formats for text and keys

    Decode the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=>?@[]^_`{|}~"
    Encode the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    dCode implementation of Base91

    Licence and code accreditation information
    Code from GitHub KvanTTT. Licence Licence: Apache 2.0 License
    Code based on Github KvanTTT BaseNcoding

    UUencoding

    UUencoding is one of many binary to text encoding algorithms created to transfer text between computers. The UU stands for Unix to Unix. It has now mostly been replaced by Base64


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - !"#$%&'`()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
    Encrypt the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipedia ASCII85
    Webutils UUencoder
    Domain Tools UUencoder

    Code based on http://geekswithblogs.net/kobush/articles/63486.aspx

    Coordinate utilities

    Geohash

    Geohash is a latitude/longitude geocode system invented by Gustavo Niemeyer when writing the web service
    at geohash.org, and put into the public domain.
    It is a hierarchical spatial data structure which subdivides space into buckets of grid shapes.


    Input formats for text and keys

    Geohash to Coords the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    Coords to Geohash the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789°'".,-


    Links to other implementations or information


    Licence and code accreditation information
    Coordinate conversion is from CoordinateSharp under GNU Affero General Public License.

    What3Words

    What3words is a geographic location system whereby the world is divided into a grid of 3m x 3m squares and each is assigned a unique 3 word address.


    Input formats for text and keys

    Get coordinates the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,
    Get What3Words address the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789°'" .,-


    Links to other implementations or information

    What3words web site

    Licence and code accreditation information
    Coordinate conversion is from CoordinateSharp under GNU Affero General Public License.

    Convert coordinates

    Simple coordinate conversion giving coordinates in decimal degrees, degrees + decimal minutes (geocache format), degrees minutes seconds, UTM, MGRS


    Input formats for text and keys

    Convert the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789°º'" .,-


    Links to other implementations or information


    Licence and code accreditation information
    Coordinate conversion uses the CoordinateSharp NUGET package. Licence GNU Affero General Public License (AGPL-3)
    Code based on CoordinateSharp

    QuadKey (Bing Maps)

    Online maps use a system of map tiles to make drawing of a map fast. These all use a system of geospacial location processing allowing for greater and greater psoition accuracy according to a zoom level. There are tree main systems TMS from OSGeo, Microsoft Quadkey & Google (XYZ)

    Microsoft Bing maps uses several different formats for representing coordinates and one of these is quadtree keys, or “quadkeys” for short. Quadkey coordinate values are numbers in what looks like Base 4, i.e. numbers 0, 1, 2 & 3. The number is actually an interleaved geospacial coding system.

    The standard maximum precision is from 1 to 23 digits but to get an accuracy to +- 3m for Geocaching it is set up to 28

    Input formats for text and keys

    Decrypt the following characters are allowed in the text - 0123
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789°'" .,-


    Links to other implementations or information

    Bing Maps Tile System

    Steganography

    Steg Detect (RGB)

    RGB Steg analysis allows you to examine the red, green and blue pixels of an image to see if there is any hidden text inserted by manipulating the RGB colours. It won't work on all kinds of image as there are too many different formats but hopefully it will work on most jpeg, png, gif and bmp files also some tiff files. Images are made up of pixels and each pixel is represented by from 1 to 64 binary bits. An image with 1 bit per pixel, bpp for short, can have just 2 colours with values 0 and 1. Other images have 4, 16, 24, 32, 48 or 64. Images with 16 bits per pixel use 5 (or 6) bits for each of red, green and blue. The most common formats are either 24 bits or 32 bits per pixel using 8 bits for each of the colours and with 32 bits an alpha channel or transparency layer.
    For 24 or 32 bit images each pixel is made up of a combination of red, green and blue colours. Each pixel can have up to 256 different values (binary 0 - 11111111) for each of red, green and blue giving 16 777 216 (256 x 256 x 256) possible different colours. Each colour for each pixel is made up of a value from 0 to 255, i.e. 256 possible values. The human eye can't see the difference between a colour of value 58 and that of 59 but a computer can. In binary 58 and 59 are 0011 1010 and 0011 1011. The last binary bit changes from 0 to 1. This is called the least significant bit or LSB and this kind of steganography is most often called LSB steganography and is the most used type.

    By looking at the 'layers' of the image, i.e. the pixel depths from 0 to 7 (8 bits = 256 values) any hidden text might become visable (no guarantees).

    Steganography uses this technique to hide large amounts of data in image files. By looking at the bits of the image you may see signs of a set of pixels that look out of place. Any image with steganography data encoded using Steghide will show a line of miscoloured pixels along the bottom of the image. Easy to spot on single coloured images, not so easy on a normal photograph image!

    Text from A Challengers Handbook by Caesum'There are now two programs to help with solving Steganography challenges. The first is Steganabara by Quangntenemy and it allows colour analysis in an easy way as well as allowing colours to be isolated and viewed. So if there are two slightly different colours then you can see which pixels each one is colouring.
    The second program is Stegsolve (download) by myself. It will perform analysis of the file structure as well as allowing each bit plane to be viewed on its own. It also allows extracts to be taken from bits, and contains a stereogram solver. Both programs are open source and so you can modify them in whatever way you wish.'

    Input formats for text and keys



    Links to other implementations or information

    Steg Detect (Geocaching Toolbox)

    Geocaching Toolbox uses php myCrypt with Stegger.class.inc.php from Warren Smith from 2006 to hide text or images. The steganography algorithm uses both a private and a public key one of which the user enters and the other is on the server therefore it isn't possible to decrypt the hidden content but it is possible to detect that there is (or could be) hidden data. The algorith uses a start and end tag and as such can results in false positives and false negatives from the real image data in the file.

    If there is hidden information the file the detection should produce a Base64 type result. The Base64 won't, however, decrypt to anything readable as it will be encrypted with several one way keys.

    Input formats for text and keys



    Links to other implementations or information

    GeocachingToolbox Steganography

    Steg Detect (End of File)

    Some types of image files allow information to be hidden at the end of the file by adding the information after the End of File (EoF) marker. Geocachers exploit this. It is possible to add anything really including text, compressed and encrypted Zip (or 7z) files and even other images. This detection will just detect if there is anything there but not retrieve it, except maybe for plain text.


    Input formats for text and keys



    Links to other implementations or information

    Steg Detect (Image text)

    This is an extention or alterative to the EXIF and the End of File types of Steganography which adds text or other information anywhere in an image file exploiting weaknesses or unused parts of the image structure. Many (most) image types are made up of sections with an opening tag (sequence of bytes), a length indicator and then the data. However, sometimes it is possible to replace non-essential parts of the structure with text and other information. This extraction will find anything in a file that is an ASCII printable character. This will result in lots of rubbish but may just find something useful along the way.


    Input formats for text and keys



    Links to other implementations or information

    Image analysis

    Exif data

    Several type of image and other media files contain information in the files about the image, the equipment used to create the file and other useful information. This information is called EXIF data or image header data. Sometimes the file contains GPS coordinates, especially if an image is taken with a phone camera.
    It is possible to hide information in this EXIF data in tags such as the creator or author and description tags. This quick extraction routine can help find it.


    Input formats for text and keys



    Links to other implementations or information

    Licence Apache License, Version 2.0
    Code based on MetadataExtractor NuGet from GitHub

    Image colour table

    Most computer images are made up of pixels and the pixels are made up of Reg, Green and Blue colours in different amounts. This image processing function shows the 100 most used colours and their values. Sometimes this can reveal something usefull, othertimes, just 100 random numbers!


    Input formats for text and keys



    Links to other implementations or information

    QR / Barcodes

    QR/Barcode Decode

    QR and Barcodes contain anything from a few letters and numbers to small amounts of text. There are many formats each with their own structure. This decoder reads some but not all of the available formats.
    The following barcodes are supported by the decoder: UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, MSI, RSS-14 (all variants), QR Code, Data Matrix, Aztec and PDF-417. The encoder supports the following formats: UPC-A, EAN-8, EAN-13, Code 39, Code 128, ITF, Codabar, Plessey, MSI, QR Code, PDF-417, Aztec, Data Matrix


    Input formats for text and keys



    Links to other implementations or information

    ZXing Decoder Online

    Licence and code accreditation information
    Net port of the original java-based barcode reader and generator library ZXing on GitHub by micjahn. Licence http://www.apache.org/licenses/LICENSE-2.0
    Code based on https://github.com/micjahn/ZXing.Net

    QR/Barcode Create

    QR and Barcodes contain anything from a few letters and numbers to small amounts of text. There are many formats each with their own structure. The ZXing application can produce QR / barcodes from the text.
    The following barcodes are supported by the decoder: UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, MSI, RSS-14 (all variants), QR Code, Data Matrix, Aztec and PDF-417. The encoder supports the following formats: UPC-A, EAN-8, EAN-13, Code 39, Code 128, ITF, Codabar, Plessey, MSI, QR Code, PDF-417, Aztec, Data Matrix


    Input formats for text and keys

    Create QR/barcode the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    ZXing Decoder Online

    Licence and code accreditation information
    Net port of the original java-based barcode reader and generator library ZXing on GitHub by micjahn. Licence http://www.apache.org/licenses/LICENSE-2.0
    Code based on https://github.com/micjahn/ZXing.Net

    Odd Bits

    Check prime numbers

    Prime number lookup either as the Nth prime number or checking to see if a number is a prime and if so which in sequence.
    Calculating large prime numbers or checking if a large number is prime is a CPU intensive operation and there are many algorithms to do the maths. This method used Fermat's Little Theorum.


    Input formats for text and keys

    Check primeness the following characters are allowed in the text - 0123456789
    n'th prime the following characters are allowed in the text - 0123456789

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia: Fermat's little theorem

    Resistor Colour Codes

    The colour code for resistors, also used on other small electronic components, was first used in the 1920s. Color bands were used because they were easily and cheaply printed on very small components.


    Black

    Brown

    Red

    Orange

    Yellow

    Green

    Blue

    Violet

    Grey

    White

              
    0123456789

    Input formats for text and keys

    To numbers the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    To colours the following characters are allowed in the text - 0123456789NESW

    The cipher text should have no spaces. Spaces will (probably) be removed if there are any in the text.
    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    RegEx functions

    Regular Expressions (RegExp) is a shorthand syntax for manipulating text. In this implementation it can be used to reformat text using some relatively simple rules.The two input fields are text to match and text to replace.
    The simplest replacement is an exact match. Just type the text to search for and the text to replace it with.For more complex replacements matching single letters, numbers or characters in the text is surrounded by [] and to match everythin except [^]. So for example matching all alphanumerics would be [A-Za-z0-9].There are a number of special escpae characters

    • \t = tab
    • \r = CR
    • \n = LF
    • . = wildcard
    • \w = any word character
    • \W = any non-word character
    • \s = white-space
    • \S = non white-space
    • \d = a digit
    • \D = a non-digit

    Input formats for text and keys

    Do RegExp the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126
    RegExp should contain only all prinatable characters with ASCII values from 32 to 126
    Replace should contain only all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Wikipedia Regex

    Cross sum calculations

    Cross sums are used occasionally in Geocaching to convert text to single digits by converting each letter to its number equivalent. There are many ways to do cross sums so beware.


    Input formats for text and keys

    Calculate cross sums the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    ISO 3166 Country Codes

    ISO 3166 is an international standard list of countries with 3 figure number codes and 2 and 3 letter codes as well as top level Internet domain codes.It is widely used in economic, trade and financial environments. It is used amoungst other things for the International Bank Account Number (IBAN) and the universal Bank Identifier Code (BIC, often called SWIFT code)


    Input formats for text and keys

    Decrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Encrypt the following characters are allowed in the text - ABCDEFGHIJKLMNOPQRSTUVWXYZ

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Wikipedia ISO 3166
    International Organization for Standardization (ISO) Country Codes - ISO 3166

    Roman Numerals

    Roman Numerals were most likly first written as symbols by the etruscans, an ancient civilisation from what is now Italy. The Romans probably adopted them and changed them to letters. However, there are many alternative theories as to their origin and early use.


    Input formats for text and keys

    From Roman to Number the following characters are allowed in the text - IVXLCDM
    From Number to Roman the following characters are allowed in the text - 0123456789

    The cipher text should be upper case. Lower case letters will (probably) be converted to upper case.

    Links to other implementations or information

    Cryptanalysis

    Basic Analysis

    Cryptanalysis is the art of decrypting a cipher without knowing what type it is and if a key is involved, without knowing the key.There are a few basic steps to placing the cipher into one of the major classes, these being:

    • Transposition
    • Codes (not technically ciphers)
    • Monoalphabetic Substitution
    • Polyalphabetic Substitution
    • Fractionation
    • Others

    Some basic characteristics of these are:

    Transposition:
    The letters in the plain text are not changed but rearranged therefore the normal distribution of letters in the alphabet is maintained and can therefore most often be easily identified.

    Codes:
    Each letter of the aphabet or each word is replaced by a code. This maybe a symbol or other way of representing the letters, just not by another letter in an alphabet.

    Monoalphabetic Substitution:
    Each letter of the alphabet is replaced by one other letter and the same letter is a replacement each time the letter is encountered. The normal letter distributions are not maintained but the relation between their frequencies is and this can easily be detected.

    Polyalphabetic Substitution:
    Each letter of the alphabet is replaced by another letter but this time the replacement is calculated by an algorithm.

    Fractionation:
    Fractionation is a combination of substitution and transposition. First the letters are replaced by substitution, most often by two or more other letters of numbers. These are then transposed before often being substituting back into the orginal alphabet. This disrupts the frequency counts so simple analysis is not possible.

    Others:
    More advanced cryptographic techniques have been developed starting with machine based encryption such as Enigma and Lorenz and computer based cryptology such as PGP and RSA.

    The basic steps for identifying the type of encryption are then:

    1. Letter frequency testing
    2. .....


    Input formats for text and keys



    Links to other implementations or information

    Compare unknown cipher against ACA cipher types
    Practical Cryptorgraphy cryptanalysis page

    Substitution Analysis

    Cryptanalysis is the art of decrypting a cipher without knowing what type it is and if a key is involved, without knowing the key.There are a few basic steps to placing the cipher into one of the major classes, these being:

    • Transposition
    • Codes (not technically ciphers)
    • Monoalphabetic Substitution
    • Polyalphabetic Substitution
    • Fractionation
    • Others

    Some basic characteristics of these are:

    Transposition:
    The letters in the plain text are not changed but rearranged therefore the normal distribution of letters in the alphabet is maintained and can therefore most often be easily identified.

    Codes:
    Each letter of the aphabet or each word is replaced by a code. This maybe a symbol or other way of representing the letters, just not by another letter in an alphabet.

    Monoalphabetic Substitution:
    Each letter of the alphabet is replaced by one other letter and the same letter is a replacement each time the letter is encountered. The normal letter distributions are not maintained but the relation between their frequencies is and this can easily be detected.

    Polyalphabetic Substitution:
    Each letter of the alphabet is replaced by another letter but this time the replacement is calculated by an algorithm.

    Fractionation:
    Fractionation is a combination of substitution and transposition. First the letters are replaced by substitution, most often by two or more other letters of numbers. These are then transposed before often being substituting back into the orginal alphabet. This disrupts the frequency counts so simple analysis is not possible.

    Others:
    More advanced cryptographic techniques have been developed starting with machine based encryption such as Enigma and Lorenz and computer based cryptology such as PGP and RSA.

    The basic steps for identifying the type of encryption are then:

    1. Letter frequency testing
    2. .....


    Input formats for text and keys

    Analyse text the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Compare unknown cipher against ACA cipher types
    Practical Cryptorgraphy cryptanalysis page

    Transposition Analysis

    Cryptanalysis is the art of decrypting a cipher without knowing what type it is and if a key is involved, without knowing the key.There are a few basic steps to placing the cipher into one of the major classes, these being:

    • Transposition
    • Codes (not technically ciphers)
    • Monoalphabetic Substitution
    • Polyalphabetic Substitution
    • Fractionation
    • Others

    Some basic characteristics of these are:

    Transposition:
    The letters in the plain text are not changed but rearranged therefore the normal distribution of letters in the alphabet is maintained and can therefore most often be easily identified.

    Codes:
    Each letter of the aphabet or each word is replaced by a code. This maybe a symbol or other way of representing the letters, just not by another letter in an alphabet.

    Monoalphabetic Substitution:
    Each letter of the alphabet is replaced by one other letter and the same letter is a replacement each time the letter is encountered. The normal letter distributions are not maintained but the relation between their frequencies is and this can easily be detected.

    Polyalphabetic Substitution:
    Each letter of the alphabet is replaced by another letter but this time the replacement is calculated by an algorithm.

    Fractionation:
    Fractionation is a combination of substitution and transposition. First the letters are replaced by substitution, most often by two or more other letters of numbers. These are then transposed before often being substituting back into the orginal alphabet. This disrupts the frequency counts so simple analysis is not possible.

    Others:
    More advanced cryptographic techniques have been developed starting with machine based encryption such as Enigma and Lorenz and computer based cryptology such as PGP and RSA.

    The basic steps for identifying the type of encryption are then:

    1. Letter frequency testing
    2. .....


    Input formats for text and keys

    Analyse text the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Compare unknown cipher against ACA cipher types
    Practical Cryptorgraphy cryptanalysis page

    BiGram Analysis

    Cryptanalysis is the art of decrypting a cipher without knowing what type it is and if a key is involved, without knowing the key.There are a few basic steps to placing the cipher into one of the major classes, these being:

    • Transposition
    • Codes (not technically ciphers)
    • Monoalphabetic Substitution
    • Polyalphabetic Substitution
    • Fractionation
    • Others

    Some basic characteristics of these are:

    Transposition:
    The letters in the plain text are not changed but rearranged therefore the normal distribution of letters in the alphabet is maintained and can therefore most often be easily identified.

    Codes:
    Each letter of the aphabet or each word is replaced by a code. This maybe a symbol or other way of representing the letters, just not by another letter in an alphabet.

    Monoalphabetic Substitution:
    Each letter of the alphabet is replaced by one other letter and the same letter is a replacement each time the letter is encountered. The normal letter distributions are not maintained but the relation between their frequencies is and this can easily be detected.

    Polyalphabetic Substitution:
    Each letter of the alphabet is replaced by another letter but this time the replacement is calculated by an algorithm.

    Fractionation:
    Fractionation is a combination of substitution and transposition. First the letters are replaced by substitution, most often by two or more other letters of numbers. These are then transposed before often being substituting back into the orginal alphabet. This disrupts the frequency counts so simple analysis is not possible.

    Others:
    More advanced cryptographic techniques have been developed starting with machine based encryption such as Enigma and Lorenz and computer based cryptology such as PGP and RSA.

    The basic steps for identifying the type of encryption are then:

    1. Letter frequency testing
    2. .....


    Input formats for text and keys

    Analyse text the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Compare unknown cipher against ACA cipher types
    Practical Cryptorgraphy cryptanalysis page

    XGram Analysis

    Cryptanalysis is the art of decrypting a cipher without knowing what type it is and if a key is involved, without knowing the key.There are a few basic steps to placing the cipher into one of the major classes, these being:

    • Transposition
    • Codes (not technically ciphers)
    • Monoalphabetic Substitution
    • Polyalphabetic Substitution
    • Fractionation
    • Others

    Some basic characteristics of these are:

    Transposition:
    The letters in the plain text are not changed but rearranged therefore the normal distribution of letters in the alphabet is maintained and can therefore most often be easily identified.

    Codes:
    Each letter of the aphabet or each word is replaced by a code. This maybe a symbol or other way of representing the letters, just not by another letter in an alphabet.

    Monoalphabetic Substitution:
    Each letter of the alphabet is replaced by one other letter and the same letter is a replacement each time the letter is encountered. The normal letter distributions are not maintained but the relation between their frequencies is and this can easily be detected.

    Polyalphabetic Substitution:
    Each letter of the alphabet is replaced by another letter but this time the replacement is calculated by an algorithm.

    Fractionation:
    Fractionation is a combination of substitution and transposition. First the letters are replaced by substitution, most often by two or more other letters of numbers. These are then transposed before often being substituting back into the orginal alphabet. This disrupts the frequency counts so simple analysis is not possible.

    Others:
    More advanced cryptographic techniques have been developed starting with machine based encryption such as Enigma and Lorenz and computer based cryptology such as PGP and RSA.

    The basic steps for identifying the type of encryption are then:

    1. Letter frequency testing
    2. .....


    Input formats for text and keys

    Analyse text the following characters are allowed in the text - all prinatable characters with ASCII values from 32 to 126


    Links to other implementations or information

    Compare unknown cipher against ACA cipher types
    Practical Cryptorgraphy cryptanalysis page