Re: [TLS] Data volume limits

"Blumenthal, Uri - 0553 - MITLL" <> Wed, 16 December 2015 15:44 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 13DD51A038A for <>; Wed, 16 Dec 2015 07:44:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.208
X-Spam-Status: No, score=-4.208 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01, UNPARSEABLE_RELAY=0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mwnINV1EWCmU for <>; Wed, 16 Dec 2015 07:44:23 -0800 (PST)
Received: from (MX1.LL.MIT.EDU []) by (Postfix) with ESMTP id 05F7D1A0387 for <>; Wed, 16 Dec 2015 07:44:22 -0800 (PST)
Received: from ( by (unknown) with ESMTP id tBGFiLGc023753 for <>; Wed, 16 Dec 2015 10:44:21 -0500
From: "Blumenthal, Uri - 0553 - MITLL" <>
To: "" <>
Thread-Topic: [TLS] Data volume limits
Thread-Index: AQHRN33Tde9nh48KlkmRxpLGJ4HFm57NTcOpgAB95gCAABHcgP//xuuA
Date: Wed, 16 Dec 2015 15:44:20 +0000
Message-ID: <>
References: <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_D296D6CB213C9urillmitedu_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.15.21, 1.0.33, 0.0.0000 definitions=2015-12-16_07:2015-12-16,2015-12-16,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1511060000 definitions=main-1512160262
Archived-At: <>
Subject: Re: [TLS] Data volume limits
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Dec 2015 15:44:26 -0000

OK, let me try an extremely naïve approach.

Say, an adversary observes a ton of TLS traffic between A and B. Using approach that Watson and others outlined, he can now tell that this is not a truly random stream but a bunch of encrypted data. My question is, from practical real-world point of view - so what? (Of course, beyond the ability to publish a real paper that IND-* has been compromised :)

If there are practical consequences, like loss of confidentiality – I’m dying to hear the outline of a practical attack.
Uri Blumenthal

From: TLS <<>> on behalf of "Dang, Quynh" <<>>
Date: Wednesday, December 16, 2015 at 07:21
To: Eric Rescorla <<>>, "<>" <<>>
Subject: Re: [TLS] Data volume limits

Hi Eric,

I explained the issue before and some other people recently explained it again on this thread. AES has 128-bit block. Therefore, when there are 2^64  or more ciphertext blocks, there are likely collisions among the ciphertext blocks (the collision probability increases rapidly when the number of ciphertext blocks increases above 2^64 ( 2^n/2 in generic term) ).

However, the only information the attacker can gain from ANY pair of collided ciphertext blocks is that their corresponding plaintext blocks are probably different ones because the chance for them to be the same is 1/2^128 (1/2^n in generic term) and this is NOT better than a random guess. So, you don't lose anything actually.

As a pseudorandom function, AES completely fails under any mode when the number of ciphertext blocks gets above 2^64.  When the counter is effectively only 64 bits (instead of 96 bits as in TLS 1.3), the data complexity should be below 2^32 blocks because the same input block and the same key can be repeated 2^32 times to find a collision in the ciphertext blocks.  If you want a negligible collision probability, the number of data blocks should be way below 2^32 in this situation.

However, the confidentiality of the plaintext blocks is not lost at all as long as the counter number does not repeat.


From: TLS <<>> on behalf of Eric Rescorla <<>>
Sent: Wednesday, December 16, 2015 6:17 AM
To: Simon Josefsson
Subject: Re: [TLS] Data volume limits

On Wed, Dec 16, 2015 at 12:44 AM, Simon Josefsson <<>> wrote:
Eric Rescorla <<>> writes:

> Watson kindly prepared some text that described the limits on what's safe
> for AES-GCM and restricting all algorithms with TLS 1.3 to that lower
> limit (2^{36} bytes), even though ChaCha doesn't have the same
> restriction.

Can we see a brief writeup explaining the 2^36 number?

I believe Watson provided one a while back at:

I don't like re-keying.  It is usually a sign that your primitives are
too weak and you are attempting to hide that fact.  To me, it is similar
to discard the first X byte of RC4 output.

To be clear: I would prefer not to rekey either, but the consensus at IETF Yokohama
was that we were close enough to the limit that we probably had to. Would be
happy to learn that we didn't.


If AES-GCM cannot provide confidentiality beyond 64GB (which would
surprise me somewhat), I believe we ought to be careful about
recommending it.

Of course, the devil is in the details: if the risk is that the secret
key is leaked, that's fatal; if the risk is that the attacker can tell
whether two particular plaintext 128 byte blocks are the same or not in
the entire file, that can be a risk we can live with (similar to the
discard X bytes of RC4 fix).

I believe 64GB is within the range that people download in a web browser
these days.  More data intensive longer-running protocols often transfer
significantly more.