OSM CIPHER

ENCRYPT / DECRYPT
HASH
RANDOM

Group size:


Single group size:

Mandatory settings

Key: The key is case-sensitive and must be between 1 and 64 alphanumeric characters long. Underscore ("_") and period (".") are also supported. You can generate a random key for the stronger encryption.

Group size: The encryption process occurs in blocks, using chunks of the input and mixing them together. Group size determines how many characters will be encrypted together at a time. If multiple group sizes are entered the encryption will cycle through them. A group size of "1" will not provide encryption. Extra characters may be padded at the end of the text to meet the selected group size.

Optional settings

Hash: Generates a unique 64-character string from a keyword. This new key appears random and provides more security than a short and simple keyword.

Filler: Random characters are added to the plaintext (input) before encryption to make cryptanalysis more difficult. One random character is added per group. These characters are removed during decryption.

Stream: The keyed alphabet is used as a keystream from which characters are combined with the plaintext before encryption. The output appears random and makes cryptanalysis more difficult.


0

SANITIZE

Input: Acceptable characters for input are: A-Z, a-z, 0-9, space (" "), and period ("."). Spaces are treated as underscores when encrypting. If you include other characters you must sanitize the input or the encryption process will fail.

Sanitize: Sanitizing the text remove all other characters, symbols, and punctuation. Exclamation marks ("!") and question marks ("?") will be converted to periods. Only sanitize the text when encrypting.

Character count: The number will turn blue when the input length evenly matches the selected group size(s). If the lengths do not match then random characters will be padded to the end of the input when encrypting. This is irrelevant when decrypting.


ENCRYPT
DECRYPT
CLEAR
COPY
INFORMATION

KEYED ALPHABET

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .

The keyed alphabet takes your key, removes duplicates, and appends all remaining characters (A-Z, a-z, 0-9, underscore, and period) to the end. A longer key creates a more unique alphabet. This 64-character alphabet is used to fill the cipher table below.


CIPHER TABLE

0 1
0 1 0 1
0 1 0 1 0 1 0 1
0 0 0 18 11 12 13 14 15 16 17
1 18 21 22 23 24 25 26 27
1 0 28 31 32 33 34 35 36 37
1 38 41 42 43 44 45 46 47
1 0 0 48 51 52 53 54 55 56 57
1 58 61 62 63 64 65 66 67
1 0 68 71 72 73 74 75 76 77
1 78 81 82 83 84 85 86 87

The cipher table arranges the keyed alphabet onto an extended (8x8) Polybius square which is used to encrypt or decrypt the message.

Input characters are identified by their location along three pairs of rows and columns (identified by 0 and 1). The location data is mixed together and new output characters are derived. This method combines transposition and fractionation to achieve diffusion.

You can click a letter in the table to see the location data for that letter.


Named Osm after the Czech word for "eight" - the central component of this cipher is an 8x8 Polybius square. This cipher was inspired by Felix Delastelle's bifid cipher. Like bifid, it was designed to be possible entirely with pen and paper, aside from a few additions such as the stream and hash features.

This cipher is untested and was created for fun. If you require strong encryption use a modern cryptographic solution.

LEARN

This section will show how to do it by hand.

VERSION 1.3
VERSION 1.2
VERSION 1
USE DARK THEME