[开源] ECP:基于 ML-KEM-1024 + X25519 的后量子混合加密双棘轮协议 (纯前端/无后端/剪贴板传输)

jamesliu96 2026-09-21 17:50 1

大家好,最近开源了一个纯前端、零后端的端到端加密( E2EE )传输协议与工具:E2EE Clipboard Protocol (ECP)


💡 为什么做这个项目?


我们日常在不信任的通道(如第三方聊天软件、邮件、社交媒体、在线文档甚至公共剪贴板)发送敏感数据(密钥、密码、私密信息)时,往往不得不依赖中央服务器或平台的安全性。


ECP 的目标是实现完全脱离后端的 Out-of-Band 端到端安全传输:



  1. 本地生成密钥并与对方交换 Identity Bundle ;

  2. 文本/媒体加密后生成 Base64URL 字符串并复制到剪贴板;

  3. 通过任何渠道发送给对方,对方粘贴即可在本地解密。


🛡️ 核心密码学 Stack (NIST Level 5 PQC)


考虑到未来量子计算的 Threat Model ,协议从一开始就采用了经典密码学与后量子密码学( PQC )结合的混合架构 (Hybrid Construction):



  • 混合密钥交换 (Hybrid Key Exchange): X25519 + FIPS 203 ML-KEM-1024

  • 复合签名 (Composite Signatures): Ed25519 + FIPS 204 ML-DSA-87 (用于握手身份校验与防 PITM)

  • 对称加密与认证: AES-256-GCM (96-bit IV)

  • 后量子混合双棘轮 (Hybrid Double Ratchet): 基于 HKDF-SHA256 ,每一轮 DH 棘轮均同时注入新的 ML-KEM 共享密钥,实现后量子级别的前向安全 (Forward Secrecy)破入恢复 (Break-In Recovery)


🏗️ 架构特点



  1. 纯前端 / 零后端 / 离线可用: 密钥对生成、会话状态与双棘轮链条全部存储在本地 IndexedDB,不依赖任何 API 服务器,彻底消除服务端攻击面。

  2. 严格的 AAD 绑定: 针对 INIT / RESP / MSG 等不同 Packet 构造显式的 AAD (Authenticated Additional Data),防范跨信道重放、报文篡改与身份误导。

  3. 轻量与可验证性: 纯 TypeScript 编写,密码学底层基于 @noble 官方库,无复杂脚手架与不透明依赖,便于源码审计。


📦 开源与 Spec


协议规范、二进制 Wire 布局文档及完整代码均已开源,欢迎试用与 Code Review:



  • GitHub 仓库: https://github.com/jamesliu96/ecp

  • Online Demo: https://ecp.jamesliu.info/


非常欢迎社区里对密码学、安全或 TypeScript/WebCrypto 感兴趣的朋友提出改进意见、安全假设讨论或 Issue !

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回