Hybridní postkvantový protokol QuarkDash: implementace v TypeScriptu pro vysoce zatížené systémy
QuarkDash kombinuje Ring-LWE pro postkvantovou výměnu klíčů, proudové šifry ChaCha20 nebo Gimli, SHAKE-256 pro KDF a MAC, plus ochranu proti replay a timing útokům. Velikost veřejného klíče je přibližně 2 KB, privátního přibližně 1 KB. Nastavení relace trvá přibližně 8-9 ms na průměrném CPU. Vhodné pro klient-server systémy bez vazby na architekturu.
Výběr primitiv v QuarkDash
Ring-LWE pro výměnu klíčů
Ring-LWE využívá prstenec polynomů s parametry N=256, Q=7681, ω=7. Zajišťuje 128-bitovou postkvantovou bezpečnost. Násobení polynomů přes NTT s O(N log N). Generování klíčů: ~12 ms, inkapsulace/dekapsulace ~8-9 ms.
Symetrické šifrování
- ChaCha20: 20 kol, 256-bitový klíč, 12-bajtový nonce. Vysoká rychlost v softwaru, odolnost vůči timing útokům.
- Gimli: 24 kol, 384-bitový stav, 256-bitová bezpečnost. Rychlejší než ChaCha20 na 32-bitových architekturách, méně kódu pro IoT.
KDF a MAC na SHAKE-256
SHAKE-256 (založený na Keccak) pro kvantově odolnou derivaci klíčů a autentizaci. KDF: SHAKE256(sůl || sdílené tajemství || "session-key", 64) → klíč relace (32 bajtů) + macKey (32 bajtů). MAC: SHAKE256(macKey || hlavička || šifrový text, 32) s constant-time ověřením.
Krok za krokem algoritmus fungování
Generování klíčů
- Zvolit a ∈ Z_Q^N.
- Malé s, e s koeficienty {-1,0,1}.
- b = a ⊗ s + e (NTT).
- Veřejný: (a, b), privátní: s.
KEM pro relaci
Iniciátor:
- u = a ⊗ s' + e'.
- sdílené tajemství z b ⊗ s'.
Příjemce: sdílené tajemství z u ⊗ s.
Šifrování zprávy
- hlavička = časové razítko (8 bajtů) || sekvence (4 bajty).
- šifrový text = streamCipher.encrypt(otevřený text, klíč relace, nonce).
- mac = SHAKE256(macKey || hlavička || šifrový text, 32).
- Paket: hlavička || šifrový text || mac.
Dešifrování
- Rozdělit paket.
- Ověření MAC (constant-time).
- Časové razítko v rozmezí 5 min.
- Sekvence se neopakuje (okno 1000).
- otevřený text = streamCipher.decrypt(šifrový text).
Bezpečnostní opatření
- Postkvantová odolnost: Ring-LWE bez známých kvantových útoků, SHAKE-256 proti Groverovi.
- Boční kanály: constant-time porovnání, secureZero klíčů, bez větvení podle tajemství.
- Forward secrecy: efemérní klíče na relaci.
- Ochrana proti replay: časové razítko + sekvence.
Celková úroveň: 128-256 bitů proti klasickým/kvantovým hrozbám.
Benchmarky výkonnosti
Nastavení relace (ms, průměr z 1000)
| Operace | QuarkDash (ChaCha20) | QuarkDash (Gimli) | ECDH P-256 | RSA-2048 |
|----------|----------------------|-------------------|------------|----------|
| Generování klíčů | 12.3 | 12.1 | 1.2 | 48 |
| KEM inkapsulace | 8.7 | 8.5 | 3.4 | 42 |
| KEM dekapsulace | 9.2 | 9.0 | 3.4 | 0.1 |
Propustnost (MB/s)
| Velikost | ChaCha20 | Gimli | AES-256-GCM | ECIES |
|--------|----------|-------|-------------|-------|
| 1 KB | 125 | 132 | 117 | 10 |
| 1 MB | 2380 | 2630 | 1176 | 48 |
| 10 MB | 2450 | 2710 | 1200 | 50 |
Režijní náklady: veřejný klíč 2 KB, privátní 1 KB, režie paketu 44 bajtů.
Porovnání s alternativami
- Vs AES: QuarkDash přidává vestavěný KEM, forward secrecy, ochranu proti replay. ChaCha20 rychlejší než AES bez hardwarové podpory.
- Vs ECC: odolný vůči Shorovi, menší režie paketu (44 vs 61 bajtů), vyšší rychlost pro velká data.
Protokol je optimalizován pro TypeScript ve webových aplikacích, s emulací SHAKE-256 na Keccak.
Co je důležité
- Ring-LWE (N=256, Q=7681) pro 128-bit PQC s NTT-násobením.
- Dvojitý výběr šifer: ChaCha20 pro software, Gimli pro IoT.
- SHAKE-256 KDF/MAC s constant-time operacemi.
- Ochrana proti replay přes časové razítko + sekvence (okno 1000).
- Benchmarky: až 2710 MB/s šifrování, relace ~9 ms.
— Editorial Team
Zatím žádné komentáře.