Replies: 13 comments 18 replies
-
#613 provides another argument for dropping support for standardized algorithms:
Thus, their use now starts to deviate substantially from what NIST specified and what is still being used as key formats in the other/ongoing NIST competition that oqsprovider want to support, so bespoke code would have to be added for those algorithms. And that'd be pretty much lost work given that exactly these algorithms are bound to be available in |
Beta Was this translation helpful? Give feedback.
-
We talked in a previous meeting about continuing to support standardized algorithms where we have implementations with distinctive characteristics. |
Beta Was this translation helpful? Give feedback.
-
Fully agreed. I do think
Completely agree again. This is FOSS and anyone has to make the right choices when using it. All I want is assure no-one makes them without as much information as is available; No appearances should be created that are not backed by facts or reality (am I really saying this on the Inauguration day of President Trump? :} |
Beta Was this translation helpful? Give feedback.
-
IMHO, the current situation is screwed up - OpenSSL merged a commit that prevents other providers from registering ML-KEM and ML-DSA, but takes its sweet time merging the implementation. The correct solution IMHO would be for OpenSSL to back out (revert) the OIDs-registering commit until the time that OpenSSL provider is ready and included in the build. |
Beta Was this translation helpful? Give feedback.
-
Wait, what? Oh, the OID registry? How does that prevent anyone? |
Beta Was this translation helpful? Give feedback.
-
I hope you will continue support for X25519MLKEM768 for a while Compiling the provider & library is not a big deal but the prospect of entirely replacing my OpenSSL with a self-compiled version just to get MLKEM support is much more intimidating (I'm holding out hope that Ubuntu 26 might end up with a version of OpenSSL that supports MLKEM but that's a long way out) |
Beta Was this translation helpful? Give feedback.
-
A couple of questions on the wide ranging topics...
My hope would be that OQSProvider maintains support for algorithms even if they are implemented in OpenSSL. |
Beta Was this translation helpful? Give feedback.
-
Here's my take.
When OpenSSL-3.5.0(-dev) gets its IMHO:
I know it's easy to tell others what they should do (especially when they work for free) - sorry about that. |
Beta Was this translation helpful? Give feedback.
-
@feventura While implementing this proposal (disabling standardized PQC algs in oqsprovider when finding them already present in OpenSSL), I hit a snag with Composite sigs: This call cannot work under those circumstances as the name "mldsaxx" is not present in the OpenSSL OBJ_ registry and now cannot be registered any more as the OID already is registered under the name "ML-DSA-xx". And of course the internal "reliance" on --> Do you have a suggestion how to get around this, e.g., introducing/using an "oqsprovider-internal" NID registry? Otherwise, I'm afraid we'd have to "summarily" also disable support for composite signatures of standardized PQC algs when running In general, I think a complete overhaul of hybrid & composite logic is necessary now that the "basic" PQC algs are made available via the OpenSSL built-in providers: Such new code should rely no longer only for the classic crypto but now also for the PQC algs only on EVP calls, not any |
Beta Was this translation helpful? Give feedback.
-
fwiw/fyi & twimc, Anyone asking for something different is cordially invited to actively contribute. But as per the discussions, beware that this is a non-trivial undertaking both from the perspective of the design of oqsprovider as well as the fact that there's now also substantially better/more complete PQC code available in |
Beta Was this translation helpful? Give feedback.
-
I confirm that ML-KEM now works perfectly with OpenSSL-3.4.1 and OpenSSL-3.5.0-dev. The only thing - OpenSSL-3.5.0-dev ML-KEM performance (default provider?) appears to be much worse than that of OpenSSL-3.4.1 (oqsprovider?):
@levitte any comment...? |
Beta Was this translation helpful? Give feedback.
-
For me, the performance differential is an absolutely logical consequence of the design goals of each project: The OpenSSL code has been designed for maximum standards adherence (even those that don't yet exist :), security (e.g. constant time) and portability (all platforms supported by OpenSSL) while the primary non-functional properties OQS code focuses on is performance and (for now, ML-KEM only) "formal verification" between spec and code (and that on specific platforms only). --> IMO OQS is a research project geared to show how "good" PQC software may be given enough work on specific properties and platforms while OpenSSL delivers what's needed to provide the best security for a "messy world". Also see openssl/openssl#25879: Maybe the folks that did the optimizations upstream of OQS at some point may find the time to contribute to that issue, too -- or someone else versed in x64 and/or aarch64 assembly. |
Beta Was this translation helpful? Give feedback.
-
I might well be that I don't really get the essence of the discussion, which I have to admit confuses me. To better understand, I equipped myself with the following (all done inside an UBI9.5 container on an Ubuntu22.04 bare-metal Intel Icelake host):
With the above, I started to experiment... I executed
Minor comment: I had to beef up Next, I enabled providers in
I added the following to my Docker file where I built the above:
I also built cURL v8.12.1 and HAproxy v3.1.5 in the same Dockerfile (including prerequisites). I was then able to connect cURL to HAproxy (from where I go to the OQS interoperability server):
Now here's what I don't understand in the current discussion: I'm obviously able to run tests with ML-KEM from both providers ( So why exactly should ML-KEM and/or ML-DSA be dropped (which I guess implies work) rather than just be left in as it is obviously useful stuff? PS:
|
Beta Was this translation helpful? Give feedback.
-
Triggered by #609 this is to discuss whether
oqsprovider
should keep supporting standardized algorithms as and when they are available in built-in providers ofopenssl
.The code driving
oqsprovider
does not have the same quality and reliability as the code inopenssl
and therefore,oqsprovider
should not make available algorithms when more reliable implementations are available.Further, the goal of
oqsprovider
is to support prototyping and experimentation of novel PQC (e.g. in the NIST competition or other, not-yet standardized use cases), not do the same as standard PQC code.Beta Was this translation helpful? Give feedback.
All reactions