[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 128 bit block ciphers



On Mon, 29 Jun 1998, Werner Koch wrote:

> I am just curious:
> 
> How does OpenPGP cope with 128 bit block ciphers (AES)?
> 
>    The data is encrypted in CFB mode, with a CFB shift size equal to
>    the cipher's block size.  The Initial Vector (IV) is specified as
>    all zeros.  Instead of using an IV, OpenPGP prefixes a 10-octet
>    string to the data before it is encrypted.  The first eight octets
>    are random, and the 9th and 10th octets are copies of the 7th and
> 
> Wouldn't it be better to prefix it with 16 random bytes for 128 bit
> ciphers?  Maybe we can remove the special CFB mode for these ciphers?

I spotted this a few months ago.  Technically the prefix should be the
blocksize plus 2 and the text should be changed everywhere (including the
long description of the reset) replacing 8 with Blocksize.  I have these
as #defines in my implmentation but they are likely to become variables,
so I was ready for this.

For that matter, what is the block size of a stream cipher?  (Applause
with the sound of one hand clapping if you can answer correctly).  Or one
that is a number of bits that is not divisible by 8? 

Later the spec says:

   After encrypting the first 10 octets, the CFB state is resynchronized
   if the cipher block size is 8 octets or less.  

but as you point out, using an IV of all zeros might still compromise the
first few bytes (of possibly known plaintext).  The resynch should be BS+2
(similar problems occur with blocksizes smaller than 8).

Since no listed algorithm used a different block size it wasn't an issue
(and why I will oppose adding any new ones, and am strongly suggesting
deleting some).

It would make sense to change the places that use "8" to Blocksize and
"10" to Blocksize+2, and do stream ciphers without any CFB (but prefix it
with either 4 or 10 bytes, the last pair being copies of the penultimate
pair).  This mod will have to be in the next version of the spec.

--- reply to tzeruch - at - ceddec - dot - com ---

Just say MAY and nits go away.