KeyDerivation Namespace

Namespace: WvdS.System.Security.Cryptography.KeyDerivation

Contains classes for key derivation (KDF) with PQ support.


Classes

Class Description
KeyDerivationExtensions KDF functions (HKDF, PBKDF2, Argon2id)
HybridKeyMaterial Container for derived keys
TlsKeyMaterial TLS-style key material
Tls13KeySchedule TLS 1.3 key schedule

Supported KDFs

Function Standard Usage
HKDF RFC 58691) Session keys from shared secret
PBKDF2 RFC 80182) Password-based keys
Argon2id RFC 91063) Memory-hard KDF

Example

using WvdS.System.Security.Cryptography.KeyDerivation;
 
byte[] sharedSecret = /* from ML-KEM */;
byte[] salt = RandomNumberGenerator.GetBytes(32);
 
// HKDF for session keys
byte[] aesKey = KeyDerivationExtensions.DeriveKey(
    sharedSecret,
    outputLength: 32,
    salt: salt,
    info: Encoding.UTF8.GetBytes("AES-256-GCM"));
 
// Hybrid key derivation
byte[] hybridKey = KeyDerivationExtensions.DeriveHybridKey(
    classicSecret: ecdhSecret,
    pqSecret: mlKemSecret,
    outputLength: 32);

Main Methods

HKDF

Method Description
DeriveKey HKDF Extract-then-Expand
HkdfExtract Extracts PRK from IKM
HkdfExpand Expands PRK to output key

Hybrid

Method Description
DeriveHybridKey Combines classic + PQ secrets
DeriveHybridKeyMaterial Derives multiple keys

Password-based

Method Description
Pbkdf2 Standard PBKDF2 with optional PQ entropy
Pbkdf2WithPqSalt PBKDF2 with PQ-enhanced salt
Argon2id Memory-hard KDF via OpenSSL 3.6

TLS

Method Description
DeriveTlsKeys TLS 1.2 style key material
DeriveTls13Keys TLS 1.3 key schedule

Application Iterations (t) Memory (m) Parallelism (p)
Password hashing 3 64 MB 4
High security 4 256 MB 4
Low memory 4 16 MB 4

Security Note

Hybrid mode security:

In hybrid mode, the final key is only compromised if BOTH secrets (classic AND PQ) are broken. This provides protection against both classical and quantum attacks.


See Also


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: on 2026/01/29 at 11:15 PM