====== WvdS.System.Security.Cryptography.Encryption Namespace ====== Enthält Klassen für symmetrische Verschlüsselung mit PQ-Schlüsselableitung. ---- ===== Klassen ===== ^ Klasse ^ Beschreibung ^ | [[.:symmetricencryptionextensions|SymmetricEncryptionExtensions]] | AES-GCM Verschlüsselung mit PQ-Keys | | [[.:hybridencrypteddata|HybridEncryptedData]] | Container für hybrid-verschlüsselte Daten | | [[.:pqcrypto|PqCrypto]] | Convenience-API für PQ-Verschlüsselung | ---- ===== Verschlüsselungsmethoden ===== ^ Methode ^ Beschreibung ^ | EncryptWithPqKey | AES-GCM mit PQ-abgeleitetem Schlüssel | | EncryptHybrid | RSA-OAEP + ML-KEM hybrid | | EncryptEcdhPq | ECDH + ML-KEM hybrid | | EncryptAesGcm | Standard AES-256-GCM | ---- ===== 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); ---- ===== Siehe auch ===== * [[..:keyexchange:start|KeyExchange Namespace]] * [[..:keyderivation:start|KeyDerivation Namespace]] * [[de:int:pqcrypt:api:start|API-Übersicht]] {{tag>namespace encryption aes-gcm}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//