A Columnar Transposition cipher in a contemporary setting
A simple cryptographic method, a type of columnar transposition cipher, is described which may be used in series with other methods to provide practical hybrid encryption. The method involves the use of a deterministic Cryptographic Pseudo Random Number Generator (CPRNG) to specify an unbiased random transposition of blocks of plain-text or intermediate text. The decryption process involves applying a reverse transposition at the appropriate stage. The method may be applied at a single stage or several stages. The unit of transposition may be a bit or a byte or larger block. The method, when added in series with existing encryption methods, can deter attacks which exploit known weaknesses. The method could be applied at several scales in order to obscure structures within the plaintext, e.g. at the bit level, to obscure the almost fixed transmission headers; at the computer word-level, to disguise application record structures. Two (incompatible) outline implementations are presented. One for use with a block cipher and one for use with a stream cipher The specification of necessary configuration parameters required to amend or construct a software or hardware implementation is avoided in this preliminary article. Introduction Columnar Transposition Ciphers have been known for some time but I was unable to find any article on the combination of two simple methods in which a CPRNG is used to both provide a pseudo random stream for a one time pad stream-cipher and to specify a reversible random permutation of the cipher-text to form the code-word of a columnar transposition. There are several methods of constructing random permutations. The method due to Fisher and Yates with improvements due to Durstenfeld [Durstenfeld_1964][Wikipedia] has a very small code footprint and is believed to be free of bias. It requires the generation of numbers 1 Email: weprct@gmail.com The author grants IACR a non-exclusive and irrevocable license to distribute the article under the CC BY-NC (creative commons attribution-noncommercial) license