====== KeyDerivation prostor imena ======
**Prostor imena:** ''WvdS.System.Security.Cryptography.KeyDerivation''
Sadrži klase za derivaciju ključeva (KDF) s PQ podrškom.
----
===== Klase =====
^ Klasa ^ Opis ^
| KeyDerivationExtensions | KDF funkcije (HKDF, PBKDF2, Argon2id) |
| HybridKeyMaterial | Kontejner za derivirane ključeve |
| TlsKeyMaterial | TLS-stil materijal ključeva |
| Tls13KeySchedule | TLS 1.3 raspored ključeva |
----
===== Podržani KDF-ovi =====
^ Funkcija ^ Standard ^ Upotreba ^
| HKDF | RFC 5869((RFC 5869: https://datatracker.ietf.org/doc/html/rfc5869)) | Sesijski ključevi iz dijeljenog tajnog ključa |
| PBKDF2 | RFC 8018((RFC 8018: https://datatracker.ietf.org/doc/html/rfc8018)) | Ključevi temeljeni na lozinci |
| Argon2id | RFC 9106((RFC 9106: https://datatracker.ietf.org/doc/html/rfc9106)) | Memorijski zahtjevan KDF |
----
===== Primjer =====
using WvdS.System.Security.Cryptography.KeyDerivation;
byte[] sharedSecret = /* iz ML-KEM */;
byte[] salt = RandomNumberGenerator.GetBytes(32);
// HKDF za sesijske ključeve
byte[] aesKey = KeyDerivationExtensions.DeriveKey(
sharedSecret,
outputLength: 32,
salt: salt,
info: Encoding.UTF8.GetBytes("AES-256-GCM"));
// Hibridna derivacija ključeva
byte[] hybridKey = KeyDerivationExtensions.DeriveHybridKey(
classicSecret: ecdhSecret,
pqSecret: mlKemSecret,
outputLength: 32);
----
===== Glavne metode =====
==== HKDF ====
^ Metoda ^ Opis ^
| ''DeriveKey'' | HKDF-Extract-then-Expand |
| ''HkdfExtract'' | Ekstrahira PRK iz IKM |
| ''HkdfExpand'' | Proširuje PRK u izlazni ključ |
==== Hibridno ====
^ Metoda ^ Opis ^
| ''DeriveHybridKey'' | Kombinira klasične + PQ tajne ključeve |
| ''DeriveHybridKeyMaterial'' | Derivira više ključeva |
==== Temeljeno na lozinci ====
^ Metoda ^ Opis ^
| ''Pbkdf2'' | Standardni PBKDF2 s opcionalnom PQ entropijom |
| ''Pbkdf2WithPqSalt'' | PBKDF2 s PQ pojačanom soli |
| ''Argon2id'' | Memorijski zahtjevan KDF putem OpenSSL 3.6 |
==== TLS ====
^ Metoda ^ Opis ^
| ''DeriveTlsKeys'' | TLS 1.2 stil materijala ključeva |
| ''DeriveTls13Keys'' | TLS 1.3 raspored ključeva |
----
===== Preporučeni Argon2id parametri =====
^ Aplikacija ^ Iteracije (t) ^ Memorija (m) ^ Paralelizam (p) ^
| Hashiranje lozinki | 3 | 64 MB | 4 |
| Visoka sigurnost | 4 | 256 MB | 4 |
| Niska memorija | 4 | 16 MB | 4 |
----
===== Sigurnosna napomena =====
**Sigurnost hibridnog načina rada:**
U hibridnom načinu rada, konačni ključ je kompromitiran samo ako su OBA tajna ključa (klasični I PQ) probijena. Ovo pruža zaštitu i protiv klasičnih i protiv kvantnih napada.
----
===== Vidi također =====
* [[.:keyexchange|KeyExchange prostor imena]]
* [[.:encryption|Encryption prostor imena]]
* [[.:start|API-pregled]]
{{tag>namespace kdf hkdf pbkdf2 argon2id}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//