Tool to decode the Skip Cipher (Jump cipher) of reordering the letters of a message by selecting them after a N character jump.
Skip Cipher - dCode
Tag(s) : Transposition Cipher
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
The skip cipher (or jump cipher) is a transposition cipher which reorders the letters of a message by extracting a letter every $ n $ characters (by jumping $ n $ characters or skipping $ n-1 $). When the end of the message is reached, go back at the beginning (loop).
Example: The message DCODE is encrypted with a jump/skip value of $ 3 $ and starting with the first letter: D then $ 3 $ further D then, at the end of the message, continue counting back at first to get C, then E, then go back to the beginning one last time for the last letter O. The encrypted message is DDCEO
Another method (with the identical result) is to use an infinite series of contiguous messages and to extract the characters by jump of $ n $.
Example: DCODE becomes by this method and jumps of $ 3 $: DDCEO
For encryption to work, it is necessary to use a jump value that is not prime with the length of the message (see below).
Decryption requires knowledge of the $ s $ value of the jump.
Step 1: Create an empty array numbered from $ 0 $ to $ N $ with $ N $ the length of the message.
Step 2: take the $ i $-th letter of the encrypted message and place it in the array in $ (i-1) \times s \mod N $
The plain message is the contents of the array after placing the $ N $ letters of the message.
Example: Decrypt the message DDCEO (5 letters) coded with a jump of $ 3 $
Step 1: create the table: [_][_][_][_][_]
Step 2: the letter D in position $ 1 $ of the message is placed in position $ (1-1) \times 3 = 0 $ in the table: [D][_][_][_][_]
Step 2: the letter D in position $ 2 $ of the message is placed in position $ (2-1) \times 3 = 3 $ in the table:' [D][_][_][D][_]'
etc. until [D][C][O][D][E] which is the plain message.
In order for encryption to work, the jump must be a coprime number with $ N $ (the number of characters in the message), that is, it does not share any divisor, otherwise the encryption will loop on itself and an encrypted message will never contain all the letters of the plain message.
Example: SKIP (length $ 4 $) can not be encrypted with a value like $ 2 $ ($ 2 $ and $ 4 $ are not coprime) otherwise the encrypted message would be SISI (the letters' K and P 'will never appear)
The first letter of the encrypted message is the first letter of the message if the starting position is 1.
Use the proposed Bruteforce search function on dCode that will attempt all possible jump values (coprime with N the length of the text)
The starting position of the cipher can be changed, starting at $ i $ the message is slightly modified.
Taking punctuation into account greatly affects the message (but complicates manual encryption / decryption)