Zakaj WvdS.System.Security.Cryptography namesto .NET 10 PQC?
Microsoft je v .NET 10 (Preview, GA november 2025) vgradil nativno PQC-podporo1):
MLDsa / MLDsaCng / MLDsaOpenSsl – ML-DSA podpisiMLKem / MLKemCng / MLKemOpenSsl – ML-KEM enkapsulacija ključevSlhDsa / SlhDsaCng / SlhDsaOpenSsl – SLH-DSA podpisiCompositeMLDsa – Hibridni pristop (ročno)| Vidik | Microsoft .NET 10 | WvdS-rešitev |
|---|---|---|
| Razpoložljivost | .NET 10+ (november 2025) | .NET 8.0+ (že na voljo) |
| Migracijska strategija | Nov API, spremembe kode | Drop-in zamenjava, 2 vrstici |
| Hibridni način | Ročno preko CompositeMLDsa | Samodejno z CryptoMode.Hybrid |
| Obstoječa koda | Mora biti prepisana | Deluje nespremenjeno |
| X.509 integracija | Novi razredi | Razširja obstoječi X509Certificate2 |
| CMS/PKCS#7 | Ni dokumentirano | Polna podpora |
| RSA/ECDSA razširitve | Ločeni razredi | Razširja obstoječi RSA, ECDsa |
// .NET 10: Potrebna popolnoma nova koda using var mlDsa = MLDsa.Create(MLDsaAlgorithm.MLDsa65); byte[] signature = mlDsa.SignData(data); // Hibrid ročno implementirati using var composite = CompositeMLDsa.Create( CompositeMLDsaAlgorithm.MlDsa65Ecdsa256); byte[] hybridSig = composite.SignData(data); // Obstoječa RSA-koda NE deluje več // using var rsa = RSA.Create(); // → brez PQ-podpisa
using WvdS.System.Security.Cryptography; // Dve vrstici – končano! CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Obstoječa koda samodejno deluje s PQ using var rsa = RSA.Create(4096); byte[] signature = rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); // → Samodejno vsebuje RSA + ML-DSA podpis
Problem: Velik projekt s stotinami RSA/ECDSA-klicev.
| .NET 10 | Vsako mesto v kodi spremeniti, uporabiti nove razrede |
| WvdS | CryptoConfig.DefaultMode = CryptoMode.Hybrid; – končano |
Problem: Partnerji še ne podpirajo PQC.
| .NET 10 | Dve poti kode: klasična za stare, PQ za nove partnerje |
| WvdS | Hibridni način: Stari partnerji ignorirajo PQ-razširitev, novi jo validirajo |
Problem: Obstoječa SignedCms-integracija.
| .NET 10 | Ni dokumentirano, verjetno ročna integracija |
| WvdS | SignedCmsExtensions razširja obstoječi API transparentno |
Problem: X509Chain.Build() naj validira PQ-podpise.
| .NET 10 | Potrebni novi razredi verig (nejasno) |
| WvdS | Obstoječi X509Chain deluje, PQ-validacija samodejno |
Microsoft .NET 10 PQC je lahko smiselna, ko:
WvdS.System.Security.Cryptography je boljši, ko:
| Kriterij | Priporočilo |
|---|---|
| Obstoječ projekt | WvdS |
| .NET 8.0 LTS | WvdS |
| Hibridna strategija | WvdS |
| CMS/PKCS#7 | WvdS |
| Greenfield + samo .NET 10 | .NET 10 ali WvdS |
| Samo PQ (brez hibridnega) | Oboje mogoče |
Sklep: Za večino realnih migracijskih scenarijev ponuja WvdS.System.Security.Cryptography najenostavnejšo in najmanj tvegano pot do post-kvantne kriptografije.
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional