Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Rainbow update #1192

Closed
1 of 4 tasks
baentsch opened this issue Mar 3, 2022 · 7 comments
Closed
1 of 4 tasks

Rainbow update #1192

baentsch opened this issue Mar 3, 2022 · 7 comments

Comments

@baentsch
Copy link
Member

baentsch commented Mar 3, 2022

Following the discussions here this issue is to track required adaptations to Rainbow: Already discussed:

  • Adding warnings to the liboqs documentation
  • Removing Rainbow level 1
  • Downgrading higher Rainbow levels
  • Rebuilding all OQS downstream software packages (incl. new oqs-openssl hybrids)

Final resolution of this issue is expected when NIST announces the next PQC evaluation decisions.

@baentsch
Copy link
Member Author

baentsch commented Jul 6, 2022

Suggest to close as being covered by #1245

@dstebila dstebila closed this as completed Jul 7, 2022
@dstebila dstebila reopened this Jul 7, 2022
@dstebila
Copy link
Member

dstebila commented Jul 7, 2022

As much as it might cause some downstream pain, I am now thinking we probably should remove Rainbow level 1 before the 0.7.2 release, since it is known-broken.

@baentsch
Copy link
Member Author

baentsch commented Jul 7, 2022

we probably should remove Rainbow level 1 before the 0.7.2 release, since it is known-broken

No objections. To the contrary, I now feel vindicated for doing this...

@baentsch
Copy link
Member Author

baentsch commented Jul 7, 2022

As much as it might cause some downstream pain,

Thinking about that part of the statement again, what pain would the complete removal of Rainbow cause? Not doing a release simply means running all templating scripts and CI on all project "main" branches. Should be smooth. Doing a release (for all components) just for that would be tedious. A re-set of strengths (and retaining) some Rainbow variants would have been tedious. Outright pruning should be straightforward. We just need to make sure no IDs assigned to Rainbow variants are (re)used, e.g., in OpenSSL. If there are no objections, will do a PR right away...

@baentsch
Copy link
Member Author

baentsch commented Jul 8, 2022

Confirmed (by doing it): Complete removal of Rainbow works well through the whole stack.

Now what? As discussed elsewhere implement the issue in full (removal only of level 1 and corresponding downgrade of all other levels as per the Rainbow author's recommendation and downstream changes, incl. assignments of new OIDs and code points) OR alternatively some (in my eyes) "incomplete" approach of only removing the broken L1 (and leaving the weaker-than-stated L3&L5 as-is)?

Worthwhile asking the Rainbow authors for their opinion? Or the IBM team that broke it? Would be fair for the latter to also close out the issue... :-)

My personal preference (driven by thinking about users of the library not expecting acknowledged "sub-optimal" (aka broken or weak) algorithms in it) would be outright removal of the whole family.

@dstebila
Copy link
Member

We'll remove Rainbow level 1 for 0.7.2 via #1263 and then remove the remaining Rainbow after that.

@baentsch
Copy link
Member Author

All right -- that then means no new (OpenSSL) OIDs, just dropping (piece-meal) the rainbow ones (1 for 0.7.2; the rest afterwards), right? If so, downstream changes are small indeed.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants