====== 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//