Zašto WvdS.System.Security.Cryptography umjesto .NET 10 PQC?
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)| 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 |
// .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
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
Problem: Veliki projekt sa stotinama RSA/ECDSA poziva.
| .NET 10 | Svako mjesto u kodu promijeniti, koristiti nove klase |
| WvdS | CryptoConfig.DefaultMode = CryptoMode.Hybrid; - gotovo |
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 |
Problem: Postojeća SignedCms-integracija.
| .NET 10 | Nije dokumentirano, vjerojatno ručna integracija |
| WvdS | SignedCmsExtensions proširuje postojeći API transparentno |
Problem: X509Chain.Build() treba validirati PQ-potpise.
| .NET 10 | Potrebne nove Chain-klase (nejasno) |
| WvdS | Postojeći X509Chain funkcionira, PQ-validacija automatski |
Microsoft .NET 10 PQC može biti smislen ako:
WvdS.System.Security.Cryptography je bolji ako:
| 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.
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional