====== 1.1 Algoritmi ====== Post-kvantni algoritmi v WvdS.System.Security.Cryptography. ---- ===== ML-DSA (digitalni podpisi) ===== **Module-Lattice-Based Digital Signature Algorithm** Standardiziran v NIST FIPS 204((NIST FIPS 204: https://csrc.nist.gov/pubs/fips/204/final)). ==== Variante ==== ^ Algoritem ^ Varnostna raven ^ Velikost podpisa ^ Javni ključ ^ | ML-DSA-44 | NIST Level 2 (~AES-128) | 2.420 bajtov | 1.312 bajtov | | ML-DSA-65 | NIST Level 3 (~AES-192) | 3.309 bajtov | 1.952 bajtov | | ML-DSA-87 | NIST Level 5 (~AES-256) | 4.627 bajtov | 2.592 bajtov | **Standard:** ML-DSA-65 (uravnotežen med varnostjo in velikostjo) ==== Uporaba ==== * Podpisi certifikatov (X.509) * Podpisi dokumentov (CMS/PKCS#7) * Podpisovanje kode * TLS-rokovanje ---- ===== ML-KEM (enkapsulacija ključev) ===== **Module-Lattice-Based Key-Encapsulation Mechanism** Standardiziran v NIST FIPS 203((NIST FIPS 203: https://csrc.nist.gov/pubs/fips/203/final)). ==== Variante ==== ^ Algoritem ^ Varnostna raven ^ Šifrirano besedilo ^ Javni ključ ^ | ML-KEM-512 | NIST Level 1 (~AES-128) | 768 bajtov | 800 bajtov | | ML-KEM-768 | NIST Level 3 (~AES-192) | 1.088 bajtov | 1.184 bajtov | | ML-KEM-1024 | NIST Level 5 (~AES-256) | 1.568 bajtov | 1.568 bajtov | **Standard:** ML-KEM-768 (uravnotežen) ==== Uporaba ==== * Izmenjava ključev (namesto ECDH) * Hibridno šifriranje * Dogovor o ključih TLS * Kratkoživljajoči sejni ključi ---- ===== Hibridna kombinacija ===== V hibridnem načinu so klasični in PQ-algoritmi kombinirani: ^ Operacija ^ Klasično ^ Post-kvantno ^ Kombinacija ^ | Podpis | RSA-4096 / P-384 | ML-DSA-65 | Oba vzporedno | | Ključ | ECDH P-384 | ML-KEM-768 | Skrivnosti kombinirane | | Zgoščevanje | SHA-384 | SHA-384 | Skupno | **Varnostna garancija:** Sistem je varen, dokler je **eden** od algoritmov varen. ---- ===== Simetrični algoritmi ===== Za simetrično šifriranje s PQ-izpeljanimi ključi: ^ Algoritem ^ Velikost ključa ^ Nonce ^ Oznaka ^ .NET razred ^ | AES-256-GCM | 256 bitov | 96 bitov | 128 bitov | ''System.Security.Cryptography.AesGcm'' | | ChaCha20-Poly1305 | 256 bitov | 96 bitov | 128 bitov | ''System.Security.Cryptography.ChaCha20Poly1305'' | **Kvantna varnost:** AES-256 in ChaCha20 veljata za kvantno varna pri polnem ključu (Groverjev algoritem prepolovi učinkovito moč -> 128 bitov ostaja zadostno). **Opomba:** Ti algoritmi so vgrajeni v .NET 8+. Uporabite standardne .NET-razrede neposredno - WvdS-ovoji niso potrebni. ---- ===== Izpeljava ključev ===== ^ Funkcija ^ Standard ^ Uporaba ^ | HKDF | RFC 5869((RFC 5869: https://datatracker.ietf.org/doc/html/rfc5869)) | Sejni ključi iz skupne skrivnosti | | PBKDF2 | RFC 8018((RFC 8018: https://datatracker.ietf.org/doc/html/rfc8018)) | Ključi na podlagi gesla | | Argon2id | RFC 9106((RFC 9106: https://datatracker.ietf.org/doc/html/rfc9106)) | Odporen na pomnilnik (če je na voljo) | ---- ===== Nadaljnje branje ===== * [[.:sicherheit|Varnost]] - Model groženj * [[..:api:keyexchange|API KeyExchange]] * [[..:api:signatures|API Signatures]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>algorithmen ml-dsa ml-kem nist fips}}