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