====== Namespace WvdS.System.Security.Cryptography.KeyExchange ====== Contiene classi per lo scambio chiavi post-quantum con ML-KEM. ---- ===== Classi ===== ^ Classe ^ Descrizione ^ | [[.:keyexchangeservice|KeyExchangeService]] | Servizio high-level per scambio chiavi Client/Server | | [[.:ephemeralkeypar|EphemeralKeyPair]] | Container per coppie di chiavi effimere ML-KEM/ML-DSA | | [[.:securesession|SecureSession]] | Rappresenta una sessione sicura stabilita | ---- ===== Classi Request/Response ===== ^ Classe ^ Descrizione ^ | [[.:keyexchangeinitrequest|KeyExchangeInitRequest]] | Messaggio di inizializzazione client | | [[.:keyexchangeinitresponse|KeyExchangeInitResponse]] | Messaggio di risposta server | | [[.:keyexchangeconfirmrequest|KeyExchangeConfirmRequest]] | Messaggio di conferma client | | [[.:keyexchangeconfirmresponse|KeyExchangeConfirmResponse]] | Risposta di conferma server | ---- ===== Flusso del protocollo ===== Client Server | | +- GenerateClientKeysAsync() | | | +- CreateInitRequest() ------------->| | (ML-KEM PubKey + ML-DSA Sig) | | +- ProcessClientRequest() | | (Verify, Encapsulate) |<--------------------- InitResponse-+ | (Ciphertext + ML-DSA Sig) | | | +- ProcessServerResponse() | | (Verify, Decapsulate) | | | +- CreateConfirmRequest() ---------->| | (HMAC Confirmation) | | +- VerifyConfirmation() |<------------------ ConfirmResponse-+ | | v v SecureSession SecureSession (Shared Secret) (Shared Secret) ---- ===== Esempio ===== using WvdS.System.Security.Cryptography.KeyExchange; var kex = new KeyExchangeService(); // === Client === var clientKeys = await kex.GenerateClientKeysAsync(); var initRequest = await kex.CreateInitRequestAsync(clientKeys); // Inviare initRequest al Server... // === Server === var serverKeys = await kex.GenerateServerKeysAsync(); var (response, serverSession) = await kex.ProcessClientRequestAsync( initRequest, serverKeys); // Inviare response al Client... // === Client === var clientSession = await kex.ProcessServerResponseAsync( response, clientKeys); // Entrambi hanno ora lo stesso Shared Secret! ---- ===== Vedi anche ===== * [[..:encryption:start|Namespace Encryption]] * [[..:keyderivation:start|Namespace KeyDerivation]] * [[..:..:..:start|Panoramica API]] {{tag>namespace keyexchange ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//