====== 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//