====== WvdS.System.Security.Cryptography.KeyExchange prostor imena ======
Sadrži klase za post-kvantnu razmjenu ključeva s ML-KEM.
----
===== Klase =====
^ Klasa ^ Opis ^
| [[.:keyexchangeservice|KeyExchangeService]] | High-level servis za Client/Server razmjenu ključeva |
| [[.:ephemeralkeypar|EphemeralKeyPair]] | Kontejner za kratkotrajne ML-KEM/ML-DSA parove ključeva |
| [[.:securesession|SecureSession]] | Predstavlja uspostavljenu sigurnu sesiju |
----
===== Klase zahtjeva/odgovora =====
^ Klasa ^ Opis ^
| [[.:keyexchangeinitrequest|KeyExchangeInitRequest]] | Poruka inicijacije klijenta |
| [[.:keyexchangeinitresponse|KeyExchangeInitResponse]] | Poruka odgovora poslužitelja |
| [[.:keyexchangeconfirmrequest|KeyExchangeConfirmRequest]] | Poruka potvrde klijenta |
| [[.:keyexchangeconfirmresponse|KeyExchangeConfirmResponse]] | Odgovor potvrde poslužitelja |
----
===== Tijek protokola =====
Klijent Poslužitelj
| |
+- 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)
----
===== Primjer =====
using WvdS.System.Security.Cryptography.KeyExchange;
var kex = new KeyExchangeService();
// === Klijent ===
var clientKeys = await kex.GenerateClientKeysAsync();
var initRequest = await kex.CreateInitRequestAsync(clientKeys);
// Pošalji initRequest poslužitelju...
// === Poslužitelj ===
var serverKeys = await kex.GenerateServerKeysAsync();
var (response, serverSession) = await kex.ProcessClientRequestAsync(
initRequest, serverKeys);
// Pošalji response klijentu...
// === Klijent ===
var clientSession = await kex.ProcessServerResponseAsync(
response, clientKeys);
// Oba sada imaju identičan dijeljeni tajni ključ!
----
===== Vidi također =====
* [[..:encryption:start|Encryption prostor imena]]
* [[..:keyderivation:start|KeyDerivation prostor imena]]
* [[..:..:..:api:start|API-pregled]]
{{tag>namespace keyexchange ml-kem}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//