返回首页

QuarkDash:TypeScript 中的后量子密码

QuarkDash — 基于 Ring-LWE 的混合后量子协议,用于密钥交换,ChaCha20/Gimli 用于加密,SHAKE-256 用于认证。提供 128 位安全性,性能高达 2710 MB/s。包括针对重放攻击和侧信道攻击的保护。

后量子 QuarkDash:Ring-LWE 和 TypeScript 代码
Advertisement 728x90

QuarkDash:TypeScript 高负载系统后量子混合协议

QuarkDash 结合 Ring-LWE 实现后量子密钥交换、流密码 ChaCha20 或 Gimli、SHAKE-256 用于密钥派生和 MAC,并防护重放攻击和时序攻击。公钥大小约 2 KB,私钥约 1 KB。会话建立平均耗时 8-9 ms,适用于普通 CPU。完美适配客户端-服务器系统,无架构锁定。

QuarkDash 的原语选择

Ring-LWE 用于密钥交换

Ring-LWE 使用多项式环,参数 N=256、Q=7681、ω=7,提供 128 位后量子安全性。多项式乘法通过 NTT 实现 O(N log N) 复杂度。密钥生成约 12 ms,封装/解封装约 8-9 ms。

对称加密

  • ChaCha20:20 轮,256 位密钥,12 字节 nonce。软件实现极快,抗时序攻击。
  • Gimli:24 轮,384 位状态,256 位安全性。在 32 位架构上超越 ChaCha20,IoT 代码更精简。

SHAKE-256 实现 KDF 和 MAC

基于 Keccak 的 SHAKE-256 提供抗量子密钥派生和认证。KDF:SHAKE256(salt || sharedSecret || "session-key", 64) → sessionKey (32 字节) + macKey (32 字节)。MAC:SHAKE256(macKey || header || ciphertext, 32),恒定时间验证。

Google AdInline article slot

协议流程详解

密钥生成

  • 选择 a ∈ Z_Q^N。
  • 小型 s、e,系数 {-1,0,1}。
  • b = a ⊗ s + e (NTT)。
  • 公钥:(a, b),私钥:s。

会话 KEM

发起方:

  • u = a ⊗ s' + e'。
  • sharedSecret 来自 b ⊗ s'。

接收方:sharedSecret 来自 u ⊗ s。

消息加密

  • header = 时间戳 (8 字节) || 序列号 (4 字节)。
  • ciphertext = streamCipher.encrypt(plaintext, sessionKey, nonce)。
  • mac = SHAKE256(macKey || header || ciphertext, 32)。
  • 数据包:header || ciphertext || mac。

消息解密

  • 解析数据包。
  • 恒定时间验证 MAC。
  • 检查时间戳在 5 分钟内。
  • 确保序列号唯一(窗口 1000)。
  • plaintext = streamCipher.decrypt(ciphertext)。

安全措施

  • 后量子抗性:Ring-LWE 无已知量子破解,SHAKE-256 抗 Grover 算法。
  • 侧信道防护:恒定时间比较、安全密钥清零、无密钥相关分支。
  • 前向保密:临时会话密钥。
  • 重放防护:时间戳 + 序列号。

整体安全性:针对经典/量子威胁 128-256 位。

Google AdInline article slot

性能基准测试

会话建立 (ms,1000 次平均)

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

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

| 密钥生成 | 12.3 | 12.1 | 1.2 | 48 |

Google AdInline article slot

| KEM 封装 | 8.7 | 8.5 | 3.4 | 42 |

| KEM 解封装 | 9.2 | 9.0 | 3.4 | 0.1 |

吞吐量 (MB/s)

| 大小 | ChaCha20 | Gimli | AES-256-GCM | ECIES |

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

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

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

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

开销:公钥 2 KB,私钥 1 KB,数据包开销 44 字节。

与其他方案对比

  • 对比 AES:QuarkDash 内置 KEM、前向保密、重放防护。ChaCha20 在无硬件加速的软件中胜过 AES。
  • 对比 ECC:抗 Shor 算法,数据包开销更低 (44 vs 61 字节),大负载更快。

协议针对 TypeScript Web 应用优化,SHAKE-256 在 Keccak 上模拟实现。

核心要点

  • Ring-LWE (N=256, Q=7681) 提供 128 位 PQC,NTT 乘法。
  • 双密码:ChaCha20 适配软件,Gimli 适配 IoT。
  • SHAKE-256 KDF/MAC,恒定时间操作。
  • 重放防护:时间戳 + 序列号 (窗口 1000)。
  • 基准:加密最高 2710 MB/s,会话约 9 ms。

— Editorial Team

Advertisement 728x90

继续阅读