====== 1.1 Algoritmi ====== Post-kvantni algoritmi u WvdS.System.Security.Cryptography. ---- ===== ML-DSA (Digitalni potpisi) ===== **Module-Lattice-Based Digital Signature Algorithm** Standardiziran u NIST FIPS 204((NIST FIPS 204: https://csrc.nist.gov/pubs/fips/204/final)). ==== Varijante ==== ^ Algoritam ^ Sigurnosna razina ^ Veličina potpisa ^ Javni ključ ^ | ML-DSA-44 | NIST Level 2 (~AES-128) | 2.420 bajtova | 1.312 bajtova | | ML-DSA-65 | NIST Level 3 (~AES-192) | 3.309 bajtova | 1.952 bajtova | | ML-DSA-87 | NIST Level 5 (~AES-256) | 4.627 bajtova | 2.592 bajtova | **Standard:** ML-DSA-65 (uravnoteženo između sigurnosti i veličine) ==== Upotreba ==== * Potpisi certifikata (X.509) * Potpisi dokumenata (CMS/PKCS#7) * Code Signing * TLS-Handshake ---- ===== ML-KEM (Enkapsulacija ključeva) ===== **Module-Lattice-Based Key-Encapsulation Mechanism** Standardiziran u NIST FIPS 203((NIST FIPS 203: https://csrc.nist.gov/pubs/fips/203/final)). ==== Varijante ==== ^ Algoritam ^ Sigurnosna razina ^ Ciphertext ^ Javni ključ ^ | ML-KEM-512 | NIST Level 1 (~AES-128) | 768 bajtova | 800 bajtova | | ML-KEM-768 | NIST Level 3 (~AES-192) | 1.088 bajtova | 1.184 bajtova | | ML-KEM-1024 | NIST Level 5 (~AES-256) | 1.568 bajtova | 1.568 bajtova | **Standard:** ML-KEM-768 (uravnoteženo) ==== Upotreba ==== * Razmjena ključeva (umjesto ECDH) * Hibridno šifriranje * TLS dogovor ključeva * Efemerni ključevi sesije ---- ===== Hibridna kombinacija ===== U Hybrid modu kombiniraju se klasični i PQ-algoritmi: ^ Operacija ^ Klasično ^ Post-Quantum ^ Kombinacija ^ | Potpis | RSA-4096 / P-384 | ML-DSA-65 | Oba paralelno | | Ključ | ECDH P-384 | ML-KEM-768 | Tajne kombinirane | | Hash | SHA-384 | SHA-384 | Zajednički | **Sigurnosna garancija:** Sustav je siguran dok god je **jedan** od algoritama siguran. ---- ===== Simetrični algoritmi ===== Za simetrično šifriranje s PQ-deriviranim ključevima: ^ Algoritam ^ Veličina ključa ^ Nonce ^ Tag ^ .NET klasa ^ | AES-256-GCM | 256 bita | 96 bita | 128 bita | ''System.Security.Cryptography.AesGcm'' | | ChaCha20-Poly1305 | 256 bita | 96 bita | 128 bita | ''System.Security.Cryptography.ChaCha20Poly1305'' | **Kvantna sigurnost:** AES-256 i ChaCha20 smatraju se kvantno sigurnima s punim ključem (Groverov algoritam prepolovljuje efektivnu snagu → 128 bita ostaje dovoljno). **Napomena:** Ovi algoritmi su ugrađeni u .NET 8+. Koristite standardne .NET klase izravno - nisu potrebni WvdS wrapperi. ---- ===== Derivacija ključeva ===== ^ Funkcija ^ Standard ^ Upotreba ^ | HKDF | RFC 5869((RFC 5869: https://datatracker.ietf.org/doc/html/rfc5869)) | Ključevi sesije iz Shared Secret | | PBKDF2 | RFC 8018((RFC 8018: https://datatracker.ietf.org/doc/html/rfc8018)) | Ključevi temeljeni na lozinki | | Argon2id | RFC 9106((RFC 9106: https://datatracker.ietf.org/doc/html/rfc9106)) | Memory-hard (ako je dostupno) | ---- ===== Daljnje informacije ===== * [[.:sicherheit|Sigurnost]] - Model prijetnji * [[..:api:keyexchange|KeyExchange API]] * [[..:api:signatures|Signatures API]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>algorithmen ml-dsa ml-kem nist fips}}