[2754] in cryptography@c2.net mail archive
On Mixture of Stream and Block Cipher
daemon@ATHENA.MIT.EDU (Mok-Kong Shen)
Wed May 27 08:14:49 1998
Date: Wed, 27 May 1998 12:41:20 +0100
From: Mok-Kong Shen <mok-kong.shen@stud.uni-muenchen.de>
To: cryptography@c2.net
According to Menezes et al., Handbook of Cryptography, block ciphers
are memoryless while stream ciphers have memory and are also called
state ciphers. The distinction between the two types is nevertheless
not definitive.
Most present day stream ciphers appear to apply XOR to the plain text
stream and the key stream. Consequently there is confusion but not
diffusion which is characteristic of block ciphers. However, if the
plain text and the key stream are e.g. in 32 bit words, then one can
perform instead of XOR an addition modulo 2^32, which results in some
diffusion owing to carry-overs at the bit positions. One can say that
this is block cipher, the block size being 32, hence there is diffusion
as expected. On the other hand the key stream is variable from word to
word and one can say that this is a stream cipher on units of 32 bits.
Whatever the terminology should be, which is rather unimportant, I
think that using the addition modulo 2^32 is more desiralbe than XOR.
In the above the diffusion is limited to within a group of 32 bits.
But we can easily do better than that. Firstly, we can do permutations
of the bytes or half bytes of a set of n words of plain text
(permutations of the bits would be more costly). Secondly, we can do
circular shifts of the words after the permutation. These permutations
and shifts can be either fixed or pseudo-randomly determined. Lastly,
we can use many rounds of the said sequence of operations in order to
achieve higher strength.
Comments, critiques and suggestions for improvement are sincerely
solicited.
M. K. Shen