Thanks Martin.  All makes sense, and I'll incorporate in a revision.  Though at 
this point changing the word "hybrid" to "composite" would be a rather big 
rewrite so I'll omit that unless there are very strong objections to the word 
hybrid.

Douglas


> On Jul 6, 2021, at 21:53, Martin Thomson <m...@lowentropy.net> wrote:
> 
> I just took a look.  I didn't read the (large) appendices, though I 
> appreciate that they have value.
> 
> The draft is largely in good shape.  I have a few minor concerns.
> 
> I don't think that you want to reserve the hybrid_private_use(0x2F00..0x2FFF) 
> range of values.  There were specific reasons for an FFDHE range that I don't 
> think apply if we constrain this design to TLS 1.3 and higher (as we should). 
>  The same applies to the 0x02.. prefix you suggest for the use of hybrid 
> codepoints.
> 
> I find the emphasis on the NIST process a little strong for what is a 
> permanent artifact.  It is OK to note its existence as motivation for the 
> work, but I would avoid over-emphasis.  For example:
> 
> OLD:
>   Moreover, it is possible that even by the end of the NIST Post-
>   Quantum Cryptography Standardization Project, and for a period of
>   time thereafter, conservative users may not have full confidence in
>   some algorithms.
> NEW:
>   Moreover, it is possible that after next-generation algorithms are defined, 
> and for a period of
>   time thereafter, conservative users may not have full confidence in those 
> algorithms.
> 
> and 
> 
> OLD:
>   In the context of the NIST Post-Quantum Cryptography Standardization
>   Project, key exchange algorithms are formulated as key encapsulation
>   mechanisms (KEMs), which consist of three algorithms:
> NEW:
>   This document models key agreement as key encapsulation
>   mechanisms (KEMs), which consist of three algorithms:
> 
> Please avoid "defining" codepoints, even in examples:
> 
> OLD:
>   For example, a future document could specify that hybrid value 0x2000 
> corresponds to
>   secp256r1+ntruhrss701, and 0x2001 corresponds to x25519+ntruhrss701.
> NEW:
>   For example, a future document could specify that one codepoint corresponds 
> to
>   secp256r1+ntruhrss701, and another corresponds to x25519+ntruhrss701.
> 
> Finally, the use of the word "hybrid" is awkward.  Maybe "composite" is a 
> less-heavily overloaded term that accurately captures the intent; with an 
> antonym of "unitary" or "discrete".
> 
> When you talk about concatenation, it might pay to cite the relevant 
> appendix.  I would also note that the goal is that when the composed elements 
> are not fixed-length, a length prefix might be used to ensure that both 
> secrets contribute all of their entropy without being exposed to a weakness 
> in the other.  (You might say that the composition is injective.)
> 
> Section 4 includes questions to which I think answers can be given now:
> 
> *Larger public keys and/or ciphertexts.* => I think that the answer here has 
> to be "too bad".  Just note that TLS cannot handle a KEM that includes values 
> larger than 2^16 (minus a little bit).
> 
> *Duplication of key shares.* => Your existing text is sufficient to answer 
> this one.
> 
> *Resumption.* => There isn't much existing language on this point, but I 
> don't see it as needing anything special in this draft.  My view is that 
> fresh entropy of any kind is an improvement, but generally we will see better 
> than that because clients and servers will perform a fresh key exchange with 
> an algorithm that they consider sufficient at the time.  That might result in 
> a change in posture relative to the original session, but the result should 
> still be as good as min(original, current), which is always better than just 
> using the PSK.
> 
> *Failures.* => KEM failure is a problem, but I would do nothing more than 
> note the potential and have the handshake fail.  I see that the finalists 
> have low enough error rates that this doesn't seem likely to be an issue in 
> practice.  Clients can always try again if they hit this specific problem.  
> Ours already retries in a bunch of different failure cases.  Some text on 
> this point in the draft is probably sensible.
> 
> Nits:
> 
> OLD:
>   However, the
>   key_exchange values for each algorithm MUST be generated
>   independently.
> NEW:
>   However, 
>   key_exchange values for different algorithms MUST be generated
>   independently.
> 
> 
> 
> On Wed, Jul 7, 2021, at 11:19, Douglas Stebila wrote:
>> Dear TLS working group,
>> 
>> We wanted to see if there is any further feedback on our draft "Hybrid 
>> key exchange in TLS 1.3" 
>> (https://datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/) and 
>> what steps are required for it to advance further.  We have not 
>> received any new feedback from the working group since we posted our 
>> last non-trivial update in October 2020.
>> 
>> The draft as written does not actually specify any post-quantum 
>> algorithms nor give identifiers for specific algorithm combinations, 
>> only the formats for hybrid key exchange messages and key derivation.  
>> We have received a suggestion that the draft be updated to include 
>> identifiers for hybrid key exchange combining elliptic curve groups and 
>> the KEMs currently in Round 3 of the NIST PQC standardization process, 
>> so that implementations can begin testing interoperability using 
>> numbers listed in the draft, rather than relying on ad hoc lists for 
>> such purposes.  Is that something the working group would like to see, 
>> or would you prefer to leave it as it currently stands, without any 
>> specific algorithm identifiers?
>> 
>> Douglas, Scott, and Shay
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>> 
> 
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to