====== 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}}