Zurück zur Startseite

QuarkDash: Post-Quanten-Chiffre in TypeScript

QuarkDash — hybrides Post-Quanten-Protokoll basierend auf Ring-LWE für Schlüsselaustausch, ChaCha20/Gimli für Verschlüsselung und SHAKE-256 für Authentifizierung. Bietet 128-Bit-Sicherheit mit Leistung bis zu 2710 MB/s. Enthält Schutz vor Replay-Angriffen und Side-Channel-Angriffen.

Post-Quanten-QuarkDash: Ring-LWE und TypeScript-Code
Advertisement 728x90

QuarkDash: Hybrides Post-Quanten-Protokoll in TypeScript für Hochlastsysteme

QuarkDash kombiniert Ring-LWE für post-quanten-sicheren Schlüsselaustausch, Stromchiffren ChaCha20 oder Gimli, SHAKE-256 für Schlüsselableitung und MAC sowie Schutz vor Replay- und Timing-Angriffen. Öffentlicher Schlüssel ~2 KB, privater ~1 KB. Sitzungsaufbau dauert ~8-9 ms auf durchschnittlichen CPUs. Ideal für Client-Server-Systeme ohne Architekturbindung.

Auswahl der Primitiven in QuarkDash

Ring-LWE für Schlüsselaustausch

Ring-LWE nutzt Polynomringe mit Parametern N=256, Q=7681, ω=7. Bietet 128-Bit-Post-Quanten-Sicherheit. Polynommultiplikation via NTT in O(N log N). Schlüsselgenerierung: ~12 ms, Kapselung/Dekapselung ~8-9 ms.

Symmetrische Verschlüsselung

  • ChaCha20: 20 Runden, 256-Bit-Schlüssel, 12-Byte-Nonce. Extrem schnell in Software, resistent gegen Timing-Angriffe.
  • Gimli: 24 Runden, 384-Bit-Zustand, 256-Bit-Sicherheit. Übertrifft ChaCha20 auf 32-Bit-Architekturen, schlanker Code für IoT.

KDF und MAC mit SHAKE-256

SHAKE-256 (Keccak-basiert) für quantensichere Schlüsselableitung und Authentifizierung. KDF: SHAKE256(salt || sharedSecret || "session-key", 64) → sessionKey (32 Bytes) + macKey (32 Bytes). MAC: SHAKE256(macKey || header || ciphertext, 32) mit vergleichszeitkonstanter Überprüfung.

Google AdInline article slot

Protokollablauf Schritt für Schritt

Schlüsselgenerierung

  • Wähle a ∈ Z_Q^N.
  • Kleine s, e mit Koeffizienten {-1,0,1}.
  • b = a ⊗ s + e (NTT).
  • Öffentlich: (a, b), privat: s.

KEM für Sitzung

Initiator:

  • u = a ⊗ s' + e'.
  • sharedSecret aus b ⊗ s'.

Empfänger: sharedSecret aus u ⊗ s.

Nachrichtenverschlüsselung

  • header = timestamp (8 Bytes) || sequence (4 Bytes).
  • ciphertext = streamCipher.encrypt(plaintext, sessionKey, nonce).
  • mac = SHAKE256(macKey || header || ciphertext, 32).
  • Paket: header || ciphertext || mac.

Nachrichtenentschlüsselung

  • Paket parsen.
  • MAC prüfen (zeitkonstant).
  • Timestamp innerhalb 5 Minuten prüfen.
  • Sequence einzigartig sicherstellen (Fenster 1000).
  • plaintext = streamCipher.decrypt(ciphertext).

Sicherheitsmaßnahmen

  • Post-Quanten-Resistenz: Ring-LWE ohne bekannte Quantenbrüche, SHAKE-256 hält Grover-Algorithmus stand.
  • Side-Channel-Schutz: Zeitkonstante Vergleiche, sicheres Key-Zeroing, keine geheimsabhängigen Branches.
  • Forward Secrecy: Ephemere Sitzungsschlüssel.
  • Replay-Schutz: Timestamp + Sequence.

Gesamtsicherheit: 128-256 Bit gegen klassische/quantale Bedrohungen.

Google AdInline article slot

Leistungsbenchmarks

Sitzungsaufbau (ms, Durchschnitt 1000 Läufe)

| Operation | QuarkDash (ChaCha20) | QuarkDash (Gimli) | ECDH P-256 | RSA-2048 |

|----------|----------------------|-------------------|------------|----------|

| Schlüsselgenerierung | 12.3 | 12.1 | 1.2 | 48 |

Google AdInline article slot

| KEM Kapselung | 8.7 | 8.5 | 3.4 | 42 |

| KEM Dekapselung | 9.2 | 9.0 | 3.4 | 0.1 |

Durchsatz (MB/s)

| Größe | ChaCha20 | Gimli | AES-256-GCM | ECIES |

|--------|----------|-------|-------------|-------|

| 1 KB | 125 | 132 | 117 | 10 |

| 1 MB | 2380 | 2630 | 1176 | 48 |

| 10 MB | 2450 | 2710 | 1200 | 50 |

Overhead: öffentlicher Schlüssel 2 KB, privater 1 KB, Paketoverhead 44 Bytes.

Vergleich mit Alternativen

  • Vs AES: QuarkDash integriert KEM, Forward Secrecy, Replay-Schutz. ChaCha20 schlägt AES in Software ohne Hardware-Beschleunigung.
  • Vs ECC: Shor-resistent, geringerer Paketoverhead (44 vs 61 Bytes), schneller bei großen Nutzlasten.

Das Protokoll ist für TypeScript in Web-Apps optimiert, mit SHAKE-256-Emulation auf Keccak.

Wichtige Erkenntnisse

  • Ring-LWE (N=256, Q=7681) für 128-Bit-PQC mit NTT-Multiplikation.
  • Doppelchiffren: ChaCha20 für Software, Gimli für IoT.
  • SHAKE-256 KDF/MAC mit zeitkonstanten Operationen.
  • Replay-Schutz via Timestamp + Sequence (Fenster 1000).
  • Benchmarks: bis 2710 MB/s Verschlüsselung, Sitzungen ~9 ms.

— Editorial Team

Advertisement 728x90

Weiterlesen