-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Describe the feature
Add support for hybrid PQ signatures, combining ECDSA with ML-DSA.
- Migration: Check one of the signatures (
OR)
sig_ecdsa = ECDSA.sign(m)
sig_mldsa = MLDSA.sign(m)
valid_ecdsa = ECDSA.verify(pk_ecdsa, m, sig_ecdsa)
valid_mldsa = MLDSA.verify(pk_mldsa, m, sig_mldsa)
return (valid_ecdsa OR valid_mldsa)- Option 1: Check both signatures (
AND)
sig_ecdsa = ECDSA.sign(m)
sig_mldsa = MLDSA.sign(m)
valid_ecdsa = ECDSA.verify(pk_ecdsa, m, sig_ecdsa)
valid_mldsa = MLDSA.verify(pk_mldsa, m, sig_mldsa)
return (valid_ecdsa AND valid_mldsa)- Option 2: Nested signatures (
nested AND)
sig_ecdsa = ECDSA.sign(m)
sig_mldsa = MLDSA.sign(m || sig_ecdsa)
valid_ecdsa = ECDSA.verify(pk_ecdsa, m, sig_ecdsa)
valid_mldsa = MLDSA.verify(pk_mldsa, (m || sig_ecdsa), sig_mldsa)
return (valid_ecdsa AND valid_mldsa)The OR version will help with transition, so nothing breaks, but moving on, we should switch to either of the options 1 or 2.
On parameter set sizes, we can use level 1 or 2 (the equivalent of 128 or 192 bits of classical security) https://openquantumsafe.org/liboqs/algorithms/sig/ml-dsa.html.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request