====== Imenski prostor WvdS.System.Security.Cryptography.KeyExchange ====== Vsebuje razrede za post-kvantno izmenjavo ključev z ML-KEM. ---- ===== Razredi ===== ^ Razred ^ Opis ^ | [[.:keyexchangeservice|KeyExchangeService]] | Visokonivojska storitev za izmenjavo ključev med odjemalcem in strežnikom | | [[.:ephemeralkeypar|EphemeralKeyPair]] | Vsebnik za kratkoživljajoče pare ključev ML-KEM/ML-DSA | | [[.:securesession|SecureSession]] | Predstavlja vzpostavljeno varno sejo | ---- ===== Razredi zahtev/odgovorov ===== ^ Razred ^ Opis ^ | [[.:keyexchangeinitrequest|KeyExchangeInitRequest]] | Sporočilo za začetek od odjemalca | | [[.:keyexchangeinitresponse|KeyExchangeInitResponse]] | Odgovor strežnika | | [[.:keyexchangeconfirmrequest|KeyExchangeConfirmRequest]] | Sporočilo za potrditev od odjemalca | | [[.:keyexchangeconfirmresponse|KeyExchangeConfirmResponse]] | Odgovor strežnika za potrditev | ---- ===== Potek protokola ===== Odjemalec Strežnik | | +- GenerateClientKeysAsync() | | | +- CreateInitRequest() --------------+ | (ML-KEM PubKey + ML-DSA Sig) | | +- ProcessClientRequest() | | (Preveri, Enkapsulira) |<--------------------- InitResponse -+ | (Šifrirano besedilo + ML-DSA Sig)| | | +- ProcessServerResponse() | | (Preveri, Dekapsulira) | | | +- CreateConfirmRequest() -----------+ | (HMAC potrditev) | | +- VerifyConfirmation() |<------------------ ConfirmResponse -+ | | v v SecureSession SecureSession (Skupna skrivnost) (Skupna skrivnost) ---- ===== Primer ===== using WvdS.System.Security.Cryptography.KeyExchange; var kex = new KeyExchangeService(); // === Odjemalec === var clientKeys = await kex.GenerateClientKeysAsync(); var initRequest = await kex.CreateInitRequestAsync(clientKeys); // Pošlji initRequest strežniku... // === Strežnik === var serverKeys = await kex.GenerateServerKeysAsync(); var (response, serverSession) = await kex.ProcessClientRequestAsync( initRequest, serverKeys); // Pošlji response odjemalcu... // === Odjemalec === var clientSession = await kex.ProcessServerResponseAsync( response, clientKeys); // Oba imata zdaj identično skupno skrivnost! ---- ===== Glejte tudi ===== * [[..:encryption:start|Imenski prostor Encryption]] * [[..:keyderivation:start|Imenski prostor KeyDerivation]] * [[..:start|Pregled API]] {{tag>namespace keyexchange ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//