====== Encryption prostor imena ====== **Prostor imena:** ''WvdS.System.Security.Cryptography.Encryption'' Sadrži klase za simetričko šifriranje s PQ derivacijom ključeva. ---- ===== Klase ===== ^ Klasa ^ Opis ^ | SymmetricEncryptionExtensions | AES-GCM šifriranje s PQ ključevima | | HybridEncryptedData | Kontejner za hibridno šifrirane podatke | | PqCrypto | Pomoćni API za PQ šifriranje | ---- ===== Načini šifriranja ===== | Način | Klasično | ML-KEM | Upotreba | | Classic | RSA-OAEP / ECDH | - | Standardno .NET ponašanje | | Hybrid | RSA-OAEP / ECDH | Da | Maksimalna sigurnost | | PostQuantum | - | Da | Čisto post-kvantno | ---- ===== Format šifriranja ===== +---------------------------------------------+ | AES-GCM šifrirani podaci | +---------------------------------------------+ | [12 bajtova] Nonce (IV) | | [n bajtova] Šifrirani tekst | | [16 bajtova] Autentifikacijska oznaka | +---------------------------------------------+ ---- ===== Primjer ===== using WvdS.System.Security.Cryptography.Encryption; using WvdS.System.Security.Cryptography.KeyExchange; // Dijeljeni tajni ključ iz razmjene ključeva byte[] sharedSecret = session.SharedSecret; // Šifriranje byte[] plaintext = Encoding.UTF8.GetBytes("Tajna poruka"); byte[] encrypted = SymmetricEncryptionExtensions.EncryptWithPqKey( plaintext, sharedSecret); // Dešifriranje byte[] decrypted = SymmetricEncryptionExtensions.DecryptWithPqKey( encrypted, sharedSecret); ---- ===== Glavne metode ===== ==== SymmetricEncryptionExtensions ==== ^ Metoda ^ Opis ^ | ''EncryptWithPqKey'' | AES-GCM s PQ-deriviranim ključem | | ''DecryptWithPqKey'' | Dešifriranje s PQ ključem | | ''EncryptHybrid'' | RSA-OAEP + ML-KEM hibridno | | ''DecryptHybrid'' | Hibridno dešifriranje | | ''EncryptEcdhPq'' | ECDH + ML-KEM hibridno | | ''DecryptEcdhPq'' | ECDH+ML-KEM dešifriranje | | ''EncryptAesGcm'' | Standardni AES-256-GCM | | ''DecryptAesGcm'' | AES-GCM dešifriranje | | ''EncryptStream'' | Šifriranje temeljeno na streamu | | ''DecryptStream'' | Dešifriranje temeljeno na streamu | ==== PqCrypto ==== ^ Metoda ^ Opis ^ | ''GenerateKeyPair'' | Generiranje ML-KEM para ključeva | | ''Encrypt'' | PQ šifriranje | | ''Decrypt'' | PQ dešifriranje | ---- ===== Sigurnosna napomena ===== **Kombiniranje ključeva u hibridnom načinu rada:** Combined Key = HKDF-SHA256( ikm = classicSecret || pqSecret, info = "WvdS-Hybrid-Key" ) Čak i ako napadač kompromitira klasični tajni ključ, šifriranje ostaje zaštićeno PQ tajnim ključem (i obrnuto). ---- ===== Vidi također ===== * [[.:keyexchange|KeyExchange prostor imena]] * [[.:keyderivation|KeyDerivation prostor imena]] * [[.:start|API-pregled]] {{tag>namespace encryption aes-gcm ml-kem}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//