====== Imenski prostor KeyDerivation ====== **Imenski prostor:** ''WvdS.System.Security.Cryptography.KeyDerivation'' Vsebuje razrede za izpeljavo ključev (KDF) s podporo PQ. ---- ===== Razredi ===== ^ Razred ^ Opis ^ | KeyDerivationExtensions | Funkcije KDF (HKDF, PBKDF2, Argon2id) | | HybridKeyMaterial | Vsebnik za izpeljane ključe | | TlsKeyMaterial | Ključni material v stilu TLS | | Tls13KeySchedule | Razpored ključev TLS 1.3 | ---- ===== Podprte funkcije KDF ===== ^ Funkcija ^ Standard ^ Uporaba ^ | HKDF | RFC 5869((RFC 5869: https://datatracker.ietf.org/doc/html/rfc5869)) | Sejni ključi iz skupne skrivnosti | | PBKDF2 | RFC 8018((RFC 8018: https://datatracker.ietf.org/doc/html/rfc8018)) | Ključi na podlagi gesla | | Argon2id | RFC 9106((RFC 9106: https://datatracker.ietf.org/doc/html/rfc9106)) | KDF, odporen na pomnilnik | ---- ===== Primer ===== using WvdS.System.Security.Cryptography.KeyDerivation; byte[] sharedSecret = /* iz ML-KEM */; byte[] salt = RandomNumberGenerator.GetBytes(32); // HKDF za sejne ključe byte[] aesKey = KeyDerivationExtensions.DeriveKey( sharedSecret, outputLength: 32, salt: salt, info: Encoding.UTF8.GetBytes("AES-256-GCM")); // Hibridna izpeljava ključev byte[] hybridKey = KeyDerivationExtensions.DeriveHybridKey( classicSecret: ecdhSecret, pqSecret: mlKemSecret, outputLength: 32); ---- ===== Glavne metode ===== ==== HKDF ==== ^ Metoda ^ Opis ^ | ''DeriveKey'' | HKDF-Extract-then-Expand | | ''HkdfExtract'' | Izvleče PRK iz IKM | | ''HkdfExpand'' | Razširi PRK v izhodni ključ | ==== Hibridno ==== ^ Metoda ^ Opis ^ | ''DeriveHybridKey'' | Kombinira klasično + PQ skrivnosti | | ''DeriveHybridKeyMaterial'' | Izpelje več ključev | ==== Na podlagi gesla ==== ^ Metoda ^ Opis ^ | ''Pbkdf2'' | Standardni PBKDF2 z opcijsko PQ-entropijo | | ''Pbkdf2WithPqSalt'' | PBKDF2 s PQ-ojačano soljo | | ''Argon2id'' | KDF, odporen na pomnilnik, preko OpenSSL 3.6 | ==== TLS ==== ^ Metoda ^ Opis ^ | ''DeriveTlsKeys'' | Ključni material v stilu TLS 1.2 | | ''DeriveTls13Keys'' | Razpored ključev TLS 1.3 | ---- ===== Priporočeni parametri Argon2id ===== ^ Uporaba ^ Ponovitve (t) ^ Pomnilnik (m) ^ Vzporednost (p) ^ | Zgoščevanje gesel | 3 | 64 MB | 4 | | Visoka varnost | 4 | 256 MB | 4 | | Malo pomnilnika | 4 | 16 MB | 4 | ---- ===== Varnostna opomba ===== **Varnost hibridnega načina:** V hibridnem načinu je končni ključ ogrožen samo, če sta OBE skrivnosti (klasična IN PQ) zlomljeni. To zagotavlja zaščito tako pred klasičnimi kot pred kvantnimi napadi. ---- ===== Glejte tudi ===== * [[.:keyexchange|Imenski prostor KeyExchange]] * [[.:encryption|Imenski prostor Encryption]] * [[.:start|Pregled API]] {{tag>namespace kdf hkdf pbkdf2 argon2id}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//