7. Šifriranje
Scenariji: 3
FFI funkcije: ~25
Status: ⏳ Planirano
Ova kategorija obuhvaća sve scenarije za post-kvantno sigurno šifriranje. Hibridno šifriranje s ML-KEM, enkapsulacija ključeva i simetrično šifriranje.
Scenariji
| ID | Scenarij | Opis | Složenost | Status |
|---|---|---|---|---|
| 7.1 | Hibridno šifriranje | ECDH + ML-KEM kombinirano | ⭐⭐⭐⭐ | ⏳ |
| 7.2 | Enkapsulacija ključa | ML-KEM za razmjenu ključeva | ⭐⭐⭐ | ⏳ |
| 7.3 | Šifriranje datoteka | Šifriranje velikih datoteka | ⭐⭐⭐ | ⏳ |
Tijek hibridnog šifriranja
sequenceDiagram
participant A as Alice (Pošiljatelj)
participant B as Bob (Primatelj)
Note over B: Generiranje para ključeva
B->>A: Javni ključ (ECDH + ML-KEM)
Note over A: Enkapsulacija ključa
A->>A: ECDH SharedSecret + ML-KEM Ciphertext
A->>A: HKDF(ECDH || ML-KEM) → KEK
A->>A: AES-GCM Encrypt(KEK, Plaintext)
A->>B: ECDH Ephemeral PK + ML-KEM Ciphertext + AES Ciphertext
Note over B: Dekapsulacija ključa
B->>B: ECDH SharedSecret + ML-KEM Decapsulate
B->>B: HKDF(ECDH || ML-KEM) → KEK
B->>B: AES-GCM Decrypt(KEK, Ciphertext)
Algoritmi
| Komponenta | Algoritam | Razina sigurnosti | Standard |
|---|---|---|---|
| Enkapsulacija ključa (PQ) | ML-KEM-768 | 192 bita | NIST FIPS 203 |
| Razmjena ključeva (klasično) | ECDH P-384 | 192 bita | NIST SP 800-56A |
| Derivacija ključa | HKDF-SHA384 | - | RFC 5869 |
| Simetrično šifriranje | AES-256-GCM | 256 bita | NIST SP 800-38D |
Hibridni princip: Oba algoritma (ECDH + ML-KEM) moraju biti razbijeni da bi se kompromitiralo šifriranje.
Scenariji primjene
| Primjena | Preporučeni način | Obrazloženje |
|---|---|---|
| Dugoročna arhivacija | ML-KEM (samo PQ) | Podaci moraju biti sigurni 20+ godina |
| Trenutna komunikacija | Hibridno | Kompatibilnost + sigurnost za budućnost |
| Legacy sustavi | ECDH (klasično) | Nema PQ podrške |
Brzi početak koda
Hibridno šifriranje
using WvdS.Security.Cryptography.Extensions.PQ; // Primatelj: generiranje para ključeva using var recipientKey = ctx.GenerateHybridKeyPair( classicAlgorithm: EcdhCurve.P384, pqAlgorithm: PqAlgorithm.MlKem768 ); var publicKeyPem = recipientKey.ExportPublicKeyPem(); // Pošiljatelj: šifriranje var (ciphertext, encapsulatedKey) = ctx.HybridEncrypt( plaintext: Encoding.UTF8.GetBytes("Tajna poruka"), recipientPublicKey: publicKeyPem ); // Primatelj: dešifriranje var plaintext = ctx.HybridDecrypt( ciphertext: ciphertext, encapsulatedKey: encapsulatedKey, privateKey: recipientKey );
Šifriranje datoteka
// Šifriranje velike datoteke (streaming) await ctx.EncryptFileAsync( inputPath: "dokument.pdf", outputPath: "dokument.pdf.enc", recipientPublicKey: publicKeyPem, mode: CryptoMode.Hybrid ); // Dešifriranje await ctx.DecryptFileAsync( inputPath: "dokument.pdf.enc", outputPath: "dokument-decrypted.pdf", privateKey: recipientKey );
Povezane kategorije
| Kategorija | Odnos |
|---|---|
| 11. Upravljanje ključevima | Upravljanje parovima ključeva |
| 10. TLS/mTLS | Razmjena ključeva u TLS rukovanju |
| 12. Uvoz/Izvoz | Izvoz šifriranih ključeva |
« ← 6. Opoziv | ↑ Scenariji | 8. Digitalni potpisi → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 30.01.2026. u 07:22