Inhaltsverzeichnis
1.3 Usporedba s .NET 10
Zašto WvdS.System.Security.Cryptography umjesto .NET 10 PQC?
.NET 10 PQC-podrška
Microsoft je u .NET 10 (Preview, GA studeni 2025) ugradio nativnu PQC-podršku1):
MLDsa/MLDsaCng/MLDsaOpenSsl- ML-DSA potpisiMLKem/MLKemCng/MLKemOpenSsl- ML-KEM enkapsulacija ključevaSlhDsa/SlhDsaCng/SlhDsaOpenSsl- SLH-DSA potpisiCompositeMLDsa- Hibridni pristup (ručno)
Prednosti našeg rješenja
| Aspekt | Microsoft .NET 10 | WvdS-rješenje |
|---|---|---|
| Dostupnost | .NET 10+ (studeni 2025) | .NET 8.0+ (sada dostupno) |
| Strategija migracije | Novi API, promjene koda | Drop-in Replacement, 2 linije |
| Hybrid mod | Ručno putem CompositeMLDsa | Automatski s CryptoMode.Hybrid |
| Postojeći kod | Mora se prepisati | Funkcionira nepromijenjeno |
| X.509 integracija | Nove klase | Proširuje postojeći X509Certificate2 |
| CMS/PKCS#7 | Nije dokumentirano | Puna podrška |
| RSA/ECDSA proširenja | Zasebne klase | Proširuje postojeće RSA, ECDsa |
Migracija: .NET 10 vs. WvdS
S .NET 10 (novi API)
// .NET 10: Potpuno novi kod potreban using var mlDsa = MLDsa.Create(MLDsaAlgorithm.MLDsa65); byte[] signature = mlDsa.SignData(data); // Hybrid ručno implementirati using var composite = CompositeMLDsa.Create( CompositeMLDsaAlgorithm.MlDsa65Ecdsa256); byte[] hybridSig = composite.SignData(data); // Postojeći RSA-kod više NE RADI // using var rsa = RSA.Create(); // → nema PQ-potpisa
S WvdS-rješenjem (Drop-in)
using WvdS.System.Security.Cryptography; // Dvije linije – gotovo! CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Postojeći kod automatski radi s PQ using var rsa = RSA.Create(4096); byte[] signature = rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); // → Automatski sadrži RSA + ML-DSA potpis
Usporedba scenarija
Scenarij 1: Migracija postojećeg projekta
Problem: Veliki projekt sa stotinama RSA/ECDSA poziva.
| .NET 10 | Svako mjesto u kodu promijeniti, koristiti nove klase |
| WvdS | CryptoConfig.DefaultMode = CryptoMode.Hybrid; - gotovo |
Scenarij 2: Potrebna povratna kompatibilnost
Problem: Partneri još ne podržavaju PQC.
| .NET 10 | Dva puta koda: klasično za stare, PQ za nove partnere |
| WvdS | Hybrid mod: Stari partneri ignoriraju PQ-proširenje, novi ga validiraju |
Scenarij 3: CMS/PKCS#7 potpisi dokumenata
Problem: Postojeća SignedCms-integracija.
| .NET 10 | Nije dokumentirano, vjerojatno ručna integracija |
| WvdS | SignedCmsExtensions proširuje postojeći API transparentno |
Scenarij 4: X.509 lanci certifikata
Problem: X509Chain.Build() treba validirati PQ-potpise.
| .NET 10 | Potrebne nove Chain-klase (nejasno) |
| WvdS | Postojeći X509Chain funkcionira, PQ-validacija automatski |
Kada odabrati .NET 10?
Microsoft .NET 10 PQC može biti smislen ako:
- Greenfield projekt (nema postojeće baze koda)
- Podržava se samo .NET 10+
- Nije potrebna Hybrid strategija
- Nema CMS/PKCS#7 zahtjeva
Kada odabrati WvdS?
WvdS.System.Security.Cryptography je bolji ako:
- Treba migrirati postojeći projekt
- Koristi se .NET 8.0 ili ranija LTS verzija
- Povratna kompatibilnost je važna (Hybrid mod)
- Potrebni su CMS/PKCS#7 potpisi
- Željen je minimalan napor migracije
- Potrebna je trenutna dostupnost (ne čekati .NET 10 GA)
Sažetak
| Kriterij | Preporuka |
|---|---|
| Postojeći projekt | WvdS |
| .NET 8.0 LTS | WvdS |
| Hybrid strategija | WvdS |
| CMS/PKCS#7 | WvdS |
| Greenfield + samo .NET 10 | .NET 10 ili WvdS |
| Samo PQ (bez Hybrid) | Oboje moguće |
Zaključak: Za većinu realnih scenarija migracije WvdS.System.Security.Cryptography nudi najjednostavniji put s najmanjim rizikom do post-kvantne kriptografije.
Daljnje informacije
- Migracija - Promjena temeljena na fazama
- Prvi koraci - Brzi početak
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: 30.01.2026. u 08:51