Subject: Re: [Cfrg] considering new topics for CFRG

From: Dan Brown <[email-masked]>
Date: Tue, 7 Jan 2014 02:50:46 +0000

Hi William,

I agree with your multiple PK algs suggestion, for parties who can afford it.

What about sym key algs? Maybe too costly for now?

By the way, this kind of idea goes back at least as far as 1999 from Johnson and Vanstone under the name of resilient cryptographic schemes.

Best regards,

Dan

From: William Whyte
Sent: Monday, January 6, 2014 5:45 PM
To: David McGrew
Cc: Sean Turner; [email-masked]
Subject: Re: [Cfrg] considering new topics for CFRG

Hi all,

> - Postquantum cryptography.   Signing algorithms based on hash functions

> (based on the work of Merkle and Hulsing) will not be too hard.

> Encryption based on codes would need more review, but should be possible; Bernstein and

> others have done good work in this area

> recently.   Other encryption and signature schemes could be considered

> as well.  Also useful would be parameter and algorithm guidance for postquantum security.

(full disclosure: my company, Security Innovation, holds the patents for the NTRU cryptosystems, which are among the leading candidates for use as post quantum algorithms. We've recently made the patents available to use under GPL or a range of other FOSS licenses -- see https://github.com/NTRUOpenSourceProject/ntru-crypto/blob/master/LICENSE.md, https://github.com/NTRUOpenSourceProject/ntru-crypto/blob/master/FOSS%20Exception.md).

I agree that postquantum crypto is important and CFRG has a valuable role to play in recommending algorithms for use.

However, I'd also like to see the internet community move away from using a single public key algorithm per message or session. Any data that's encrypted with a single public key algorithm is vulnerable to a single cryptographic breakthrough, whether that's a classical or quantum algorithm. An adversary who stores a large amount of historical traffic may well be able to decrypt it in the future. This is particularly the case with ECC and RSA-based ciphersuites because of the known threat from quantum computing, but any algorithm is potentially vulnerable.

I'd like to see some thought given to how different public key algorithms can be used in parallel so that a session has the strength of at least the strongest of them. For TLS this is in principle pretty easy -- split the master secret into two or more XORed strings, encrypt each with a different public key algorithm, XOR the decrypted results together (or use a key exchange algorithm to derive one or more of the XOR strings) -- but the details may be tricky and CFRG can help here.

Combined public key algorithms would help give improved protection to users against attacks yet to be discovered. It might also help with migration -- service providers might be unwilling to migrate directly to a newer algorithm like for example NTRU from a more widely understood one like for example ECDH, but using both in parallel gives the assurance associated with ECDH plus the (assumed) quantum resistance of NTRU.

In general, solutions based on a single public key algorithm run the risk of baking in a single point of failure. Migration from one solution to another will be hard; migrating from one single point of failure to another runs the risk that we'll have to migrate again, which would be extremely hard. Much better for the internet community to think about how to put in place a system that we can change parameters in (such as choice of algorithm) without having to change the underlying framework. This would fit in with the catalog of clear and strong recommendations that Paul Lambert mentioned in another mail: the catalog could contain different algorithms with different properties, allowing implementers to select a combination that gave the properties they want.

When potential new work areas are raised on CFRG, it's fair to ask who's going to actually do the work, so let me state for the record that Security Innovation is willing to commit resources to help get this work done within the CFRG in 2014 and onwards. We obviously have an interest in that we think it'll make adoption of NTRU easier, but it also seems like the right thing to do.

Cheers,

William

---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.

---

From: William Whyte <[email-masked]>
Date: Tue, 7 Jan 2014 17:04:08 -0500

Hi all,

(sorry for top-posting, hard to avoid with gmail web interface)

Dan Bernstein posted the following on the cryptography@randombits list
(edited):

>>Of course, the idea of using multiple cryptographic algorithms ... has
very little use, for several obvious reasons:

   * We have enough problems even getting _one_ algorithm deployed.

   * For applications with larger cost limits, we obtain much more

     security by pumping up the key size, rounds, etc. of a single

     algorithm rather than by combining algorithms.
<<

I'm not sure if this was in response to Dan Brown's suggestion of combining
symmetric key algorithms or mine of combining public key algorithms. On
combining symmetric key algorithms, I think I agree that there's unlikely
to be significant value. Symmetric algorithms are less likely to fail
catastrophically, and more importantly, your choice of symmetric algorithm
isn't locked in beforehand through your choice of certificate. (The fact
that AES has an algebraic structure gives me some cause for concern that a
catastrophic attack might be possible, but it's a very remote concern).

In case the comment was meant to be about combining public key systems, I
don't agree.

"We have problems getting one algorithm deployed": This is an argument for
architecting the system now to support flexbility. The worst time to start
deploying post-quantum crypto is when you need it; we should be thinking
now about making that transition as easy as possible, and a framework that
supports multiple algorithms is a framework that makes that transition easy.

"For applications with larger cost limits, we obtain much more security by
pumping up the key size, rounds, etc. ": This is true for symmetric crypto,
with a tip of the hat to AES's structure, but for public key crypto we gain
much more security against unforeseen advances in mathematics by combining
algorithms.

BTW, Dan Bernstein is having trouble posting to CFRG. I asked his
permission before posting this extract and hope it represents his views
fairly.

The rest of his cryptography@randombits mail noted that Certicom has
patents such as US7797539 on combining algorithms. I hadn't realised these
patents on such an obvious technique existed and hope that their existence
doesn't prove a barrier to moving ahead with this work.

Cheers,

William

On Mon, Jan 6, 2014 at 9:50 PM, Dan Brown <[email-masked]> wrote:

> By the way, this kind of idea goes back at least as far as 1999 from
> Johnson and Vanstone under the name of resilient cryptographic schemes.
>
> Best regards,
>
> Dan
>
> From: William Whyte
> (full disclosure: my company, Security Innovation, holds the patents for
> the NTRU cryptosystems, which are among the leading candidates for use as
> post quantum algorithms. We've recently made the patents available to use
> under GPL or a range of other FOSS licenses -- see
> https://github.com/NTRUOpenSourceProject/ntru-crypto/blob/master/LICENSE.md,
>
> https://github.com/NTRUOpenSourceProject/ntru-crypto/blob/master/FOSS%20Exception.md
> ).
>
>
> I agree that postquantum crypto is important and CFRG has a valuable role
> to play in recommending algorithms for use.
>
>
> However, I'd also like to see the internet community move away from using
> a single public key algorithm per message or session. Any data that's
> encrypted with a single public key algorithm is vulnerable to a single
> cryptographic breakthrough, whether that's a classical or quantum
> algorithm. An adversary who stores a large amount of historical traffic may
> well be able to decrypt it in the future. This is particularly the case
> with ECC and RSA-based ciphersuites because of the known threat from
> quantum computing, but any algorithm is potentially vulnerable.
>
>
> I'd like to see some thought given to how different public key algorithms
> can be used in parallel so that a session has the strength of at least the
> strongest of them. For TLS this is in principle pretty easy -- split the
> master secret into two or more XORed strings, encrypt each with a different
> public key algorithm, XOR the decrypted results together (or use a key
> exchange algorithm to derive one or more of the XOR strings) -- but the
> details may be tricky and CFRG can help here.
>
>
> Combined public key algorithms would help give improved protection to
> users against attacks yet to be discovered. It might also help with
> migration -- service providers might be unwilling to migrate directly to a
> newer algorithm like for example NTRU from a more widely understood one
> like for example ECDH, but using both in parallel gives the assurance
> associated with ECDH plus the (assumed) quantum resistance of NTRU.
>
>
> In general, solutions based on a single public key algorithm run the risk
> of baking in a single point of failure. Migration from one solution to
> another will be hard; migrating from one single point of failure to another
> runs the risk that we'll have to migrate again, which would be extremely
> hard. Much better for the internet community to think about how to put in
> place a system that we can change parameters in (such as choice of
> algorithm) without having to change the underlying framework. This would
> fit in with the catalog of clear and strong recommendations that Paul
> Lambert mentioned in another mail: the catalog could contain different
> algorithms with different properties, allowing implementers to select a
> combination that gave the properties they want.
>
>
> When potential new work areas are raised on CFRG, it's fair to ask who's
> going to actually do the work, so let me state for the record that Security
> Innovation is willing to commit resources to help get this work done within
> the CFRG in 2014 and onwards. We obviously have an interest in that we
> think it'll make adoption of NTRU easier, but it also seems like the right
> thing to do.
>
>
> Cheers,
>
>
> William
>
>
> This transmission (including any attachments) may contain confidential
> information, privileged material (including material protected by the
> solicitor-client or other applicable privileges), or constitute non-public
> information. Any use of this information by anyone other than the intended
> recipient is prohibited. If you have received this transmission in error,
> please immediately reply to the sender and delete this information from
> your system. Use, dissemination, distribution, or reproduction of this
> transmission by unintended recipients is not authorized and may be unlawful.
>
>