-
Notifications
You must be signed in to change notification settings - Fork 478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pull Kyber division fixes from PQ-Crystals into dev-092 #1652
Conversation
ARM patch done. I also checked out the copy_from_upstream / CI fixes from #1589 which were done after 0.9.0, as the branch isn't idempotent under copy_from_upstream otherwise. |
@@ -35,8 +35,8 @@ | |||
|
|||
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ | | |||
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:----------------------| | |||
| [Primary Source](#primary-source) | clean | All | All | None | True | True | True | | |||
| [Primary Source](#primary-source) | avx2 | x86\_64 | Linux,Darwin | AVX2,POPCNT | False | True | True | | |||
| [Primary Source](#primary-source) | clean | All | All | None | False | False | True | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where do these McEliece changes come from?
@@ -22,7 +22,7 @@ | |||
|
|||
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ | | |||
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:----------------------| | |||
| [Primary Source](#primary-source) | clean | All | All | None | False | False | False | | |||
| [Primary Source](#primary-source) | clean | All | All | None | True | True | False | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why Falcon changes in Kyber DIV fixes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a simple explanation for the McEliece and Falcon (at least doc) changes? Code-wise LGTM, apart for the code tracing issue also commented in the "main" PR.
Sorry, I should have expanded on that above. We didn't properly run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the additional explanation @SWilson4 ! Makes sense (&explains why the "DIV fix" PR to "main" doesn't include the Falcon/McEliece doc changes). LGTM now.
Update for you @dstebila @praveksharma @bhess @baentsch: I ran the full constant-time tests (on My position is that we ought to go ahead with 0.9.2 regardless. Both Sphincs+ and McEliece currently have documented constant-time "issues" in our |
Further update: I ran the command Since that wouldn't catch the case where a division operation involving |
Hi. As someone not deeply familiar with KEM algorithm implementations, I am interested in this: Does this fix affect the backward compatibility of the Kyber algorithm with older versions of the liboqs library? Additionally, does liboqs generally maintain backward compatibility with older versions? |
The fix does not affect the backward compatibility of Kyber.
0.x.y releases are compatible with 0.x.z releases. But changing the second digit indicates that there may be an algorithm whose compatibility has changed. The release notes describe the changes. For Kyber, 0.9.* and 0.8.* are compatible. |
Pull recent fixes made to Kyber from PQ-Crystals into dev-092 branch.
TODO:
Fixes #1645 (see also #1649).