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