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 podpisi
  • MLKem / MLKemCng / MLKemOpenSsl – ML-KEM enkapsulacija ključev
  • SlhDsa / SlhDsaCng / SlhDsaOpenSsl – SLH-DSA podpisi
  • CompositeMLDsa – 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


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 30.01.2026 ob 08:24