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

Re: stream ciphers (Re: 128 bit block ciphers)



Adam Back says:
> > First - an observation. Just like a block cipher must have an IV (PGP
> > side-stepped this by prepending the message with random stuff), a
> > stram cipher must have a stream offset.
> 
> I presume by a stream offset you mean that you spin the stream cipher
> PRNG for the published offset number of bytes, before using it to
> encrypt data.

Yes, that hat is not my idea, not any more than using IV for block
ciphers - and for precisely the same purpose.

> This has a number of problems/added complexities I think:
> - you have to remember a current offest to avoid re-using offsets
>   (adds state to symmetric crypto where there is none currently)

Similarly to having to remember not to re-use IVs.

> - you incur the performance penalty of spinning the PRNG by the offset
>   number of bytes (eg could be 100s of megs).

Possibly, but again, I'm not "inventing" it - just sharing the crypto
rules of using stream ciphers with the list. "Don't blame the messenger" (:-)

> > For the keys to have a stream offset can mean the difference between
> > secure and insecure.
> Another way to do things which avoids some of the problems with
> offsets is to have a random, or at least non-repeating IV, which is
> sent in the clear.  Then use the IV as part of the key.  eg.
> 
> rc4-key-shedule( iv || s2k( passphrase ) )

A possibility. Would need more time to evaluate it...

> ..... 
> Now you encrypt with rc4 session keys sk1 and sk2 for two separate
> messages m1 and m2, so the SKESK packets contain:
> 
>   skesk1 = rc4-encrypt( rc4key, sk1 ) = rc4out xor sk1
>   skesk2 = rc4-encrypt( rc4key, sk2 ) = rc4out xor sk2

Which is why there must be an offset.

> you can then recover sk1 xor sk2:

You might want to take a look at SEAL. It provides the offset VERY
elegantly. Unfortunately it's patented...

> Leaking of xors of sets of keys means that people can observe which
> keybits are the same on a set of messages.  This seems like a leak you
> would be better off without.

Oh, of course! (:-)
-- 
Regards,
Uri		uri@xxxxxxxxxxxxxx
-=-=-=-=-=-=-
<Disclaimer>