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


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: il 29/01/2026 alle 23:16