[2754] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post