Imenski prostor KeyExchange

Imenski prostor: WvdS.System.Security.Cryptography.KeyExchange

Vsebuje razrede za post-kvantno izmenjavo ključev z ML-KEM.


Razredi

Razred Opis
KeyExchangeService Visokonivojska storitev za izmenjavo ključev med odjemalcem in strežnikom
EphemeralKeyPair Vsebnik za kratkoživljajoče pare ključev ML-KEM/ML-DSA
SecureSession Predstavlja vzpostavljeno varno sejo

Razredi zahtev/odgovorov

Razred Opis
KeyExchangeInitRequest Sporočilo za začetek od odjemalca
KeyExchangeInitResponse Odgovor strežnika
KeyExchangeConfirmRequest Sporočilo za potrditev od odjemalca
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!

Glavne metode

KeyExchangeService

Metoda Opis
GenerateClientKeysAsync Generiranje ključev na strani odjemalca
GenerateServerKeysAsync Generiranje ključev na strani strežnika
CreateInitRequestAsync Ustvarjanje sporočila za začetek
ProcessClientRequestAsync Strežnik obdela zahtevo odjemalca
ProcessServerResponseAsync Odjemalec obdela odgovor strežnika
CreateConfirmRequestAsync Ustvarjanje sporočila za potrditev
VerifyConfirmationAsync Preverjanje potrditve

Glejte tudi


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 29.01.2026 ob 23:17