Scenari: 3
Funzioni FFI: ~25
Stato: Pianificato
Questa categoria comprende tutti gli scenari per la crittografia sicura Post-Quantum. Crittografia ibrida con ML-KEM, Key Encapsulation e crittografia simmetrica.
| ID | Scenario | Descrizione | Complessità | Stato |
|---|---|---|---|---|
| 7.1 | Crittografia ibrida | ECDH + ML-KEM combinati | Alta | Pianificato |
| 7.2 | Key Encapsulation | ML-KEM per scambio chiavi | Media | Pianificato |
| 7.3 | Crittografia file | Cifrare file di grandi dimensioni | Media | Pianificato |
| Componente | Algoritmo | Livello sicurezza | Standard |
|---|---|---|---|
| Key Encapsulation (PQ) | ML-KEM-768 | 192 Bit | NIST FIPS 203 |
| Key Exchange (classico) | ECDH P-384 | 192 Bit | NIST SP 800-56A |
| Key Derivation | HKDF-SHA384 | - | RFC 5869 |
| Crittografia simmetrica | AES-256-GCM | 256 Bit | NIST SP 800-38D |
Principio ibrido: Entrambi gli algoritmi (ECDH + ML-KEM) devono essere violati per compromettere la crittografia.
| Applicazione | Modalità raccomandata | Motivazione |
|---|---|---|
| Archiviazione a lungo termine | ML-KEM (solo PQ) | I dati devono rimanere sicuri 20+ anni |
| Comunicazione attuale | Ibrido | Compatibilità + sicurezza futura |
| Sistemi legacy | ECDH (Classico) | Nessun supporto PQ |
using WvdS.Security.Cryptography.Extensions.PQ; // Destinatario: generare coppia di chiavi using var recipientKey = ctx.GenerateHybridKeyPair( classicAlgorithm: EcdhCurve.P384, pqAlgorithm: PqAlgorithm.MlKem768 ); var publicKeyPem = recipientKey.ExportPublicKeyPem(); // Mittente: cifrare var (ciphertext, encapsulatedKey) = ctx.HybridEncrypt( plaintext: Encoding.UTF8.GetBytes("Messaggio segreto"), recipientPublicKey: publicKeyPem ); // Destinatario: decifrare var plaintext = ctx.HybridDecrypt( ciphertext: ciphertext, encapsulatedKey: encapsulatedKey, privateKey: recipientKey );
// Cifrare file di grandi dimensioni (streaming) await ctx.EncryptFileAsync( inputPath: "documento.pdf", outputPath: "documento.pdf.enc", recipientPublicKey: publicKeyPem, mode: CryptoMode.Hybrid ); // Decifrare await ctx.DecryptFileAsync( inputPath: "documento.pdf.enc", outputPath: "documento-decrypted.pdf", privateKey: recipientKey );
| Categoria | Relazione |
|---|---|
| 11. Gestione chiavi | Gestire coppie di chiavi |
| 10. TLS/mTLS | Key Exchange nell'handshake TLS |
| 12. Import/Export | Esportare chiavi cifrate |
« ← 6. Revoca | ↑ Scenari | 8. Firme digitali → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional