====== Encryption Namespace ====== **Namespace:** ''WvdS.System.Security.Cryptography.Encryption'' Enthält Klassen für symmetrische Verschlüsselung mit PQ-Schlüsselableitung. ---- ===== Klassen ===== ^ Klasse ^ Beschreibung ^ | SymmetricEncryptionExtensions | AES-GCM Verschlüsselung mit PQ-Keys | | HybridEncryptedData | Container für hybrid-verschlüsselte Daten | | PqCrypto | Convenience-API für PQ-Verschlüsselung | ---- ===== Verschlüsselungsmodi ===== | Modus | Klassisch | ML-KEM | Verwendung | | Classic | RSA-OAEP / ECDH | - | Standard .NET Verhalten | | Hybrid | RSA-OAEP / ECDH | ✓ | Maximale Sicherheit | | PostQuantum | - | ✓ | Rein post-quantum | ---- ===== Verschlüsselungsformat ===== ┌─────────────────────────────────────────┐ │ AES-GCM Verschlüsselte Daten │ ├─────────────────────────────────────────┤ │ [12 Bytes] Nonce (IV) │ │ [n Bytes] Ciphertext │ │ [16 Bytes] Authentication Tag │ └─────────────────────────────────────────┘ ---- ===== Beispiel ===== using WvdS.System.Security.Cryptography.Encryption; using WvdS.System.Security.Cryptography.KeyExchange; // Shared Secret aus Key Exchange byte[] sharedSecret = session.SharedSecret; // Verschlüsseln byte[] plaintext = Encoding.UTF8.GetBytes("Geheime Nachricht"); byte[] encrypted = SymmetricEncryptionExtensions.EncryptWithPqKey( plaintext, sharedSecret); // Entschlüsseln byte[] decrypted = SymmetricEncryptionExtensions.DecryptWithPqKey( encrypted, sharedSecret); ---- ===== Hauptmethoden ===== ==== SymmetricEncryptionExtensions ==== ^ Methode ^ Beschreibung ^ | ''EncryptWithPqKey'' | AES-GCM mit PQ-abgeleitetem Schlüssel | | ''DecryptWithPqKey'' | Entschlüsselung mit PQ-Key | | ''EncryptHybrid'' | RSA-OAEP + ML-KEM hybrid | | ''DecryptHybrid'' | Hybrid-Entschlüsselung | | ''EncryptEcdhPq'' | ECDH + ML-KEM hybrid | | ''DecryptEcdhPq'' | ECDH+ML-KEM Entschlüsselung | | ''EncryptAesGcm'' | Standard AES-256-GCM | | ''DecryptAesGcm'' | AES-GCM Entschlüsselung | | ''EncryptStream'' | Stream-basierte Verschlüsselung | | ''DecryptStream'' | Stream-basierte Entschlüsselung | ==== PqCrypto ==== ^ Methode ^ Beschreibung ^ | ''GenerateKeyPair'' | ML-KEM Schlüsselpaar generieren | | ''Encrypt'' | PQ-Verschlüsselung | | ''Decrypt'' | PQ-Entschlüsselung | ---- ===== Sicherheitshinweis ===== **Key-Kombinierung im Hybrid-Modus:** Combined Key = HKDF-SHA256( ikm = classicSecret || pqSecret, info = "WvdS-Hybrid-Key" ) Selbst wenn ein Angreifer das klassische Secret kompromittiert, bleibt die Verschlüsselung durch das PQ-Secret geschützt (und umgekehrt). ---- ===== Siehe auch ===== * [[.:keyexchange|KeyExchange Namespace]] * [[.:keyderivation|KeyDerivation Namespace]] * [[.:start|API-Übersicht]] {{tag>namespace encryption aes-gcm ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//