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

Re: Why is blowfish so slow? Other fast algorithms?



> 
> At 07:32 PM 1/23/96 -0500, David A Wagner wrote:
> >If you want authentication, you must use a crypto-strength MAC.
> >Encryption (be it RC4, DES, etc.) is not enough.
> 
> Not so:  If the message is encrypted and checksummed with a simple
> not non cryptographic checksum, this gives you everything a MAC 
> gives you, plus the message is secret.
> 

Not true.

For instance, suppose you append a standard simple CRC-32 of the
plaintext, and then encrypt with CBC mode.  Because CRC-32 is linear,
it's trivial to construct a collision by flipping some of the first
33 bits of the plaintext; but this, in turn, is easy to do by just
flipping the corresponding bits in the IV.  (The attack is even
easier if you're using a stream cipher.)

I'm sure you can come up with a non-cryptographic checksum which looks
(at first glance) like it'll work ok.  Maybe you'll be completely safe.
Still, the security of any such scheme will inherently depend on very
subtle issues of whether the encryption and the checksum can interact--
and there are probably only a handful of people in the free world who
are really qualified to do a full analysis of these effects, I'd guess.

You can use a non-crypto checksum to attempt to provide integrity if
you want, I suppose.  Is that prudent system engineering?  Personally,
I don't think so.


At the risk of sounding like a broken record, I suggest
  Design principle: if you want message integrity/authentication
  guarantees, use a crypto-strength MAC, damnit!

> MACs are only useful in the strange and unsual case where you want
> authentification using a symmetric key, but you want to transmit in
> the clear.

False.  MACs are useful & necessary in a encrypted packet network,
to prevent message tampering by active attackers.  (Unless you prefer
to sign *every* packet with RSA, which is insanely slowwww...)

MACs are useful in conjunction with encryption, I should add.  They're
not mutually exclusive. :-)