Warum WvdS.System.Security.Cryptography statt .NET 10 PQC?
Microsoft hat in .NET 10 (Preview, GA November 2025) native PQC-Unterstützung eingebaut1):
MLDsa / MLDsaCng / MLDsaOpenSsl – ML-DSA SignaturenMLKem / MLKemCng / MLKemOpenSsl – ML-KEM SchlüsselkapselungSlhDsa / SlhDsaCng / SlhDsaOpenSsl – SLH-DSA SignaturenCompositeMLDsa – Hybrid-Ansatz (manuell)| Aspekt | Microsoft .NET 10 | WvdS-Lösung |
|---|---|---|
| Verfügbarkeit | .NET 10+ (November 2025) | .NET 8.0+ (jetzt verfügbar) |
| Migrationsstrategie | Neues API, Code-Änderungen | Drop-in Replacement, 2 Zeilen |
| Hybrid-Modus | Manuell via CompositeMLDsa | Automatisch mit CryptoMode.Hybrid |
| Bestehender Code | Muss umgeschrieben werden | Funktioniert unverändert |
| X.509 Integration | Neue Klassen | Erweitert bestehende X509Certificate2 |
| CMS/PKCS#7 | Nicht dokumentiert | Volle Unterstützung |
| RSA/ECDSA Extensions | Separate Klassen | Erweitert bestehende RSA, ECDsa |
// .NET 10: Komplett neuer Code erforderlich using var mlDsa = MLDsa.Create(MLDsaAlgorithm.MLDsa65); byte[] signature = mlDsa.SignData(data); // Hybrid manuell implementieren using var composite = CompositeMLDsa.Create( CompositeMLDsaAlgorithm.MlDsa65Ecdsa256); byte[] hybridSig = composite.SignData(data); // Bestehender RSA-Code funktioniert NICHT mehr // using var rsa = RSA.Create(); // → keine PQ-Signatur
using WvdS.System.Security.Cryptography; // Zwei Zeilen – fertig! CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Bestehender Code funktioniert automatisch mit PQ using var rsa = RSA.Create(4096); byte[] signature = rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); // → Enthält automatisch RSA + ML-DSA Signatur
Problem: Großes Projekt mit hunderten RSA/ECDSA-Aufrufen.
| .NET 10 | Jede Stelle im Code ändern, neue Klassen verwenden |
| WvdS | CryptoConfig.DefaultMode = CryptoMode.Hybrid; – fertig |
Problem: Partner unterstützen noch kein PQC.
| .NET 10 | Zwei Code-Pfade: klassisch für alte, PQ für neue Partner |
| WvdS | Hybrid-Modus: Alte Partner ignorieren PQ-Extension, neue validieren sie |
Problem: Bestehende SignedCms-Integration.
| .NET 10 | Nicht dokumentiert, wahrscheinlich manuelle Integration |
| WvdS | SignedCmsExtensions erweitert bestehende API transparent |
Problem: X509Chain.Build() soll PQ-Signaturen validieren.
| .NET 10 | Neue Chain-Klassen erforderlich (unklar) |
| WvdS | Bestehende X509Chain funktioniert, PQ-Validierung automatisch |
Microsoft .NET 10 PQC kann sinnvoll sein wenn:
WvdS.System.Security.Cryptography ist besser wenn:
| Kriterium | Empfehlung |
|---|---|
| Bestehendes Projekt | WvdS |
| .NET 8.0 LTS | WvdS |
| Hybrid-Strategie | WvdS |
| CMS/PKCS#7 | WvdS |
| Greenfield + .NET 10 only | .NET 10 oder WvdS |
| Nur PQ (kein Hybrid) | Beides möglich |
Fazit: Für die meisten realen Migrationsszenarien bietet WvdS.System.Security.Cryptography den einfachsten und risikoärmsten Weg zu Post-Quantum-Kryptographie.
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional