====== Namespace Encryption ====== **Namespace:** ''WvdS.System.Security.Cryptography.Encryption'' Contiene classi per la cifratura simmetrica con derivazione chiavi PQ. ---- ===== Classi ===== ^ Classe ^ Descrizione ^ | SymmetricEncryptionExtensions | Cifratura AES-GCM con chiavi PQ | | HybridEncryptedData | Container per dati cifrati in modalita ibrida | | PqCrypto | API di convenienza per cifratura PQ | ---- ===== Modalita di cifratura ===== | Modalita | Classico | ML-KEM | Utilizzo | | Classic | RSA-OAEP / ECDH | - | Comportamento standard .NET | | Hybrid | RSA-OAEP / ECDH | ? | Massima sicurezza | | PostQuantum | - | ? | Puramente post-quantum | ---- ===== Formato di cifratura ===== +---------------------------------------------+ | Dati cifrati AES-GCM | +---------------------------------------------+ | [12 Bytes] Nonce (IV) | | [n Bytes] Ciphertext | | [16 Bytes] Authentication Tag | +---------------------------------------------+ ---- ===== Esempio ===== using WvdS.System.Security.Cryptography.Encryption; using WvdS.System.Security.Cryptography.KeyExchange; // Shared Secret dallo scambio chiavi byte[] sharedSecret = session.SharedSecret; // Cifrare byte[] plaintext = Encoding.UTF8.GetBytes("Messaggio segreto"); byte[] encrypted = SymmetricEncryptionExtensions.EncryptWithPqKey( plaintext, sharedSecret); // Decifrare byte[] decrypted = SymmetricEncryptionExtensions.DecryptWithPqKey( encrypted, sharedSecret); ---- ===== Metodi principali ===== ==== SymmetricEncryptionExtensions ==== ^ Metodo ^ Descrizione ^ | ''EncryptWithPqKey'' | AES-GCM con chiave derivata PQ | | ''DecryptWithPqKey'' | Decifratura con chiave PQ | | ''EncryptHybrid'' | RSA-OAEP + ML-KEM ibrido | | ''DecryptHybrid'' | Decifratura ibrida | | ''EncryptEcdhPq'' | ECDH + ML-KEM ibrido | | ''DecryptEcdhPq'' | Decifratura ECDH+ML-KEM | | ''EncryptAesGcm'' | AES-256-GCM standard | | ''DecryptAesGcm'' | Decifratura AES-GCM | | ''EncryptStream'' | Cifratura basata su stream | | ''DecryptStream'' | Decifratura basata su stream | ==== PqCrypto ==== ^ Metodo ^ Descrizione ^ | ''GenerateKeyPair'' | Generare coppia di chiavi ML-KEM | | ''Encrypt'' | Cifratura PQ | | ''Decrypt'' | Decifratura PQ | ---- ===== Nota sulla sicurezza ===== **Combinazione chiavi in modalita Hybrid:** Combined Key = HKDF-SHA256( ikm = classicSecret || pqSecret, info = "WvdS-Hybrid-Key" ) Anche se un attaccante compromette il secret classico, la cifratura rimane protetta dal secret PQ (e viceversa). ---- ===== Vedi anche ===== * [[.:keyexchange|Namespace KeyExchange]] * [[.:keyderivation|Namespace KeyDerivation]] * [[.:start|Panoramica API]] {{tag>namespace encryption aes-gcm ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//