-
Notifications
You must be signed in to change notification settings - Fork 126
Update oqs-kem-info.md #311
Update oqs-kem-info.md #311
Conversation
If memory serves, we intentionally didn't change KEM alg IDs when integrating round 3 code as a) those IDs don't create persistent manifestations (unlike sig-alg OIDs in certs) and b) didn't want to maintain round 2 algorithm support. @dstebila, @christianpaquin @xvzcf : Is this also your recollection? If so, this PR needs to be closed. If not, we should instead bump the NIDs of all KEMs where we're at R3 level (all?) -- modifying both this PR as well as |
No, my recollection is that we did change NIDs when there was an algorithmically incompatible change between Round 2 and Round 3 versions. |
If this were so, this PR would be moot, right? Would it make sense to compare an old NID spreadsheet with the current |
I'm only familiar with BIKE, SIKE, and Kyber. SIKE Round 3 is backwards compatible with it's Round 2 version, while BIKE and Kyber are not. I'm not sure if FrodoKEM or SABER are backwards compatible. I also agree that we should create new algorithm ID's for each new round that doesn't have backwards compatibility. AWS has already released client SDK's that can negotiate Round 2 versions of BIKE, SIKE, and Kyber. We don't want to break those clients by changing the algorithm ID's to mean the Round 3 variants on the server side, while the clients that haven't migrated yet still think those ID's mean Round 2. Since Kyber Round 3 is not backwards compatible with Round 2, this means that the changes in this pull request for Kyber at least are applicable, and should be applied. I am not sure if FrodoKEM or SABER are cross compatible between their Round 2 and Round 3 versions, so I'm not certain if we can reuse their Round 2 ID's for Round 3. |
FrodoKEM Round 3 is unchanged from Round 2. |
Just realized that I missed the NTRU algorithm. Does anyone know if NTRU |
Tagging @jschanck |
There were no changes to NTRU in Round 3. |
Updated the table to list which NIST Rounds correspond to which identifiers. This change only updates the existing rows in the table, and does not add any new rows yet. Once this is merged, I can open a 2nd PR to add the new Round 3 identifiers for BIKE and Kyber. |
Why not do the update in this PR? By merging this PR as-is we'd have a documented inconsistency in the system for BIKE and Kyber: This new markdown file version contradicts the |
I'm happy to include the new NID's for Round 3 BIKE and Kyber in this same PR if everyone is okay with that. The reason I originally didn't do both changes in this PR was to separate the concerns that people might bring up during review around fixing the values already in the table, versus adding new proposed values to the table. But if there aren't separate concerns, I can do both here.
We picked temporary placeholder ID's in this s2n Pull Request by manually counting past the current maximum values defined by OQS. These ID's have not been merged into s2n yet, and we wanted to make sure that both OQS and s2n agree on the new ID's that we're proposing before merging them into s2n. We have been treating the spreadsheet as the source of truth and originally attempted to add them there, but were redirected to this markdown table. |
Done; feedback provided there.
Thanks for the pointer: Very much appreciated. open-quantum-safe/oqs-demos#83 created to ensure the interop server will reference the right file as and when created. |
@alexw91 Regarding the NIDs in the s2n pull request, do you intend to keep different NIDs for SIKE R2 and R3? I thought those were interoperable. |
We are planning to re-use the SIKE Round 2 NID as the SIKE Round 3 NID. However, that change is not reflected in the s2n Pull Request yet, and the PR is still currently using a new placeholder NID for SIKE Round 3. We're working on removing SIKE Round 2 and move to SIKE Round 3 in this PR: aws/s2n-tls#2864 |
Okay. Do you consider the other numbers in your PR to be the ones you want to use? Or are you waiting for us to pick numbers? I'm fine either way, just don't want both of us thinking the other will make the choice. |
Let's use the ID's that we have in our s2n PR.
|
Are these really the only IDs/algorithms you support? No Kyber768 or 1024? No KyberAES variants? No other hybrids? Or if there's more, could you please point to the pq-s2n github location(s) where one could find them all? Our full list here. Thanks in advance. |
Yes, s2n only supports these combinations when using TLS 1.3:
s2n also supports Rounds 1-3 when using TLS 1.2 to keep backwards compatibility from when we launched Round 1 BIKE and SIKE support in TLS 1.2. |
Okay, I've added these to the table in #313. I'm going to close this PR, please do further discussion on #313. |
I think there may have been a bug in the script that was used to generate this table. The algorithm identifiers in this table match those in this previous spreadsheet which had all Round 2 labels.
This table should match the data that the old spreadsheet had, so I manually changed the labels on this table to use Round 2 labels so that when new Round 3 labels are added in the future they won't conflict.