Module signing and post-quantum crypto public key algorithms

Stefan Berger stefanb at linux.ibm.com
Thu Jun 19 18:49:33 UTC 2025



On 6/16/25 1:27 PM, Simo Sorce wrote:
> 
> Of course we can decide to hedge *all bets* and move to a composed
> signature (both a classic and a PQ one), in which case I would suggest
> looking into signatures that use ML-DSA-87 + Ed448 or ML-DSA-87 + P-521
> ,ideally disjoint, with a kernel policy that can decide which (or both)
> needs to be valid/checked so that the policy can be changed quickly via
> configuration if any of the signature is broken.
> 

FYI: based on this implementation of ML-DSA-44/65/87

https://github.com/IBM/mlca/tree/main/qsc/crystals

(entry point is mlca_verify)

I created a prototype of a kernel driver for mldsa-44/65/87 that can 
verify self-signed mldsa certs created with this openssl command:

openssl \
	req \
	-x509 \
	-newkey mldsa44 \
	-keyout localhost-mldsa44.key \
	-subj /CN=localhost \
	-addext subjectAltName=DNS:localhost \
	-days 30 \
	-nodes \
	-out localhost-mldsa44.crt

(it seems to use the shake256 hash by default)

https://github.com/stefanberger/linux-ima-namespaces/commits/mldsa.06092025/

There's lots of cleanup needed, but with a test suite in user space, 
this should not be too difficult.




More information about the Linux-security-module-archive mailing list