====== WvdS.System.Security.Cryptography.KeyExchange Namespace ======
Enthält Klassen für Post-Quantum-Schlüsselaustausch mit ML-KEM.
----
===== Klassen =====
^ Klasse ^ Beschreibung ^
| [[.:keyexchangeservice|KeyExchangeService]] | High-Level Service für Client/Server Key Exchange |
| [[.:ephemeralkeypar|EphemeralKeyPair]] | Container für kurzlebige ML-KEM/ML-DSA Schlüsselpaare |
| [[.:securesession|SecureSession]] | Repräsentiert eine etablierte sichere Session |
----
===== Anfrage/Antwort-Klassen =====
^ Klasse ^ Beschreibung ^
| [[.:keyexchangeinitrequest|KeyExchangeInitRequest]] | Client-Initiierungsnachricht |
| [[.:keyexchangeinitresponse|KeyExchangeInitResponse]] | Server-Antwortnachricht |
| [[.:keyexchangeconfirmrequest|KeyExchangeConfirmRequest]] | Client-Bestätigungsnachricht |
| [[.:keyexchangeconfirmresponse|KeyExchangeConfirmResponse]] | Server-Bestätigungsantwort |
----
===== Protokollablauf =====
Client Server
│ │
├─ GenerateClientKeysAsync() │
│ │
├─ CreateInitRequest() ──────────────►│
│ (ML-KEM PubKey + ML-DSA Sig) │
│ ├─ ProcessClientRequest()
│ │ (Verify, Encapsulate)
│◄────────────────── InitResponse ───┤
│ (Ciphertext + ML-DSA Sig) │
│ │
├─ ProcessServerResponse() │
│ (Verify, Decapsulate) │
│ │
├─ CreateConfirmRequest() ───────────►│
│ (HMAC Confirmation) │
│ ├─ VerifyConfirmation()
│◄──────────────── ConfirmResponse ──┤
│ │
▼ ▼
SecureSession SecureSession
(Shared Secret) (Shared Secret)
----
===== Beispiel =====
using WvdS.System.Security.Cryptography.KeyExchange;
var kex = new KeyExchangeService();
// === Client ===
var clientKeys = await kex.GenerateClientKeysAsync();
var initRequest = await kex.CreateInitRequestAsync(clientKeys);
// Sende initRequest an Server...
// === Server ===
var serverKeys = await kex.GenerateServerKeysAsync();
var (response, serverSession) = await kex.ProcessClientRequestAsync(
initRequest, serverKeys);
// Sende response an Client...
// === Client ===
var clientSession = await kex.ProcessServerResponseAsync(
response, clientKeys);
// Beide haben nun identisches Shared Secret!
----
===== Siehe auch =====
* [[..:encryption:start|Encryption Namespace]]
* [[..:keyderivation:start|KeyDerivation Namespace]]
* [[de:int:pqcrypt:api:start|API-Übersicht]]
{{tag>namespace keyexchange ml-kem}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//