Color scheme: Light
You are here: start » sl » Dokumentacija » Postkvantna kriptografija » WKL.System.Security.Cryptography – pregled » Koncepti » Oblike postkvantnih delov

Oblike postkvantnih delov

graph TD
    CERT["Hibridno potrdilo"]
    TBS["TBSCertificate s tremi nekritičnimi razširitvami"]
    SPKI["subjectAltPublicKeyInfo: ključ ML-DSA imetnika"]
    ALG["altSignatureAlgorithm: nabor parametrov ML-DSA"]
    VAL["altSignatureValue: podpis ML-DSA izdajatelja"]
    SIG["Klasični podpis: RSA ali ECDSA prek celotnega TBSCertificate"]
    CERT --> TBS
    CERT --> SIG
    TBS --> SPKI
    TBS --> ALG
    TBS --> VAL

Slika: Hibridno potrdilo je običajno potrdilo X.509. Postkvantni del je v treh nekritičnih razširitvah, ki jih pokriva tudi klasični podpis.

Knjižnica vsak postkvantni del (PQ) shrani tako, da programska oprema brez znanja o PQ podatke še naprej bere in preverja. Kjer obliko določa standard, knjižnica sledi njemu. Kjer standarda še ni, uporablja začasne identifikatorje; ta mesta so navedena spodaj.

Ključne funkcije

  • Hibridna potrdila in seznami preklicanih potrdil po ITU-T X.509 (10/2019), alternativni podpisi.
  • Čista potrdila ML-DSA po RFC 9881.
  • Sestavljeni ML-DSA za surove podpise po osnutku IETF draft-ietf-lamps-pq-composite-sigs.
  • Šifriranje CMS za ML-KEM po RFC 9629 (KEMRecipientInfo).
  • Datoteke PFX po RFC 7292 s ključem ML-DSA v lastni vrečki za ključe.
  • Začasno: podpisi PQ v CMS in XML ter hibridno šifriranje z EncryptHybrid.

Osnovni koncepti

Hibridna potrdila in seznami preklicanih potrdil

Hibridno potrdilo nosi tri nekritične razširitve iz ITU-T X.509 (10/2019):

RazširitevOIDVsebina
subjectAltPublicKeyInfo2.5.29.72ključ ML-DSA imetnika
altSignatureAlgorithm2.5.29.73nabor parametrov ML-DSA dodatnega podpisa
altSignatureValue2.5.29.74podpis ML-DSA izdajatelja

Podpis ML-DSA pokriva TBSCertificate brez razširitve altSignatureValue. Klasični podpis pokriva celoten TBSCertificate, torej tudi vse tri razširitve. Klasični preverjevalnik neznane nekritične razširitve prezre in potrdilo preveri kot vsako drugo. Seznami preklicanih potrdil iz X509CrlBuilder nosijo dodatni podpis na enak način.

Čista potrdila ML-DSA

Potrdila v načinu PostQuantum nosijo ključ ML-DSA kot običajen SubjectPublicKeyInfo in so podpisana z ML-DSA, kot določa RFC 9881. Knjižnica podpira nabore parametrov ML-DSA-44, ML-DSA-65 in ML-DSA-87. Kateri od njih ustvarijo podatke brez izjeme, določajo Pravila za postkvantne postopke.

Sestavljeni ML-DSA

Surovi podpisi v načinu Hybrid so sestavljeni podpisi ML-DSA po osnutku IETF draft-ietf-lamps-pq-composite-sigs (različica 19): podpis ML-DSA, ki mu je pripet podpis RSA ali ECDSA. Osnutek določa fiksne pare. Knjižnica jih podpira; stolpec »Zgoščevalni postopek« navaja vrednost, ki jo podate metodama SignData in VerifyData:

