Porta Cipher
Introduction §
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 algorithm used here is the same as that used by the American Cryptogram Association. Another source is Helen Fouche Gaines book "Cryptanalysis".
The Algorithm §
The 'key' for a porta cipher is a key word. e.g. 'FORTIFICATION'
The Porta Cipher uses the following tableau to encipher the plaintext:
Keys| a b c d e f g h i j k l m n o p q r s t u v w x y z --------------------------------------------------------- A,B | n o p q r s t u v w x y z a b c d e f g h i j k l m C,D | o p q r s t u v w x y z n m a b c d e f g h i j k l E,F | p q r s t u v w x y z n o l m a b c d e f g h i j k G,H | q r s t u v w x y z n o p k l m a b c d e f g h i j I,J | r s t u v w x y z n o p q j k l m a b c d e f g h i K,L | s t u v w x y z n o p q r i j k l m a b c d e f g h M,N | t u v w x y z n o p q r s h i j k l m a b c d e f g O,P | u v w x y z n o p q r s t g h i j k l m a b c d e f Q,R | v w x y z n o p q r s t u f g h i j k l m a b c d e S,T | w x y z n o p q r s t u v e f g h i j k l m a b c d U,V | x y z n o p q r s t u v w d e f g h i j k l m a b c W,X | y z n o p q r s t u v w x c d e f g h i j k l m a b Y,Z | z n o p q r s t u v w x y b c d e f g h i j k l m a
*There are a few slightly different tableaus floating around the net, I have gone with the one used by the ACA, also referenced in Helen Fouche Gaines book "Cryptanalysis".
To encipher a message, repeat the keyword above the plaintext:
FORTIFICATIONFORTIFICATIONFO DEFENDTHEEASTWALLOFTHECASTLE
Now we take the first key letter 'F', and find it on the first column (the key column containing two letters) on the tableau. Then, we move along the 'F' row of the tableau until we come to the column with the 'D' at the top (The 'D' is the first plaintext letter), the intersection is our ciphertext character, 'S'. The same process is repeated for all the characters.
So, the ciphertext for the above plaintext is:
FORTIFICATIONFORTIFICATIONFO
DEFENDTHEEASTWALLOFTHECASTLE
synnjscvrnrlahutukucvryrlany
You may notice that it is possible for two different keywords to produce exactly the same enciphered message. The encryption and decryption process for this cipher is identical, so encrypting a piece of text twice with the same key will return the original text.
Javascript Example §
Plaintext
keyword =
Ciphertext
Cryptanalysis §
Because of the reciprocal alphabets used, it is impossible for any letter from one half of the alphabet (A-M or N-Z) to be replaced with a letter from the same half. Let's say we have a cryptogram sequence HEP, can this decrypt to THE? No, because E cannot be enciphered as H. The same logic can rule out any of the common trigrams THA,AND,ENT,ION,TIO,FOR, and many others. One possible decryption would be STH.
The porta cipher can be broken the same way as a Vigenere Cipher, for a guide on how to break vigenere ciphers see here for how to do it automatically.
When trying to break the Porta cipher, the first step is to determine the key length. This page describes how to use the Index of Coincidence to determine the key length for the Vigenere, the same process can be used for the Porta. Once this is known, we can start trying to determine the exact key.
References §
- [1] The ACA(American Cryptogram Association) has a good description of the encryption/decryption process.
- [2] Helen Fouche Gaines book "Cryptanalysis, A study of ciphers and their solution.", Dover, 1956.
Further reading
We recommend these books if you're interested in finding out more.