On Wed, Jul 28, 2004 at 16:16:10 -0400,
Greg Stark <gsstark@mit.edu> wrote:
>
> Bruno Wolff III <bruno@wolff.to> writes:
>
> > That depends on the kind of queries. Searching for exact matches should work
> > fine. Some other things can be done in special cases.
>
> If searching for exact matches works then you're using a naive encryption
> system. The problem is that it also means your database is vulnerable to
> dictionary attacks. Good encryption systems will include random padding to
> ensure that you can't attack it by merely guessing many possible plaintexts
> and verifying to see if any match.
IVs act to make the key appear longer. This is especially useful when humans
are picking passphrases that are used to generate the key. If you control
what the actual keys are, then you can make dictionary attacks impractical.
However, there still would be the problem that identical items in the
database would be identical. Which, depnding on your application, might
be a problem because of information leakage.