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