====== 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//