====== 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šku((Microsoft .NET 10 PQC: https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography?view=net-10.0)):
* ''MLDsa'' / ''MLDsaCng'' / ''MLDsaOpenSsl'' - ML-DSA potpisi
* ''MLKem'' / ''MLKemCng'' / ''MLKemOpenSsl'' - ML-KEM enkapsulacija ključeva
* ''SlhDsa'' / ''SlhDsaCng'' / ''SlhDsaOpenSsl'' - SLH-DSA potpisi
* ''CompositeMLDsa'' - 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 =====
* [[..:developer:migration|Migracija]] - Promjena temeljena na fazama
* [[..:developer:erste-schritte|Prvi koraci]] - Brzi početak
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>konzepte vergleich dotnet10 migration}}