Things which are PQC (Post Quantum Cryptography) related.
Details
Wed, Jan 8
Fri, Jan 3
Change the encryption code to only allow 256 bit session keys with Kyber regardless of the preferences, iff --require-pqc-encryption is set. […] We could as well also encforce AES-256 also without that option.
What if we encrypt to several recipients, only some of them having a Kyber encryption key? Should we still enforce AES-256 in that case regardless of the preferences, and assume that by now everybody should support AES-256?
Love it! I think I am going to use “post-heffalump crypto” from now on. :D
But keep https://www.cs.auckland.ac.nz/~pgut001/pubs/heffalump_crypto.pdf in mind ;-)
Thu, Jan 2
I wrote it with PQC security level in mind which requires AES256 for the session key as well.
That is what I expected. Meanwhile I re-read the code and history and can tell that the comment is not correct. I wrote it with PQC security level in mind which requires AES256 for the session key as well. However, during the migration phase and as long as --require-pqc-encryption is not enable we should allow an AES-128 session key. This is for the rare case that encryption is also done for non pqc keys which don't have the AES-256 capability set.
Here you are:
At gnupg/g10/pubkey-enc.c you will find
Dec 13 2024
Dec 5 2024
Dec 4 2024
Works for me in an NSIS installer. The VSD beta thing also works with copied conf files.
(gpg4win-5.0.0-beta27 with some local mods)
Nov 14 2024
Ready for testing. Note that you also need gpgme master.
Oct 8 2024
Pushed the fix for exporting OpenPGP v5 key: rG57dce1ee62c2: common,gpg,scd,sm: Fix for Curve25519 OID supporting new and old.
Oct 3 2024
The OID is used for fingerprint computation, which complicates things.
Oct 2 2024
Using the shorter OID for v5 is on purpose; thus we need to fix the export.
Oct 1 2024
Sep 17 2024
Sep 12 2024
See new subtask T7290 for smartcards and the link entries mentioned above.
Sep 6 2024
Jul 11 2024
We hereby deliver with some delay our completed version of the integration of PQC algorithms into Libgcrypt from our project. The code features the following algorithms:
Jun 19 2024
Apr 24 2024
Most things are done. Missing stuff
Apr 23 2024
Alright: We have support for all our combined algos ky{768,1024}_bp{256,384,512}and ky{768,1024}_cv{25519,448} as well as test keys and encrypted test messages.
Apr 15 2024
Here comes a new test key along with its 3 secret parts (one for the primary and two for the composite Kyber subkey).
Apr 11 2024
Wit the test keys posted in T7014 it is now possible to decrypt the sample data. The test data has been slightly adjusted for the new format; see
for a hex dump and for the binary version.Feb 26 2024
Feb 22 2024
A way to generated keys in the usual s-expression way has been added. This allows us to get the keygrip for the key.
Feb 21 2024
FWIW, I posted some ideas at https://lists.gnupg.org/pipermail/librepgp-discuss/2024/000043.html . For official use in Germany we will very likely also add Brainpool curves as a replacement for the IETF curves.
Feb 15 2024
Although, we don't use our usual s-expressions we need to add a way to derive a keygrip from Kyber et al and also to wrap the key into an s-expression to that it can be stored by gpg-agent in its usual files. An exported new API to get the keygrip of a KEM key would be good to avoid encapsulation but for other purposes an encapsulation is still required.
Jan 17 2024
Regading Kyber in GnuPG, there are a couple of open questions. For example whether the implicit lengths used for the key parameters match well with the overall protocol structure. Thus, as soon as we have finished the Libgcrypt part we will address this and implement it in some way. Before we do this we have to do a couple of changes to GnuPG required for FIPS compliance.
I just saw that Niibe is already working on the integration of the ML-KEM code into the master branch of libgcrypt. Apparently, this is an entirely new code base. Currently we are working on the integration of our ML-KEM implementation in libgcrypt into GnuPG. But based on what I see now it seems that apparently another approach is planned and already underway for libgcrypt and probably later also for GnuPG. It would be helpful if you could give us a pointer what your exact plans are, this makes it easier for us to direct our efforts in the optimal way.
Nov 28 2023
And another question: in the GnuPG code on the master branch I saw that algorithm identifiers for ML-KEM with Ed25519 and Ed448 are already defined in the code base. Do I understand correctly that the maintainers prefer the inclusion of these two algorithms and not necessarily the inclusion of the ones based on ML-KEM with ECDH using NIST or Brainpool curves?
Nov 27 2023
We have addressed all comments regarding ML-KEM (Kyber) and KMAC. Currently I am working on the GnuPG integration of the the ML-KEM composites. For that purpose I will need a branch of libgcrypt with both ML-KEM and KMAC. I am not sure if you are considering to integrate the ML-KEM version already now before the final NIST standards are release. Some libraries do it, for instance Botan. Appropriate naming of the algorithms can ensure that there arises no confusion which version of the algorithm one is using.
Nov 13 2023
Oct 31 2023
In master, when fixing padding issue, libgcrypt/src/const-time.h is just introduced.
I will replace your functions.