====== 1. Concepts ======
Fundamental concepts of post-quantum cryptography and this library.
----
===== Contents =====
^ Topic ^ Description ^
| [[.:algorithmen|1.1 Algorithms]] | ML-DSA, ML-KEM, NIST standards |
| [[.:sicherheit|1.2 Security]] | Threat model, Harvest-Now-Decrypt-Later |
| [[.:vergleich-dotnet10|1.3 Comparison with .NET 10]] | Why WvdS instead of Microsoft PQC? |
----
===== Why Post-Quantum? =====
**The Problem:** Classical cryptography (RSA, ECDSA) can be broken by quantum computers. Data intercepted today could be decrypted in the future.
**The Solution:** Post-quantum algorithms (ML-DSA, ML-KEM) are resistant to quantum attacks. They are standardized by NIST((NIST PQC: https://csrc.nist.gov/projects/post-quantum-cryptography)) and implemented in OpenSSL 3.6+.
**Our Approach:** Hybrid cryptography - classical and PQ algorithms in parallel. Backward compatible, future-proof.
----
===== Library Scope =====
WvdS.System.Security.Cryptography.Extensions focuses on **asymmetric post-quantum cryptography**:
^ In Scope (WvdS) ^ Out of Scope (.NET Built-in) ^
| ML-DSA signatures | AES-GCM encryption |
| ML-KEM key exchange | ChaCha20-Poly1305 |
| Hybrid certificates | Symmetric encryption |
| X.509 PQ extensions | Hash functions (SHA-256/384/512) |
**Rule of thumb:** Use WvdS only for asymmetric operations (signatures, key exchange, certificates). For symmetric encryption, use the .NET standard library directly.
----
===== The Three Crypto Modes =====
^ Mode ^ Algorithms ^ Compatibility ^ Usage ^
| Classic | RSA, ECDSA, ECDH | Universal | Legacy systems |
| **Hybrid** | RSA + ML-DSA, ECDH + ML-KEM | Forward/Backward | Migration (recommended) |
| PostQuantum | ML-DSA, ML-KEM | PQ-capable only | New PQ-only systems |
flowchart TD
START(["Which mode to choose?"]) --> Q1{"All systems
PQ-capable?"}
Q1 -->|Yes| Q2{"Backward
compatibility
needed?"}
Q1 -->|No| Q3{"OpenSSL 3.6
available?"}
Q2 -->|No| PQ["PostQuantum
ML-DSA / ML-KEM"]
Q2 -->|Yes| HYB["Hybrid
RSA+ML-DSA / ECDH+ML-KEM"]
Q3 -->|Yes| HYB
Q3 -->|No| CLS["Classic
RSA / ECDSA / ECDH"]
style PQ fill:#4caf50,color:#fff
style HYB fill:#2196f3,color:#fff
style CLS fill:#ff9800,color:#fff
style START fill:#9c27b0,color:#fff
==== Classic Mode ====
CryptoConfig.DefaultMode = CryptoMode.Classic;
Only classical algorithms. For legacy compatibility or systems without OpenSSL 3.6.
==== Hybrid Mode (recommended) ====
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
Both algorithms in parallel. Legacy clients ignore PQ extension, modern ones validate both.
==== PostQuantum Mode ====
CryptoConfig.DefaultMode = CryptoMode.PostQuantum;
Only use when **all** participating systems are PQ-capable!
==== Override Per-Operation ====
// Global: Hybrid
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
// This operation: PostQuantum
var cert = request.CreateSelfSigned(notBefore, notAfter, CryptoMode.PostQuantum);
----
===== Algorithm Overview =====
-> Details: [[.:algorithmen|Algorithms]]
**Signatures (ML-DSA):**
* Replaces RSA/ECDSA for digital signatures
* NIST FIPS 204((NIST FIPS 204: https://csrc.nist.gov/pubs/fips/204/final))
**Key Exchange (ML-KEM):**
* Replaces ECDH for key agreement
* NIST FIPS 203((NIST FIPS 203: https://csrc.nist.gov/pubs/fips/203/final))
----
===== Further Reading =====
* [[en:int:pqcrypt:developer:start|Developer]] - Technical integration
* [[en:int:pqcrypt:business:start|Business]] - Compliance, strategy
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>concepts pq-crypto fundamentals}}