Messages sent by rotor machines were often divided into segments of perhaps 300 letters, each segment being enciphered separately, with its own randomly chosen initial rotor position.
If one is writing a simple encryption program in a language like BASIC, there is a clear advantage to doing something like this as well; it allows one to keep an entire block of the message in an array in memory, instead of doing multiple passes of encryption over a disk file. It is also particularly useful when transposition ciphers are being used among the steps in the process. Avoiding saving intermediate results on disk has speed advantages, and there are security advantages as well, although a discussion of dealing with swap files (in Microsoft Windows, IBM OS/2, and Linux) is beyond the scope of this discussion.
With computer encryption, the possibility occurs of turning message blocking into an additional factor contributing to the difficulty of cryptanalysis. The beginnings and endings of blocks could be concealed.
Here is a concrete example:
These rules are reproducible at the other end. The last rule, though, introduces some bias into the length of the last two blocks that a more complicated rule could avoid (the message should be divided into two parts, where the first part and the last part both have a minimum possible length of 128). One could, if one has the length of the entire message available initially, first calculate a division of the message into blocks, and then transpose the block lengths.
A more complicated program could use a different division of the messages into blocks for each phase of a multi-step encryption. One would simply need a pair of 383-byte buffers between each stage of encryption. And one might only divide the message into blocks for transposition phases, since such a division isn't needed for encrypting a message with a block cipher like DES or with a stream cipher as urgently as it is for transposition (and fractionation) stages.
Table of Contents