Inhaltsverzeichnis
1.3 Primerjava z .NET 10
Zakaj WvdS.System.Security.Cryptography namesto .NET 10 PQC?
.NET 10 PQC-podpora
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)
Prednosti naše rešitve
| 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 |
Migracija: .NET 10 vs. WvdS
Z .NET 10 (nov API)
// .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
Z WvdS-rešitvijo (Drop-in)
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
Primerjava scenarijev
Scenarij 1: Migracija obstoječega projekta
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 |
Scenarij 2: Potrebna povratna združljivost
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 |
Scenarij 3: CMS/PKCS#7 dokumentni podpisi
Problem: Obstoječa SignedCms-integracija.
| .NET 10 | Ni dokumentirano, verjetno ročna integracija |
| WvdS | SignedCmsExtensions razširja obstoječi API transparentno |
Scenarij 4: X.509-certifikatne verige
Problem: X509Chain.Build() naj validira PQ-podpise.
| .NET 10 | Potrebni novi razredi verig (nejasno) |
| WvdS | Obstoječi X509Chain deluje, PQ-validacija samodejno |
Kdaj izbrati .NET 10?
Microsoft .NET 10 PQC je lahko smiselna, ko:
- Greenfield projekt (brez obstoječe kodne baze)
- Podprt samo .NET 10+
- Ni potrebe po hibridni strategiji
- Ni zahtev CMS/PKCS#7
Kdaj izbrati WvdS?
WvdS.System.Security.Cryptography je boljši, ko:
- Migracija obstoječega projekta
- Uporabljena .NET 8.0 ali prejšnje LTS-verzije
- Pomembna povratna združljivost (hibridni način)
- Potrebni CMS/PKCS#7-podpisi
- Želja po minimalnem migracijskem naporu
- Takojšnja razpoložljivost (ne čakati na .NET 10 GA)
Povzetek
| 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.
Nadaljnje branje
- Migracija – Fazna prestavitev
- Prvi koraki – Hitri začetek
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
1)
Microsoft .NET 10 PQC: https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography?view=net-10.0
Zuletzt geändert: dne 30.01.2026 ob 08:24