====== Imenski prostor Encryption ====== **Imenski prostor:** ''WvdS.System.Security.Cryptography.Encryption'' Vsebuje razrede za simetrično šifriranje z izpeljavo PQ-ključev. ---- ===== Razredi ===== ^ Razred ^ Opis ^ | SymmetricEncryptionExtensions | Šifriranje AES-GCM s PQ-ključi | | HybridEncryptedData | Vsebnik za hibridno šifrirane podatke | | PqCrypto | Priročni API za PQ-šifriranje | ---- ===== Načini šifriranja ===== | Način | Klasično | ML-KEM | Uporaba | | Classic | RSA-OAEP / ECDH | - | Standardno obnašanje .NET | | Hybrid | RSA-OAEP / ECDH | Da | Največja varnost | | PostQuantum | - | Da | Čisto post-kvantno | ---- ===== Format šifriranja ===== +------------------------------------------+ | Šifrirani podatki AES-GCM | +------------------------------------------+ | [12 bajtov] Nonce (IV) | | [n bajtov] Šifrirano besedilo | | [16 bajtov] Avtentikacijska oznaka | +------------------------------------------+ ---- ===== Primer ===== using WvdS.System.Security.Cryptography.Encryption; using WvdS.System.Security.Cryptography.KeyExchange; // Skupna skrivnost iz izmenjave ključev byte[] sharedSecret = session.SharedSecret; // Šifriranje byte[] plaintext = Encoding.UTF8.GetBytes("Tajno sporočilo"); byte[] encrypted = SymmetricEncryptionExtensions.EncryptWithPqKey( plaintext, sharedSecret); // Dešifriranje byte[] decrypted = SymmetricEncryptionExtensions.DecryptWithPqKey( encrypted, sharedSecret); ---- ===== Glavne metode ===== ==== SymmetricEncryptionExtensions ==== ^ Metoda ^ Opis ^ | ''EncryptWithPqKey'' | AES-GCM s PQ-izpeljanim ključem | | ''DecryptWithPqKey'' | Dešifriranje s PQ-ključem | | ''EncryptHybrid'' | Hibrid RSA-OAEP + ML-KEM | | ''DecryptHybrid'' | Hibridno dešifriranje | | ''EncryptEcdhPq'' | Hibrid ECDH + ML-KEM | | ''DecryptEcdhPq'' | Dešifriranje ECDH+ML-KEM | | ''EncryptAesGcm'' | Standardni AES-256-GCM | | ''DecryptAesGcm'' | Dešifriranje AES-GCM | | ''EncryptStream'' | Šifriranje na podlagi toka | | ''DecryptStream'' | Dešifriranje na podlagi toka | ==== PqCrypto ==== ^ Metoda ^ Opis ^ | ''GenerateKeyPair'' | Generiranje para ključev ML-KEM | | ''Encrypt'' | PQ-šifriranje | | ''Decrypt'' | PQ-dešifriranje | ---- ===== Varnostna opomba ===== **Kombiniranje ključev v hibridnem načinu:** Kombinirani ključ = HKDF-SHA256( ikm = classicSecret || pqSecret, info = "WvdS-Hybrid-Key" ) Tudi če napadalec kompromitira klasično skrivnost, šifriranje ostane zaščiteno s PQ-skrivnostjo (in obratno). ---- ===== Glejte tudi ===== * [[.:keyexchange|Imenski prostor KeyExchange]] * [[.:keyderivation|Imenski prostor KeyDerivation]] * [[.:start|Pregled API]] {{tag>namespace encryption aes-gcm ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//