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