[372ac04d10452c4eb2df326440f95085a2903cff] #crypto 

OpenSSH с ML-DSA-44+Ed25519 композитными подписями. OpenPGP с PQC

http://lists.mindrot.org/pipermail/openssh-unix-dev/2026-June/042556.html
https://datatracker.ietf.org/doc/draft-miller-sshm-mldsa44-ed25519-composite-sigs/
https://datatracker.ietf.org/doc/html/rfc9980
Снова OpenSSH один из первых популярных инструментов, что толкают
алгоритмы вперёд. Появилась поддержка PQ/T подписей. Конструкция
тривиальна: просто сообщение по отдельности подписывается одним и
другим алгоритмом, прикладываются две подписи. Валидно, только если
обе являются корректными.

Лично я в KEKS/CM только SLH-DSA предложил для PQ-ready подписей. Да,
сильно дороже по CPU, сильно больше по размеру, но зато точно не имеет
смысла использовать традиционную криптографию, ибо полная уверенность в
hash-based signing надёжности. Я в большинстве своего софта уже начал
подкладывать PGP-подписанный публичный KEKS/CM ключ подписи, на будущее.

Недостаток решения с ML-DSA-44+Ed25519 даже я, не специалист, вижу:
отсутствие collision-resilience, ибо подписывается один и тот же SHA512
хэш от сообщения, в обоих алгоритмах подписи. DJB как-то предлагал такую
схему, но без полной уверенности в ней, не пытаясь "стандартизовать":

       m = the message being signed,
       r = H(fresh randomness chosen during signing),
       h = H(r,H(hybridpk),hybridsigname,appname,appcontext,m),
       s1 = Ed25519 signature of (r,h),
       s2 = post-quantum signature of (s1,r,h),
       H = SHA3-256.

    Using H(hybridpk) instead of hybridpk makes clear that H(hybridpk) can
    be saved alongside hybridpk, guaranteeing that the key is hashed only
    once when it's generated or received (so, as above, the cost of hashing
    long keys will be only about 1% of the cost of communicating the keys).
    This allows a 2^128 attack producing two keys with the same H(hybridpk),
    but EUF-CMA is still collision-resilient. I presume that we can manage
    fixed lengths for hybridsigname, appname, and appcontext.

В RFC 9980 про PQC для OpenPGP есть и ML-DSA как MUST, так и MAY SLH-DSA.
Причём OpenSSH использует ML-DSA-44, а OpenPGP как минимум -65. И тоже
подписи делает просто по отдельности, над хэшом от данных. Но это именно
OpenPGP, к которому GnuPG уже отношения не имеет.

[оставить комментарий]