From: daw@mozart.cs.berkeley.edu (David Wagner) Newsgroups: sci.crypt Subject: Re: BIG question about using and storing IV's Date: Thu, 6 Sep 2001 16:52:29 +0000 (UTC) Message-ID: <9n89kd$nb5$2@agate.berkeley.edu> Mark Wooding wrote: >David Wagner wrote: >> Actually, merely hashing the message (with, say, SHA, or some >> other unkeyed hash) and then CBC-encrypting is not sufficient >> to ensure security. > >A quick back-of-the-envelope computation shows that a CBC-encrypted hash >isn't /too/ bad, [...] I'm not sure I understand what you mean, but there's an attack. Suppose you want to make the receiver think message M was sent, even thought the sender would never authorize this. Then you should construct M' = M || H(M) || X, where X is arbitrary and where || denotes concatenation (it better be at block boundaries). Ask the sender to transmit M'; he will form M' || H(M'), encrypt it with CBC mode, and transmit the result. Now you can truncate the ciphertext, snipping it just before the "X" part, and the receiver will think M was sent, which is an integrity failure.