Start Debugging

Post-Quanten-Kryptografie in .NET 10: ML-KEM, ML-DSA und SLH-DSA

.NET 10 ergänzt native Unterstützung für die Post-Quanten-Algorithmen ML-KEM, ML-DSA und SLH-DSA und bereitet Ihre Anwendungen so auf eine quantenresistente Zukunft vor.

Quantencomputer drohen, RSA und elliptische-Kurven-Kryptografie zu brechen. .NET 10 antwortet darauf mit nativer Unterstützung für drei vom NIST standardisierte Post-Quanten-Algorithmen: ML-KEM (FIPS 203), ML-DSA (FIPS 204) und SLH-DSA (FIPS 205).

Warum Post-Quanten-Kryptografie jetzt zählt

Aktuelle asymmetrische Algorithmen wie RSA-2048 und ECDSA stützen sich auf mathematische Probleme, die Quantencomputer effizient lösen können. Großmaßstäbliche Quantencomputer existieren noch nicht, doch “Harvest-now-decrypt-later”-Angriffe bedeuten, dass heute verschlüsselte sensible Daten in Zukunft offengelegt werden könnten. NIST hat seine ersten Post-Quanten-Standards im August 2024 finalisiert, und .NET 10 setzt sie um.

ML-KEM für Schlüsselkapselung

ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) ersetzt Schlüsselaustauschprotokolle wie ECDH. Verwenden Sie es, um gemeinsame Geheimnisse zu etablieren:

using System.Security.Cryptography;

// Generate a key pair
using var mlKem = MLKem.Create(MLKemParameterSet.MLKem768);

// Export the public key for the other party
byte[] publicKey = mlKem.ExportPublicKey();

// Other party encapsulates a shared secret
var (ciphertext, sharedSecret) = MLKem.Encapsulate(publicKey);

// Original party decapsulates to get the same shared secret
byte[] decapsulatedSecret = mlKem.Decapsulate(ciphertext);

// sharedSecret and decapsulatedSecret are identical

ML-KEM gibt es in drei Parametersätzen: MLKem512, MLKem768 und MLKem1024. MLKem768 bietet für die meisten Anwendungen ein ausgewogenes Verhältnis zwischen Sicherheit und Performance.

ML-DSA für digitale Signaturen

ML-DSA (Module-Lattice-Based Digital Signature Algorithm) ist der Post-Quanten-Ersatz für RSA- und ECDSA-Signaturen:

using System.Security.Cryptography;

byte[] data = "Sign this message"u8.ToArray();

// Generate a key pair
using var mlDsa = MLDsa.Create(MLDsaParameterSet.MLDsa65);

// Sign data
byte[] signature = mlDsa.SignData(data);

// Verify signature
bool isValid = mlDsa.VerifyData(data, signature);

Zu den ML-DSA-Parametersätzen gehören MLDsa44, MLDsa65 und MLDsa87. MLDsa65 bietet NIST-Sicherheitsstufe 3, geeignet für die meisten Anwendungsfälle.

SLH-DSA für langfristige Sicherheit

SLH-DSA (Stateless Hash-Based Digital Signature Algorithm) ist eine konservative Alternative zu ML-DSA. Es erzeugt größere Signaturen, stützt sich aber ausschließlich auf die Sicherheit von Hashfunktionen, wodurch es sich für Szenarien eignet, die maximales Vertrauen erfordern:

using System.Security.Cryptography;

byte[] data = "Critical document"u8.ToArray();

using var slhDsa = SLHDsa.Create(SLHDsaParameterSet.SLHDsaSha2_128f);
byte[] signature = slhDsa.SignData(data);
bool isValid = slhDsa.VerifyData(data, signature);

Die “f”-Varianten (fast) priorisieren Signiergeschwindigkeit; die “s”-Varianten (small) minimieren die Signaturgröße.

Plattformanforderungen

Post-Quanten-Kryptografie in .NET 10 erfordert:

Auf nicht unterstützten Plattformen werfen die Create-Methoden PlatformNotSupportedException.

Hybride Ansätze

Erwägen Sie während der Übergangsphase, klassische und Post-Quanten-Algorithmen zu kombinieren. Wird einer gebrochen, bietet der andere weiterhin Schutz. Das ist besonders wichtig für langlebige Zertifikate und archivierte Daten.

Die vollständige API-Dokumentation finden Sie unter Post-quantum cryptography auf Microsoft Learn.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Zurück