Inhaltsverzeichnis
Namespace KeyExchange
Namespace: WvdS.System.Security.Cryptography.KeyExchange
Contiene classi per lo scambio chiavi post-quantum con ML-KEM.
Classi
| Classe | Descrizione |
|---|---|
| KeyExchangeService | Servizio high-level per scambio chiavi Client/Server |
| EphemeralKeyPair | Container per coppie di chiavi effimere ML-KEM/ML-DSA |
| SecureSession | Rappresenta una sessione sicura stabilita |
Classi Request/Response
| Classe | Descrizione |
|---|---|
| KeyExchangeInitRequest | Messaggio di inizializzazione client |
| KeyExchangeInitResponse | Messaggio di risposta server |
| KeyExchangeConfirmRequest | Messaggio di conferma client |
| 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!
Metodi principali
KeyExchangeService
| Metodo | Descrizione |
|---|---|
GenerateClientKeysAsync | Generare chiavi lato client |
GenerateServerKeysAsync | Generare chiavi lato server |
CreateInitRequestAsync | Creare messaggio di inizializzazione |
ProcessClientRequestAsync | Server elabora richiesta client |
ProcessServerResponseAsync | Client elabora risposta server |
CreateConfirmRequestAsync | Creare messaggio di conferma |
VerifyConfirmationAsync | Verificare conferma |
Vedi anche
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: il 29/01/2026 alle 23:17