In article <[EMAIL PROTECTED]>,
Mike Stay  <[EMAIL PROTECTED]> wrote:
> Consider a cipher in which the key size and block size are equal, such
> as AES-128.  The key specifies a pseudo-random permutation of the
> plaintexts, producing a ciphertext.  [...] It's not
> necessarily true, however, that a plaintext specifies a permutation of
> the keys [...]
> 
> What are the pros/cons of having only one key take a given plaintext to
> a given ciphertext? 

The pro is that you get a more useful primitive; for instance, it looks
like a nice property to have if you want to build a hash function out of
the cipher using Davies-Meyer mode.

The con is that there are economies of scale in breaking this type of cipher.

Consider a cipher with 64-bit block size and key size, with the property
that when you fix a plaintext p the map k |-> E(k,p) is always a permutation.
(Some people call this object a multipermutation.)

Then the cipher can be broken with a time-space tradeoff that needs 2^64
work for the precomputation and 2^32 space.  After the precomputation, each
subsequent key can be recovered with only one chosen plaintext and 2^32 work.

The algorithm is due to, I believe, Yao et. al.  Alternatively, it may be
viewed as a straightforward extension of Hellman's time-space tradeoff.

Reply via email to