-
Notifications
You must be signed in to change notification settings - Fork 126
Conversation
BIKE has changed their naming scheme in their Round 3 submission. Before it's scheme was
|
@xvzcf How would you handle variant renaming in the .yml file? |
Can I bring up the idea (as already tried in my comment above) to also give a "readable" name (say 'implementation_version') to the current algorithm variant and not just to the "old" ones? But more important I find this question:
I'd vote to include the algorithm version (first and foremost: I somehow have the feeling that there may be more versions than just one for the same set of NIST R3 KATs) |
@dstebila Thanks for adding the handful of s2n NIDs. But this doesn't solve the issue for R3 algs in general: Do we now "make up" our own NIDs for all R3 algs (i.e., those that neither we bumped nor anyone else supports)? How do we keep track of these IDs given we apparently don't have a way to keep them contiguous within alg families? |
Let me think about this some more. |
Any updates? I wanted to confirm whether or not the OQS project is in favor of merging in the ID's I listed here: #313 (comment) or wanted to have the Python script generate ID's that s2n would then use. |
One common "source of truth" (for all NIDs, past and present) for OQS-OpenSSL and s2n would be great. OK with YML as the representation? If so, I'll volunteer to "manually curate" the YML (retaining already used IDs as well as creating new ones where R3 changed KATs). |
Sorry, was on vacation for a few days. I'm fine with using the IDs you've provided in that comment. |
Are you saying that this would be in the YML file in this PR, or in a different YML file? If in a different file, would the NIDs still be present (duplicated) in this file, or removed from this file and present only in the new file? |
Yes, that would be the proposal. We could regularly update/maintain it and oqs-openssl, oqs-provider and (pq-)s2n could extract from it what it needs (& wants to maintain in terms of backwards compatibility). |
Makes sense, go for it. |
All right, that then begs the immediate question to @alexw91: Are you also OK taking code points from this YML or do you want/need to retain the 4 you listed above (i.e., did you already release those)? If the former, keeping numbers contiguous (i.e., change whole "number blocks" for algorithms with different R2+R3 KATs) would seem sensible, but requiring a change in pq-s2n. If the latter, open-quantum-safe/liboqs#887 must close before tackling this issue (so we have BIKE code matching the above in "Implementation" question: Do we consider it sufficient to (now, once) manually check the KEM algorithms as to whether KATs changed between R2 (i.e., liboqs v0.4.0, right?) and R3 (current code) to decide whether we need new code points/IDs -- and think about updating code points at the next "interop breaking" |
Answering my own question above: Manual checking is no fun, so I added logic to automatically check KATs. It can be triggered as follows:
--> Does this look reasonable? OK with the approach to add |
Approach is reasonable, though not all KAT updates necessarily mean incompatibility, as it could be the implementation changed how it uses randomness internally (resulting in different KATs) but is still interoperable with the previous version.
Yes, great idea.
SIDH is the IND-CPA version of SIKE. At this point we are preferring IND-CCA over IND-CPA versions when available, so that would speak to including only SIKE, not SIDH. |
I'd prefer to use the ones we proposed, but we haven't merged those ID's into s2n yet so we can still change them if necessary. |
OK, will do my best to retain them; will let you know if it's getting too tedious. |
OK, we could leave it as-is above: Just warnings output. But then again, which of these "alerts" now warrant a real change of code point? I kind of would prefer as much automation as possible.
So shall we remove SIDH from |
Hi Alex, Eric said that this is blocking you on your end. Please go ahead with your IDs and we will match them. |
I'd want to keep documentation that we used those code points for SIDH in the past and not reuse, but am not sufficiently aware of the semantics of the generate.yml to know what keeping unused SIDH entries in there would imply. |
Also, any reason you've only chosen to implement the Level 1 variant? defs.h
|
@dstebila I know we said in the call this week again that we keep waiting for s2n; however, with the removal of BIKE R2 code, all OQS subprojects now fail in CI. Thus, the downstream "logjam" gets bigger and bigger: No demos aligned with @alexw91, can you make a statement when you plan to merge the new IDs so we can match as per the above and move forward, too? If this wouldn't be in the next few days (?), I'd like to propose doing a separate PR to this one to move forward here. Rationale: We've stalled on this for a month now and in 2 weeks time I'll probably not be the only one to go on vacation for some time. I'd personally feel bad not having done my best to ensure all OQS "downstream" projects are not in "red build status" for all summer. If OK for both of you (?), we can then leave this PR "lingering" until s2n settles and/or a standard document gets written. |
I am hoping to have these ID's merged in s2n today or tomorrow. |
I am hoping to have these ID's merged in s2n today or tomorrow.
Great! I'll get things rolling on our side over the weekend or on Monday.
|
Thanks! FWIW (as I just did (forget) that initially in |
s2n has merged the new algorithm ID's for Round 3 KEM's that we plan to use: aws/s2n-tls#2842 Algorithm ID's are located at: https://github.com/aws/s2n-tls/pull/2842/files#diff-1dd84e416725429d8eaf7eb4b5feaa0221afd308fe5e4027cf28b2b1ef9c2882R84-R87 |
I've updated the NIDs based on the values in the landed s2n code. This is just for the table, I haven't run the full code generation. I also haven't updated based on the algorithm changes in upstream liboqs. I'm feeling a bit overwhelmed on this and unfortunately have another project on my plate for the rest of the week, @xvzcf and @baentsch can you help? |
AFAIK all required changes are now done; failure is with |
That looks great, Michael! Only thing I can think of that's left is to sort out the Kyber round 2 versus round 3 NIDs. Since Kyber changed in an incompatible way for Round 3, we would bump new NIDs for the current Kyber and archive the previous NIDs as being for round 2. |
Is it really worth while archiving something that doesn't have (nor need, except for a handful of legacy s2n code points) to be remembered? For all I know this is a range of pretty much unmaintained IDs without a supported code base implementing them nor a specification defining them; further, this might make people think we'd be willing to maintain also old code as --unlike OIDS-- that's the only place for old KEM code points to be of relevance (if we disregard NSA logging TLS session setups for future decipherment :-) Whatever: I chose to merge |
Thanks @baentsch! I've gone ahead with merging since you and I have both looked it over. |
This adds extra fields in the generate.yml file to track
Replaces #311. Fixes #312.
If we are happy with this general approach, then before this is merged we will need to: