Color scheme: Riviera
You are here: start » sl » Dokumentacija » Postkvantna kriptografija » WKL.System.Security.Cryptography – pregled » Koncepti » Pravila za postkvantne postopke

Pravila za postkvantne postopke

graph TD
    OP["Operacija z delom PQ"]
    REC{"Ali smernica postopek priporoča?"}
    KIND{"Ali operacija ustvari nove podatke?"}
    PURE{"CryptoMode.PostQuantum?"}
    FLAG{"Ali je izjema nastavljena v PostQuantumConfig.Exemptions?"}
    RUN["Operacija se izvede"]
    EVT["Dogodek PolicyDeviation, nato se operacija izvede"]
    ERR["CryptographicException z razdelkom smernice in imenom izjeme"]
    OP --> REC
    REC -- "da" --> RUN
    REC -- "ne" --> PURE
    PURE -- "da" --> FLAG
    PURE -- "ne" --> KIND
    KIND -- "da: ustvarjanje, podpisovanje, enkapsulacija, šifriranje" --> FLAG
    KIND -- "ne: preverjanje, dekapsulacija, dešifriranje" --> EVT
    FLAG -- "da" --> EVT
    FLAG -- "ne" --> ERR

Slika: Priporočeni postopki se izvedejo brez omejitev. Drugi postopki ustvarijo nove podatke samo z izjemo. Obstoječe podatke je brez izjeme še vedno mogoče preveriti in prebrati, razen v načinu PostQuantum. Vsako odstopanje sporoči dogodek PolicyDeviation.

Knjižnica za postkvantne postopke (PQ) kot privzeto nastavitev uveljavlja priporočila tehnične smernice BSI TR-02102-1 »Kryptographische Verfahren: Empfehlungen und Schlüssellängen« (kriptografski postopki: priporočila in dolžine ključev), različica 2026-01, ki jo izdaja nemški Zvezni urad za informacijsko varnost (BSI). Postopki, ki jih smernica ne priporoča, so še na voljo, ker jih zahtevajo standardi in nasprotne strani. Aplikacija pa jih uporabi samo, če to ob zagonu izrecno dovoli.

Ključne funkcije

  • Privzete nastavitve po BSI TR-02102-1 (2026-01): PostQuantumConfig.Policy navaja smernico. Brez dodatnih navedb knjižnica ustvarja podatke samo s priporočenimi postopki.
  • Izjeme v PostQuantumConfig.Exemptions za tri pravila: čisti postopki PQ, zmanjšani nabori parametrov in nepriporočeni kombinatorji.
  • Berljivost obstoječih podatkov: Preverjanje, dekapsulacija in dešifriranje z zmanjšanimi nabori parametrov in nepriporočenimi kombinatorji ostanejo mogoči brez izjeme.
  • Dogodek PostQuantumConfig.PolicyDeviation ob vsaki uporabi, ki presega priporočilo, za beleženje, štetje ali zavrnitev.
  • KeyCombine po NIST SP 800-227 kot privzeta nastavitev vseh hibridnih dogovorov o ključu v knjižnici, javno na voljo kot KeyCombiner.Combine.

Osnovni koncepti

Uvrstitev po smernici

Preglednica ločuje tri vprašanja: kaj smernica priporoča, kaj knjižnica izvaja in kaj dovoli brez izjeme.

PostopekBSI TR-02102-1 (2026-01)V knjižniciBrez izjeme
ML-DSA-65, ML-DSA-87, različica »hedged«, različica »pure«priporočen, §5.3.4.2, pregl. 5.7, opomba 5.10izvedendovoljen, v kombinaciji z RSA ali ECDSA
ML-DSA-44ni priporočenizvedenustvarjanje in podpisovanje zaprto, preverjanje dovoljeno
ML-KEM-768, ML-KEM-1024priporočen, §2.4.3, pregl. 2.7izvedendovoljen, v kombinaciji s klasičnim postopkom
ML-KEM-512ni priporočenizvedenustvarjanje in enkapsulacija zaprta, dekapsulacija dovoljena
Podpis PQ samo v kombinaciji s klasičnim podpisompriporočen, §5.3.4izveden: hibridna potrdila, seznami preklicanih potrdil in zahtevki, sestavljeni ML-DSA, hibridni podpisi CMS in XMLdovoljen
Enkapsulacija ključa PQ samo v kombinaciji s klasičnim postopkompriporočena, §2.4izvedena: ECDH z ML-KEM, RSA-OAEP z ML-KEM, sestavljeni ML-KEMdovoljena, kombinatorji glejte spodaj
Samostojni postopek PQ (CryptoMode.PostQuantum)ni priporočen, §2.4 in §5.3.4izveden, na primer za potrdila ML-DSA po RFC 9881vsaka operacija zaprta, tudi preverjanje
KeyCombine, NIST SP 800-227, en. (15), H = HKDFpriporočen, §2.2, pregl. 2.1izveden, privzeta nastavitevdovoljen
CatKDF, ETSI TS 103 744priporočen, §2.2, pregl. 2.1ni izveden–
Prvi kombinator knjižnice (HybridKeyCombiner.Version1)ni med priporočenimi kombinatorjiberljivustvarjanje zaprto, branje dovoljeno
Kombinator sestavljenega ML-KEM (SHA3-256)ni med priporočenimi kombinatorjiizvedenenkapsulacija zaprta, dekapsulacija dovoljena
SLH-DSA, LMS/HSS, XMSS/XMSS^MTpriporočeni, §5.3.4.1, §5.3.4.3niso izvedeni–
FrodoKEM, Classic McEliecepriporočena, §2.4.1, §2.4.2nista izvedena–
HKDFpriporočen, priloga B.1, pregl. B.1izveden, kot H v KeyCombinedovoljen
Argon2id za ključe iz geselpriporočen, priloga B.1.2izveden, za varnostne kopije datotek s ključidovoljen

»Zaprto« pomeni: operacija sproži CryptographicException. »Dovoljen« pri nepriporočenem postopku pomeni: operacija se izvede in sporoči dogodek PolicyDeviation.

Izjeme

PostQuantumConfig.Exemptions je naštevni tip zastavic (PostQuantumExemptions). Vsaka zastavica dovoli ustvarjanje novih podatkov po pravilu, ki ga smernica ne priporoča:

ZastavicadovoliPodlaga
PurePostQuantumnačin CryptoMode.PostQuantum z vsemi operacijami: čista potrdila in seznami preklicanih potrdil ML-DSA, čisti podpisi ML-DSA, šifriranje za čiste prejemnike ML-KEM; poleg tega EnablePostQuantum(CryptoMode.PostQuantum)§2.4, §5.3.4
ReducedParameterSetsustvarjanje ključev, podpisovanje in enkapsulacijo z ML-DSA-44 in ML-KEM-512, tudi v sestavljenih parih§5.3.4.2, pregl. 5.7; §2.4.3, pregl. 2.7
NonRecommendedCombinersenkapsulacijo na sestavljene ključe ML-KEM; ustvarjanje hibridnih podatkov s HybridKeyCombiner.Version1; DeriveHybridKey in DeriveHybridKeyMaterial v načinu Hybrid§2.2, pregl. 2.1

Zastavice nastavite enkrat ob zagonu aplikacije, pred prvo kriptografsko operacijo. Veljajo za ves proces:

// Aplikacija izdaja potrdila ML-DSA po RFC 9881.
PostQuantumConfig.Exemptions = PostQuantumExemptions.PurePostQuantum;

Če zastavica manjka, CryptographicException navede razdelek smernice, priporočeno nadomestilo in zastavico. Sporočilo za ML-DSA-44 se glasi:

ML-DSA-44 is not recommended by BSI TR-02102-1 (2026-01), §5.3.4.2, Table 5.7; use ML-DSA-65 or ML-DSA-87. To create data with it anyway, permit it at startup with PostQuantumConfig.Exemptions |= PostQuantumExemptions.ReducedParameterSets. Verifying and decapsulating existing data needs no exemption.

Dogodek PolicyDeviation

PostQuantumConfig.PolicyDeviation sporoči vsako uporabo, ki presega priporočilo, tik preden se operacija izvede. Argumenti tipa PostQuantumPolicyEventArgs opisujejo odstopanje:

LastnostVsebina
Rulepravilo, poimenovano po zastavici, ki ga dovoli; nastavljena je natanko ena zastavica
Algorithmpostopek, na primer ML-DSA-44, CryptoMode.PostQuantum ali Composite ML-KEM (SHA3-256)
Operationoperacija, na primer GenerateKey, Sign ali Verify; namenjena dnevnikom, ni trdna pogodba
Referencesmernica in razdelek, na primer BSI TR-02102-1 (2026-01), §5.3.4.2, Table 5.7
IsExemptedtrue, če je uporabo dovolila zastavica; false, če je dovoljena brez zastavice, ker samo preverja ali odpira obstoječe podatke

Obravnavalnik se izvaja sinhrono v niti operacije. Če sproži izjemo, se operacija prekine in klicatelj prejme to izjemo. Tako lahko aplikacija zavrne tudi preverjanje starih podatkov z nepriporočenimi postopki. Operacije, ki ne uspejo zaradi manjkajoče zastavice, dogodka ne sporočijo.

PostQuantumConfig.PolicyDeviation += (_, e) =>
    Console.WriteLine($"{e.Algorithm} v {e.Operation} ({e.Reference}), izjema: {e.IsExempted}");

KeyCombine

Hibridni dogovor o ključu izvede postopek PQ in klasični postopek vzporedno ter iz obeh skrivnosti izpelje en ključ. Ključ naj ostane varen, dokler je varen vsaj eden od obeh postopkov. To uspe samo, če kombinator poleg skrivnosti vključi tudi šifrirana besedila in javna ključa; smernica za to priporoča CatKDF in KeyCombine (§2.2, pregl. 2.1).

Knjižnica izvaja KeyCombine po NIST SP 800-227, razdelek 4.6.2, enačba (15), funkcijo H pa uresniči s HKDF-SHA256 (RFC 5869), kot priporoča smernica:

  • Vhod: obe skrivnosti kot ključni material; kot kontekst dolžini skrivnosti, obe šifrirani besedili, oba javna ključa in ločevalnik domene. Pred vsako vrednostjo stoji njena dolžina, da se dva vhoda ne moreta sestaviti v isto zaporedje bajtov.
  • Ločevalnik domene: stalni identifikator konstrukcije, imeni obeh postopkov z naborom parametrov in kontekst klicatelja.
  • Uporaba: HybridKeyAgreement (ECDH z ML-KEM), EncryptHybrid (RSA-OAEP z ML-KEM) in EncryptEcdhPq privzeto uporabljajo KeyCombine. KeyCombiner.Combine je na voljo za lastne protokole.

HybridEncryptedData kombinator zapiše v glavo podatkov. Podatke iz starejše različice knjižnice s HybridKeyCombiner.Version1 je zato še vedno mogoče dešifrirati.

Omejitve

  • Ena smernica, ki je ni mogoče zamenjati. Knjižnica pozna samo BSI TR-02102-1 v različici 2026-01. Nova različica smernice pride z novo različico knjižnice; CHANGELOG takrat navede spremenjena pravila.
  • Samo postopki PQ. Pravila veljajo za ML-DSA, ML-KEM, njune kombinacije in kombinatorje. Klasičnih postopkov in dolžin njihovih ključev, na primer RSA-2048 namesto RSA-3072, knjižnica ne preverja. Klicev brez CryptoMode in brez ključa PQ pravila ne zadevajo.
  • Gradniki za posamezen postopek. MLDsaKey, MLKemKey in metode ponudnikov (ICryptoProvider, na primer SignMlDsaAsync v Blazor WebAssembly) izračunajo en postopek samostojno, kot gradnik za kombinacijo. Preverjajo nabore parametrov, ne načina delovanja. Da takšen gradnik v vašem protokolu deluje skupaj s klasičnim postopkom, zagotovi vaša aplikacija.
  • Lastni ključi za hibridne podpise. Smernica priporoča, da se ključi za hibridne podpise ustvarijo samo za ta namen in se ne uporabljajo tudi za enostavne podpise (§5.3.4). Brez lastnega ključa knjižnica za vsako hibridno potrdilo ustvari nov ključ ML-DSA. Če ključ podate sami, na primer z X509CertificateBuilder.AlternativeKey, knjižnica ne more preveriti, ali ga uporabljate tudi drugje.
  • Ni nadomestilo za presojo. Privzete nastavitve izvajajo priporočila smernice glede postopkov in naborov parametrov. Niso odobritev ali certifikacija knjižnice ali aplikacije.
  • PBKDF2 v datotekah PFX. PKCS #12 ne pozna Argon2id. Datoteke PFX zato svoj ključ izpeljejo s PBKDF2; glejte Ključi in njihova hramba.
  • Zastavice za ves proces. Exemptions velja za vse niti. Sprememba med izvajanjem operacij na te operacije vpliva brez določenega vrstnega reda.

Sorodne teme

sl/wiki/pqcrypt/lib/concepts/post-quantum-policy.txt · Last modified: by Wolfgang van der Stille