This is mostly addressed to the members with experience in Computer Science but all input is welcome.
Today I participated in a workshop on cipher algorithms. The lecturer introduced several old and obsolete algorithms.
One of these was the ADFGVX cipher.
The Algorithm in a nutshell:
Code: Select all
Step 1: You have a 6x6-Matrix. This matrix is filled with 26 letters and 10 digits. How you fill the matrix is your choice.
Optionally you can add a substitution keyword.
(remove all multiple occurances of the letters: emergency -> emrgncy and add it to the matrix)
A D F G V X
A a b c d e f
D g h i j k l
F m n o p q r
G s t u v w x
V y z 0 1 2 3
X 4 5 6 7 8 9
Step 2: Substitute each character in your message with the corresponding pair of identifiers. Row Identifier first, then Column Identifier.
Using the matrix from Step 1:
Stardestroyerdotnet is substituted to GAGDAAFXGDAGAVGAGDFXFFVAAVFXAGFFGDFDAVGD
Step 3:
Declare a transposition keyword. This keyword is used as column Identifier for a new matrix without Row Identifier. Add placeholders to get a full matrix.
e.g.:
H U S K E R
g a g d a a
f x g d a g
a v g a g d
f x f f v a
a v f x y g
f f g d f d
a v g d a a
Step 4: Order the letters of the transposition keyword alphabetically. Move the columns accordinlgy
HUSKER -> EHKRSU
E H K S R U
a g d g a a
a f d g g x
g a a g d v
v f f f a x
y a x f g v
f f d g d f
a a d g a v
Step 5: Transmit the Rows
AGDGAA AFDGGX GAAGDV VFFFAX YAXFGV FFDGDF AADGAV
Step 6: To decode the message reverse the algorithm and use the transposition keyword
and the substitution matrix which have to be known to both sender and receiver
The lecturer described the "ADFGVX cipher" as a polyalphabetic cipher[1]
and no other participant voiced a differing oppinion.
Though as shown in the above description the substitution in Step2 is monoalphabetic[2] and it is the only substitution in the whole algorithm.
This is acknowledged by the lecturer and the other participants though they still claim the algorithm to be a polyalphabetic cipher as a whole.
Due to time constraints we had to abandon the discussion.
On Monday, Nov 15th the workshop will meet again and I have until then to gather arguments for my position. I plan to use the following argumentation:
- the terms monoalphabetic and polyalphabetic apply only to substitutions - as the substitution is monoalphabetic, which has been acknowledged already as correct, the algorithm is monoalphabetic
- monoalphabetic substitution replaces a plaintext character with exactly one cipher character - in this algorithm this character is the pair of row identifier and column identifier of the plaintext character in the substitution matrix
- the transposition in step 4 does neither change the amount of characters used to substitute the plaintext (save for filler characters) nor does it substitute again - it only disjoins the pairs of letters that act as a character in the substitution in Step 2
Did I miss something?
Are my arguments solid?
Thank you for taking the time to read this.
[1]
A polyalphabetic cipher substitutes a character from the plaintext with
a single character using several different substitution alphabets.
e.g.:
A -> B or C or D read: The character A is substituted by either 'B' or 'C' or 'D'
[2]
A monoalphabetic cipher substitutes a character from the plaintext with exactly one character from a substitution alphabet.
e.g.:
A -> B read: The character A is substituted with the character 'B'
or
A -> 'BC' read: The character A is substituted with the character 'BC'