Inhaltsverzeichnis
KeyExchange prostor imena
Prostor imena: WvdS.System.Security.Cryptography.KeyExchange
Sadrži klase za post-kvantnu razmjenu ključeva s ML-KEM.
Klase
| Klasa | Opis |
|---|---|
| KeyExchangeService | High-level servis za Client/Server razmjenu ključeva |
| EphemeralKeyPair | Kontejner za kratkotrajne ML-KEM/ML-DSA parove ključeva |
| SecureSession | Predstavlja uspostavljenu sigurnu sesiju |
Klase zahtjeva/odgovora
| Klasa | Opis |
|---|---|
| KeyExchangeInitRequest | Poruka inicijacije klijenta |
| KeyExchangeInitResponse | Poruka odgovora poslužitelja |
| KeyExchangeConfirmRequest | Poruka potvrde klijenta |
| 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č!
Glavne metode
KeyExchangeService
| Metoda | Opis |
|---|---|
GenerateClientKeysAsync | Generiranje ključeva na strani klijenta |
GenerateServerKeysAsync | Generiranje ključeva na strani poslužitelja |
CreateInitRequestAsync | Kreiranje poruke inicijacije |
ProcessClientRequestAsync | Poslužitelj obrađuje zahtjev klijenta |
ProcessServerResponseAsync | Klijent obrađuje odgovor poslužitelja |
CreateConfirmRequestAsync | Kreiranje poruke potvrde |
VerifyConfirmationAsync | Verifikacija potvrde |
Vidi također
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 29.01.2026. u 23:17