Main Page | Report this Page
 
   
Science Forum Index  »  Cryptography Forum  »  Greg Rose on eSTREAM / practical security of AEAD...
Page 1 of 1    
Author Message
Wolfgang Ehrhardt...
Posted: Sat Jul 19, 2008 8:54 am
Guest
On Mon, 14 Jul 2008 18:32:04 +0000 (UTC), ggr at (no spam) nope.ucsd.edu (Greg
Rose) wrote in Message-ID: <g5g634$fdc$1 at (no spam) ihnp4.ucsd.edu>:

[snip]
Quote:
The assumption for the security of a
plaintext-feedback stream cipher (as stated in the
Helix paper) is that:

1) as with all stream ciphers, the key/nonce
combination must not be reused by the encryptor

2) but also, the *recipient* has to go to great
lengths to ensure that the nonce is not reused,
and the result of decrypting a ciphertext whose
MAC doesn't check out must be discarded (that is,
treated as sensitive, secret information and not
revealed).

Now normally the recipient doesn't have that
second restriction! And it's a tough one... for
efficiency, it's quite likely that the ciphertext
buffer is being decrypted in place, so before you
even get to check the MAC, the plaintext is lying
around in a place where it might subsequently be
found. Or if there's some weakness in the
protocol, you might convince the reciever that
there isn't any MAC attached at all.

Isn't the argument 2) also valid for blockcipher based combined
encryption / authentication modes like EAX (at least to some extend)?

With EAX and a given ciphertext/tag you can first do the authenticate
pass and if the tag is correct do the decryption phase.

But this would have severe implications for the "on-line" property of
EAX and the situation is even worse for one pass AEAD schemes. Or am I
missing something obvious?

Is there a solution other than using small packet sizes and not using
"on-line" or streaming APIs?

Wolfgang
--
In order to e-mail me a reply to this message, you will have
to remove PLEASE.REMOVE from the address shown in the header
or get it from http://home.netsurf.de/wolfgang.ehrhardt
(Free open source Crypto, AES, CRC, Hash for Pascal/Delphi)
Greg Rose...
Posted: Sun Jul 20, 2008 6:00 am
Guest
In article <4881f185.2825793 at (no spam) news.individual.net>,
Wolfgang Ehrhardt <Wolfgang.Ehrhardt.PLEASE.REMOVE at (no spam) munich.netsurf.de> wrote:
Quote:
On Mon, 14 Jul 2008 18:32:04 +0000 (UTC), ggr at (no spam) nope.ucsd.edu (Greg
Rose) wrote in Message-ID: <g5g634$fdc$1 at (no spam) ihnp4.ucsd.edu>:

[snip]
The assumption for the security of a
plaintext-feedback stream cipher (as stated in the
Helix paper) is that:

1) as with all stream ciphers, the key/nonce
combination must not be reused by the encryptor

2) but also, the *recipient* has to go to great
lengths to ensure that the nonce is not reused,
and the result of decrypting a ciphertext whose
MAC doesn't check out must be discarded (that is,
treated as sensitive, secret information and not
revealed).

Now normally the recipient doesn't have that
second restriction! And it's a tough one... for
efficiency, it's quite likely that the ciphertext
buffer is being decrypted in place, so before you
even get to check the MAC, the plaintext is lying
around in a place where it might subsequently be
found. Or if there's some weakness in the
protocol, you might convince the reciever that
there isn't any MAC attached at all.

Isn't the argument 2) also valid for blockcipher based combined
encryption / authentication modes like EAX (at least to some extend)?

With EAX and a given ciphertext/tag you can first do the authenticate
pass and if the tag is correct do the decryption phase.

But this would have severe implications for the "on-line" property of
EAX and the situation is even worse for one pass AEAD schemes. Or am I
missing something obvious?

So, I didn't really make myself clear enough
above, sorry. Modes like EAX, CCM, et. al. should
also be used with the same sort of guidelines but
they are not nearly as fragile. If someone tampers
with an EAX-protected message, and the recipient
does something wrong like disclosing the recovered
plaintext anyway, really all that has happened is
that the attacker gets known ciphertext-plaintext
pairs (and obviously something that wasn't
supposed to be disclosed, is... but that wasn't
the mode's fault).

But with the plaintext-feedback kind of stream
cipher, the decryptor will start using the
incorrectly decrypted plaintext and feed it back
into the cipher state, which will incorrectly
decrypt more, and so on. The results of this
incorrect decryption will inevitably depend on the
internal state of the stream cipher. What's more,
the attacker can keep sending the same message
(and same nonce) with different small changes.
This opens up the stream cipher core to a kind of
differential attack that is normally outside the
attacker's capabilities, and so far most such
stream ciphers have proven vulnerable in this
scenario.

Quote:
Is there a solution other than using small packet sizes and not using
"on-line" or streaming APIs?

I'm not sure what you mean by this bit.

Greg.
--
Greg Rose
232B EC8F 44C6 C853 D68F E107 E6BF CD2F 1081 A37C
Qualcomm Australia: http://www.qualcomm.com.au
Wolfgang Ehrhardt...
Posted: Sun Jul 20, 2008 12:48 pm
Guest
On Sun, 20 Jul 2008 16:00:53 +0000 (UTC), ggr at (no spam) nope.ucsd.edu (Greg
Rose) wrote:

Quote:
But this would have severe implications for the "on-line" property of
EAX and the situation is even worse for one pass AEAD schemes. Or am I
missing something obvious?

So, I didn't really make myself clear enough
above, sorry. Modes like EAX, CCM, et. al. should
also be used with the same sort of guidelines but
they are not nearly as fragile. If someone tampers
with an EAX-protected message, and the recipient
does something wrong like disclosing the recovered
plaintext anyway, really all that has happened is
that the attacker gets known ciphertext-plaintext
pairs (and obviously something that wasn't
supposed to be disclosed, is... but that wasn't
the mode's fault).

[snip}

Is there a solution other than using small packet sizes and not using
"on-line" or streaming APIs?

I'm not sure what you mean by this bit.

Thank you Greg for the statement above, which put into my question in

which I described two "solutions": Use a packet / ciphertext that
fits into memory and only decrypt after verifying. The second part was
about avoiding the "incremental API" from the EAX spec, which decrypts
chunks of ciphertexts and updates the OMACs, i.e. plaintext has been
already "produced" when a (possibly invalid) tag arrives.

Wolfgang





--
In order to e-mail me a reply to this message, you will have
to remove PLEASE.REMOVE from the address shown in the header
or get it from http://home.netsurf.de/wolfgang.ehrhardt
(Free open source Crypto, AES, CRC, Hash for Pascal/Delphi)
 
Page 1 of 1       All times are GMT - 5 Hours
The time now is Tue Oct 07, 2008 10:38 pm