ML-DSAKlasični delZgoščevalni postopek
ML-DSA-44RSA-2048, PSS ali PKCS #1 v1.5SHA-256
ML-DSA-44ECDSA P-256SHA-256
ML-DSA-65RSA-3072, PSS ali PKCS #1 v1.5SHA-256
ML-DSA-65RSA-4096, PSS ali PKCS #1 v1.5SHA-384
ML-DSA-65ECDSA P-256SHA-256
ML-DSA-65ECDSA P-384SHA-384
ML-DSA-65ECDSA brainpoolP256r1SHA-256
ML-DSA-87ECDSA P-384SHA-384
ML-DSA-87ECDSA brainpoolP384r1SHA-384
ML-DSA-87RSA-3072, PSSSHA-256
ML-DSA-87RSA-4096, PSSSHA-384
ML-DSA-87ECDSA P-521SHA-512

Drug par, na primer ML-DSA-65 z RSA-2048, knjižnica zavrne s CryptographicException. Pari z ML-DSA-44 podpisujejo samo z izjemo ReducedParameterSets; preveriti jih je mogoče tudi brez nje. Ed25519 in Ed448 manjkata, ker .NET 8 ne ponuja EdDSA.

Šifriranje CMS

KemEnvelopedCms zapiše CMS EnvelopedData (RFC 5652) s KEMRecipientInfo (RFC 9629). Za ML-KEM oblika ustreza tisti, ki jo zapiše OpenSSL 3.6; za sestavljeni ML-KEM sledi osnutku IETF draft-ietf-lamps-cms-composite-kem. Prejemniki RSA istega sporočila prejmejo KeyTransRecipientInfo z RSAES-OAEP.

EnvelopedCms iz .NET sporočila s KEMRecipientInfo ne more dekodirati, tudi ne za prejemnika RSA istega sporočila. Mešana sporočila zato odpirajte s KemEnvelopedCms.

Datoteke PFX

ExportPfx zapiše datoteko PKCS #12 po RFC 7292. Ključ ML-DSA je v dodatni šifrirani vrečki za ključe poleg klasičnega ključa; z istim localKeyId je povezan s potrdilom. Ključi ML-KEM in sestavljeni ključi ML-KEM so v datoteki shranjeni na enak način. Drugi programi potrdilo in klasični ključ berejo kot običajno, dodatno vrečko pa prezrejo. Kako je datoteka šifrirana, opisuje Ključi in njihova hramba.

Začasne oblike

Za naslednje primere še noben standard ne določa identifikatorjev. Knjižnica uporablja začasne identifikatorje. Del PQ preverijo samo nasprotne strani, ki uporabljajo to knjižnico; klasični preverjevalniki podatke še naprej berejo.

PrimerMestoZačasni identifikator
Podpis PQ v CMSnepodpisani atribut v SignerInfo1.3.6.1.4.1.99999.3.1
Napoved podpisa PQ v CMSpodpisani atribut v SignerInfo1.3.6.1.4.1.99999.3.2
ML-DSA v XML, način PostQuantumSignatureMethodurn:oid:2.16.840.1.101.3.4.3.17 do .19
ML-DSA v XML, način Hybridelement AltSignatureValue v ds:Objectimenski prostor urn:x-wkl:xmldsig-pq
EncryptHybrid, HybridEncryptedData, PqCryptolastna binarna oblika–

Napoved v CMS ščiti klasični podpis. Če kdo podpis PQ odstrani, preverjevalnik s to knjižnico to prepozna kot znižanje zaščite in sporočilo zavrne.

Omejitve

  • Začasni identifikatorji niso registrirani. Prihodnji standard bo določil druge identifikatorje. Podpise PQ v CMS in XML zato uporabljajte samo med aplikacijami, ki uporabljajo to knjižnico, in podpisanih dokumentov ne hranite dolgoročno samo z zaupanjem v te identifikatorje.
  • Osnutki niso standardi. Sestavljeni ML-DSA in sestavljeni ML-KEM sledita osnutkoma IETF v določeni različici. Nasprotna stran, ki izvaja drugo različico, lahko takšne podpise in sporočila zavrne.
  • Lastna binarna oblika samo med vašimi aplikacijami. EncryptHybrid in PqCrypto nista primerna za izmenjavo s tujo programsko opremo. Za izmenjavo uporabite KemEnvelopedCms.

Sorodne teme

sl/wiki/pqcrypt/lib/concepts/pq-material-formats.txt · Last modified: by Wolfgang van der Stille