Inhaltsverzeichnis

Upravljanje ključev

Kompaktni primeri za upravljanje ključev. → Podrobnosti: Scenariji ključev


Generiranje ključev

// ML-DSA (podpisi)
using var mlDsa65 = MlDsaSigner.Create(MlDsaParameterSet.MlDsa65);
using var mlDsa87 = MlDsaSigner.Create(MlDsaParameterSet.MlDsa87);
 
// ML-KEM (izmenjava ključev)
using var mlKem768 = MlKem.Create(MlKemParameterSet.MlKem768);
using var mlKem1024 = MlKem.Create(MlKemParameterSet.MlKem1024);
 
// Klasično (hibridno)
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP384);
using var rsa = RSA.Create(4096);

Podrobnosti: Generiranje


Shranjevanje ključev

// DPAPI (Windows)
byte[] privateKey = mlDsa.ExportPrivateKey();
byte[] encrypted = ProtectedData.Protect(privateKey,
    entropy: null, DataProtectionScope.CurrentUser);
 
// PEM z geslom
string pem = mlDsa.ExportEncryptedPkcs8PrivateKeyPem(
    "geslo"u8, new PbeParameters(
        PbeEncryptionAlgorithm.Aes256Cbc,
        HashAlgorithmName.SHA256, 100000));

Podrobnosti: Shranjevanje


Rotacija ključev

var rotationService = new KeyRotationService(options =>
{
    options.RotationInterval = TimeSpan.FromDays(90);
    options.MaxKeyAge = TimeSpan.FromDays(365);
});
 
// Preverjanje, ali je rotacija potrebna
if (rotationService.ShouldRotate(currentKey))
{
    var newKey = MlDsaSigner.Create(MlDsaParameterSet.MlDsa65);
    rotationService.Rotate(currentKey, newKey);
}

Podrobnosti: Rotacija


Varnostna kopija ključev

// Shamir Secret Sharing (3-of-5)
var shares = ShamirSecretSharing.Split(
    privateKey, totalShares: 5, threshold: 3);
 
// Razdelitev skrbnikom
foreach (var (index, share) in shares)
    SaveToTrustee(index, share);
 
// Obnovitev
var recoveredShares = new[] { shares[0], shares[2], shares[4] };
byte[] recovered = ShamirSecretSharing.Combine(recoveredShares);

Podrobnosti: Varnostna kopija


Uničenje ključev

// Varno brisanje
CryptographicOperations.ZeroMemory(privateKeyBytes);
 
// Preklic certifikata
var crlBuilder = new CertificateRevocationListBuilder();
crlBuilder.AddEntry(cert.SerialNumber,
    DateTimeOffset.UtcNow, X509RevocationReason.KeyCompromise);

Podrobnosti: Uničenje


Priporočila

Tip ključa Algoritem Veljavnost
Root-CA ML-DSA-87 20+ let
Intermediate-CA ML-DSA-65 5-10 let
End-Entity ML-DSA-65 / hibridno 1-2 leti
Efemerni ML-KEM-768 Seja

« ← Kratka referenca | → Scenariji ključev (podrobnosti) »


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