Signatures prostor imena
Prostor imena: WvdS.System.Security.Cryptography.Signatures
Sadrži extension metode za digitalne potpise s PQ podrškom.
Klase
| Klasa | Opis |
| SignatureExtensions | Proširenja za RSA, ECDsa i X509Certificate2 potpise |
| SignedDataExtensions | Proširenja za CMS/PKCS#7 SignedCms |
| HybridSignatureInfo | Kontejner za hibridne podatke potpisa |
| PqSignedCmsHelper | High-level API za PQ-sposobne CMS operacije |
Prošireni tipovi
| .NET tip | Klasa proširenja |
System.Security.Cryptography.RSA1) | SignatureExtensions |
System.Security.Cryptography.ECDsa2) | SignatureExtensions |
System.Security.Cryptography.Pkcs.SignedCms3) | SignedDataExtensions |
Načini potpisa
| Način | Klasično | ML-DSA | Upotreba |
| Classic | Da | - | Standardno .NET ponašanje |
| Hybrid | Da | Da | Maksimalna sigurnost |
| PostQuantum | - | Da | Čisto post-kvantno |
U hibridnom načinu rada generiraju se dva potpisa:
+---------------------------------------------+
| Hibridni potpis |
+---------------------------------------------+
| [4 bajta] Duljina klasičnog potpisa |
| [n bajtova] Klasični potpis (RSA/ECDSA) |
| [m bajtova] PQ potpis (ML-DSA) |
+---------------------------------------------+
| Komponenta | Tipična veličina |
| RSA-2048 potpis | 256 bajtova |
| ECDSA P-256 potpis | ~70 bajtova |
| ML-DSA-65 potpis | 3.293 bajta |
| Hibridni RSA | ~3.553 bajta |
Primjer
using WvdS.System.Security.Cryptography;
using WvdS.System.Security.Cryptography.Signatures;
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
using var rsa = RSA.Create(2048);
byte[] data = Encoding.UTF8.GetBytes("Podaci za potpisivanje");
// Kreiranje hibridnog potpisa
byte[] signature = rsa.SignData(
data,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs1);
// Verifikacija
bool valid = rsa.VerifyData(
data,
signature,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs1);
Metode SignatureExtensions
RSA proširenja
| Metoda | Parametri | Povratna vrijednost |
SignData(data, hash, padding, mode) | byte[], HashAlgorithmName, RSASignaturePadding, CryptoMode? | byte[] |
SignData(stream, hash, padding, mode) | Stream, HashAlgorithmName, RSASignaturePadding, CryptoMode? | byte[] |
VerifyData(data, sig, hash, padding, mode) | byte[], byte[], HashAlgorithmName, RSASignaturePadding, CryptoMode? | bool |
ECDsa proširenja
| Metoda | Parametri | Povratna vrijednost |
SignData(data, hash, mode) | byte[], HashAlgorithmName, CryptoMode? | byte[] |
VerifyData(data, sig, hash, mode) | byte[], byte[], HashAlgorithmName, CryptoMode? | bool |
Samostalni ML-DSA
| Metoda | Parametri | Povratna vrijednost |
GenerateMlDsaKeyPair() | - | (byte[] PublicKey, byte[] PrivateKey) |
SignMlDsa(data, privateKey) | byte[], byte[] | byte[] |
VerifyMlDsa(data, sig, publicKey) | byte[], byte[], byte[] | bool |
Vidi također
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 29.01.2026. u 23:17