Imenski prostor Signatures

Imenski prostor: WvdS.System.Security.Cryptography.Signatures

Vsebuje razširitvene metode za digitalne podpise s podporo PQ.


Razredi

Razred Opis
SignatureExtensions Razširitve za podpise RSA, ECDsa in X509Certificate2
SignedDataExtensions Razširitve za CMS/PKCS#7 SignedCms
HybridSignatureInfo Vsebnik za podatke hibridnih podpisov
PqSignedCmsHelper Visokonivojski API za operacije CMS, zmožne PQ

Razširjeni tipi

.NET-tip Razred razširitve
System.Security.Cryptography.RSA1) SignatureExtensions
System.Security.Cryptography.ECDsa2) SignatureExtensions
System.Security.Cryptography.Pkcs.SignedCms3) SignedDataExtensions

Načini podpisovanja

Način Klasično ML-DSA Uporaba
Classic Da - Standardno obnašanje .NET
Hybrid Da Da Največja varnost
PostQuantum - Da Čisto post-kvantno

Format hibridnega podpisa

V hibridnem načinu sta ustvarjena dva podpisa:

+------------------------------------------+
| Hibridni podpis                          |
+------------------------------------------+
| [4 bajti] Dolžina klasičnega podpisa     |
| [n bajtov] Klasični podpis (RSA/ECDSA)   |
| [m bajtov] PQ-podpis (ML-DSA)            |
+------------------------------------------+
Komponenta Tipična velikost
Podpis RSA-2048 256 bajtov
Podpis ECDSA P-256 ~70 bajtov
Podpis ML-DSA-65 3.293 bajtov
Hibrid RSA ~3.553 bajtov

Primer

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("Podatki za podpis");
 
// Ustvari hibridni podpis
byte[] signature = rsa.SignData(
    data,
    HashAlgorithmName.SHA256,
    RSASignaturePadding.Pkcs1);
 
// Preveri
bool valid = rsa.VerifyData(
    data,
    signature,
    HashAlgorithmName.SHA256,
    RSASignaturePadding.Pkcs1);

Metode SignatureExtensions

Razširitve RSA

Metoda Parametri Vrnitev
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

Razširitve ECDsa

Metoda Parametri Vrnitev
SignData(data, hash, mode) byte[], HashAlgorithmName, CryptoMode? byte[]
VerifyData(data, sig, hash, mode) byte[], byte[], HashAlgorithmName, CryptoMode? bool

Samostojni ML-DSA

Metoda Parametri Vrnitev
GenerateMlDsaKeyPair() - (byte[] PublicKey, byte[] PrivateKey)
SignMlDsa(data, privateKey) byte[], byte[] byte[]
VerifyMlDsa(data, sig, publicKey) byte[], byte[], byte[] bool

Glejte tudi


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 29.01.2026 ob 23:17