The newly released GnuPG 2.5.0 begins to experimentally support the post-quantum public key algorithm extension of the OpenPGP protocol. The post-quantum public key algorithm extension of the OpenPGP protocol provides the basis for long-term secure OpenPGP signatures and ciphertexts. It defines composite public key encryption based on ML-KEM and composite public key signatures based on ML-DSA (both of which are used in conjunction with elliptic curve cryptography), as well as SLH-DSA as an independent public key signature scheme. GnuPG currently only supports composite public key encryption based on ML-KEM, and support for digital signatures is under development.
GnuPG 2.5.0 supports PGC encryption algorithms ky768_cv25519 and ky1024_cv448 based on X25519 and X448, and PQC encryption algorithms ky768_bp256, ky1024_bp384 and ky1024_bp512 based on brainpoolP256r1, brainpoolP384r1 and brainpoolP512r1. Since Brainpool is not efficient, widely used, and has no security advantages, this article only tests PGC encryption algorithms ky768_cv25519 and ky1024_cv448 based on X25519 and X448.
What You Need
GnuPG 2.5.0 of later
ML-KEM-768 + X25519
Generate Key
1 2 3 4 5 6 7
gpg --quick-gen-key --batch --passphrase=''"X25519 User <x25519@example.com>" Ed25519 cert 1y
# Not working yet gpg --quick-add-key --batch --passphrase='' --pinentry-mode loopback DDE2BD47E5196CED794FDF17D9FFA236037FC097 dil3_ed25519 sign 1y
ML-DSA-87 + Ed448
1 2
# Not working yet gpg --quick-add-key --batch --passphrase='' --pinentry-mode loopback 194E2C38F0C4354C4172DC586E3455C57BA2F61AB06EFC243A5D386ED86242B7 dil5_ed448 sign 1y
Wrapping Up
OpenPGP currently does not fully support the PGC algorithm. It only supports encryption algorithms and lacks digital signature algorithms. It only supports generating PGC keys in the quick-gen-key and quick-add-key interfaces, but does not support generating PGC keys in the interactive interface.
The current state of OpenPGP’s PGC implementation is quite exciting, considering that the algorithm is still in the draft stage. Let’s look forward to the PGC algorithm being fully supported in OpenPGP, making our future more secure.