MoHoushmand/zipminator-pqc

GitHub: MoHoushmand/zipminator-pqc

一款提供真实量子熵与 NIST FIPS 203 Kyber768 的后量子密码学工具包,用于构建抗量子计算的加密与匿名化能力。

Stars: 0 | Forks: 0

Zipminator

Zipminator

后量子密码学工具包,配备真实量子熵
Rust 中的 CRYSTALS-Kyber-768 (ML-KEM),提供 Python SDK 并具备 10 级数据匿名化,
PII 扫描,以及通过 IBM Quantum 硬件进行量子种子密钥生成。

CI FIPS 203 Tests License Python Rust

## 最新发布(2026 年 4 月) - **2026-04-08** — 投资者蓝图扩展至 50,000 字 IP 估值文档(在线地址:[/blueprint](https://www.zipminator.zip/blueprint)) - **2026-04-06** — Flutter 超应用已作为 Build 43 上传 TestFlight(版本 v0.5.0+43) - **2026-04-02** — Python SDK v0.5.0 已发布至 PyPI:`pip install zipminator==0.5.0` - **2026-03-26** — 信令服务器已在 Fly.io 运行:`wss://zipminator-signaling.fly.dev` - **2026-03-20** — 物理密码学 Wave 1 落地(6 个新网格模块:CSI 熵、PEUK、EM 看门狗、vital-auth、topo-auth、时空不可否认性) ### 研究与知识产权 - **3 篇研究论文** 已公开在 GitHub:[quantum-certified-anonymization](https://github.com/QDaria/quantum-certified-anonymization)、[unilateral-csi-entropy](https://github.com/QDaria/unilateral-csi-entropy)、[certified-heterogeneous-entropy](https://github.com/QDaria/certified-heterogeneous-entropy) - **3 项专利** 已向 Patentstyret(挪威知识产权局)提交,2026 年 3 月。共计 46 项权利要求。 请查阅完整的 [CHANGELOG.md](CHANGELOG.md) 以了解每个版本的详细信息。 ## 这是什么 Zipminator 是 [Zipminator PQC 平台](https://www.zipminator.zip) 的开源密码学核心。它提供: - **Rust Kyber768 引擎**,具备恒定时间运算、NIST KAT 验证和模糊测试 - **Python SDK**(v0.5.0),包含 PyO3 绑定、10 级匿名化、PII 扫描和 CLI - **量子熵采集器**,通过 qBraid 持续从 IBM Quantum(Fez、Marrakesh)收集真实熵 - **订阅限制访问**,提供免费的 L1-3 以及需要 API 密钥的 L4-10 商业平台(Flutter 超应用、Tauri 浏览器、Web 仪表板)是基于此核心构建的,但未包含在本仓库中。 ## 快速开始 ``` pip install zipminator ``` ``` from zipminator import keypair, encapsulate, decapsulate # 生成 Kyber768 密钥对(NIST FIPS 203,安全等级 3) pk, sk = keypair() # 封装:发送方创建共享密钥 + 密文 ct, shared_secret = encapsulate(pk) # 解封装:接收方恢复相同的共享密钥 recovered = decapsulate(ct, sk) assert shared_secret == recovered # 32-byte shared secret ``` 使用量子熵作为种子: ``` from zipminator.crypto.pqc import PQC seed = open("quantum_entropy/quantum_entropy_pool.bin", "rb").read(32) pqc = PQC(level=768) pk, sk = pqc.generate_keypair(seed=seed) # Seeded from IBM Quantum hardware ``` ## 功能特性 ### Rust Kyber768 核心 从零开始实现的 CRYSTALS-Kyber-768。所有依赖密钥的运算均使用 `subtle` 库实现恒定时间运算。NTT 层中的 Montgomery 与 Barrett 约化。编译为本地库并通过 PyO3/maturin 生成 Python 扩展模块。 **密钥尺寸**:PK = 1,184 字节,SK = 2,400 字节,CT = 1,088 字节,SS = 32 字节。 ### 10 级数据匿名化 从基础掩码到同态加密的渐进式匿名化: | 级别 | 技术 | 等级 | |------|------|------| | L1 | SHA-256 哈希 | 免费 | | L2 | 量子随机替换 | 免费 | | L3 | 确定性令牌化 | 免费 | | L4 | 泛化(数值范围、类别) | 开发者 | | L5 | 抑制(NULL 替换) | 开发者 | | L6 | 量子噪声注入 | 专业 | | L7 | 合成数据生成(Faker) | 专业 | | L8 | k-匿名分组 | 企业 | | L9 | 差分隐私(Laplace 噪声) | 企业 | | L10 | Paillier 同态加密 | 企业 | ### PII 扫描器 自动检测 50 多种 PII 类型,覆盖 15 个国家(美国、英国、阿联酋、挪威、瑞典、丹麦、芬兰、欧盟、德国、法国、印度、巴西、日本、加拿大、澳大利亚)。每个匹配项都会获得置信度评分和风险等级(低 / 中 / 高 / 危急)。 ``` from zipminator.crypto.pii_scanner import PIIScanner import pandas as pd scanner = PIIScanner() results = scanner.scan_dataframe(pd.read_csv("data.csv")) print(results["summary"]) # PII 扫描结果: # - 3 列包含 PII # - 风险等级:高 # - 推荐匿名化级别:7/10 ``` 检测类型包括:挪威 FNR、瑞典 personnummer、丹麦 CPR、芬兰 henkilotunnus、德国 Steuer-ID、法国 NIR、印度 Aadhaar/PAN、巴西 CPF/CNPJ、日本 My Number、加拿大 SIN、澳大利亚 TFN、美国 SSN、英国 NI 号、阿联酋 Emirates ID、IBAN、信用卡、电子邮件、电话等。 ### 量子熵采集器 通过 qBraid 持续从 IBM Quantum 硬件(156 量子位 Eagle r3 处理器)收集真实熵。池文件无限制增长;消费者可动态读取。 ``` # 守护进程模式(永久运行,每小时采集) python -m zipminator.entropy.scheduler --daemon --interval 3600 # 一次性运行(适用于定时任务) python -m zipminator.entropy.scheduler --once # 检查存储池状态 python -m zipminator.entropy.scheduler --stats ``` 熵配额按订阅等级管理: | 等级 | 每月熵配额 | 超出费用 | |------|------------|----------| | 免费 | 1 MB | $0.01/KB | | 开发者 | 10 MB | $0.01/KB | | 专业 | 100 MB | $0.01/KB | | 企业 | 无限 | - | ### 量子随机模块 作为 Python `random` 模块的可直接替换方案,由量子熵支持(可用时): ``` from zipminator.crypto.quantum_random import QuantumRandom qr = QuantumRandom() qr.random() # float in [0.0, 1.0) qr.randint(1, 100) # inclusive range qr.randbytes(32) # cryptographic bytes qr.choice(["a", "b"]) # random selection qr.shuffle(my_list) # Fisher-Yates shuffle ``` ### 自毁功能 执行 DoD 5220.22-M 3 次覆写(零、一、随机),支持定时自动销毁与审计日志。 ### CLI ``` pip install zipminator[cli] zipminator keygen --output-dir ./keys zipminator keygen --entropy-file quantum_entropy/quantum_entropy_pool.bin zipminator entropy --bits 256 ``` ## 架构 ``` +-----------------+ | Python SDK | zipminator v0.5.0 | CLI / Jupyter | +--------+--------+ | PyO3 +--------+--------+ | Rust Core | crates/zipminator-core | Kyber768 KEM | | NTT / Poly | | Entropy Pool | +--------+--------+ | +--------------+--------------+ | | | +-----+----+ +-----+----+ +------+-----+ | IBM Fez | | IBM | | OS Entropy | | (qBraid) | | Marrakesh| | (fallback) | +-----------+ +----------+ +------------+ ``` ### 仓库结构 ``` zipminator/ +-- crates/ | +-- zipminator-core/ Kyber768 KEM, NTT, poly, entropy pool, PyO3 bindings | +-- zipminator-fuzz/ cargo-fuzz targets (keygen, encaps, decaps, round-trip) | +-- zipminator-nist/ NIST FIPS 203 Known Answer Test runner | +-- zipminator-mesh/ Q-Mesh security (HMAC-SHA256 beacon auth) | +-- zipminator-app/ Flutter Rust Bridge (FRB) safe wrappers +-- src/zipminator/ Python SDK | +-- crypto/ PQC wrapper, PII scanner, anonymization, self-destruct | +-- entropy/ Provider adapters, scheduler daemon, quota manager | +-- jupyter/ JupyterLab magics and widgets +-- tests/ | +-- python/ 429+ tests (core, PQC, PII x15 countries, entropy, installer) +-- scripts/ | +-- install-zipminator.sh Universal installer (macOS + Linux) | +-- install-zipminator.ps1 Universal installer (Windows) | +-- qrng_harvester.py Standalone entropy harvester +-- docs/book/ Jupyter Book documentation (20+ pages) +-- quantum_entropy/ Entropy pool (gitignored .bin files) +-- config/ Provider YAML configs ``` ## 安装 ### 从 PyPI 安装 ``` pip install zipminator # Core (894KB wheel, Rust crypto included) pip install zipminator[cli] # + CLI (typer, rich) pip install zipminator[data] # + numpy, pandas, pyzipper pip install zipminator[anonymization] # + faker, numpy, pandas pip install zipminator[jupyter] # + JupyterLab, ipywidgets, plotly pip install zipminator[all] # Everything ``` ### 从源码安装 要求:Rust 1.70+,Python 3.9+。 ``` git clone https://github.com/QDaria/zipminator.git cd zipminator # 构建 Rust 核心 + Python 绑定 pip install maturin maturin develop --release --strip # 安装开发依赖 pip install -e ".[dev,data,anonymization,cli]" # 运行测试 cargo test --workspace # 413 Rust tests pytest tests/python/ -v # 162 Python tests ``` ## 安全 ### NIST FIPS 203(ML-KEM) Kyber768 实现遵循 NIST FIPS 203 规范。通过确定性 DRBG 对官方已知答案测试向量进行验证。 ``` cd crates/zipminator-nist cargo test ``` **注意**:本库实现了 FIPS 203(算法规范)。**尚未**通过 FIPS 140-3 模块验证(这需要 CMVP 认证)。请不要将其描述为“FIPS 认证”或“FIPS 验证”。 ### 恒定时间运算 所有依赖密钥的运算均使用: - `subtle::ConstantTimeEq` 用于密钥比较 - `subtle::ConditionallySelectable` 用于无分支秘密选择 - `csubq()` 配合算术掩码(无条件分支) - Montgomery 与 Barrett 约化标记为 `#[inline(always)]` ### 模糊测试 四个 `cargo-fuzz` 目标覆盖攻击面: | 目标 | 输入 | |------|------| | `fuzz_keygen` | 任意种子字节 | | `fuzz_encapsulate` | 畸形公钥 | | `fuzz_decapsulate` | 畸形密文/密钥对 | | `fuzz_round_trip` | 端到端正确性 | ``` cd crates/zipminator-fuzz cargo fuzz run fuzz_keygen -- -max_total_time=300 ``` ## 测试覆盖率 | 层级 | 测试数 | 状态 | |------|-------|------| | Rust 核心(Kyber768、匿名化、速率限制、SRTP、邮件) | 200 | 通过 | | Rust 浏览器(Tauri、提示防护) | 125 | 通过 | | Rust NIST KAT | 35 | 通过 | | Rust 网格(HMAC-SHA256 信标认证) | 28 | 通过 | | Rust 桥接(FRB) |25 | 通过 | | **Rust 总计** | **413** | **通过** | | Python 核心(Kyber 绑定、PQC 包装器) | 73 | 通过 | | Python PII 扫描器(15 个国家) | 224 | 通过 | | Python 订阅(等级、API 密钥限制) | 35 | 通过 | | Python 熵(池提供者、配额、调度器) | 54 | 通过 | | Python 量子随机 | 18 | 通过 | | Python 安装工具 | 19 | 通过 | | Python 多提供者 | 16 | 跳过(需要外部依赖) | | **Python 总计** | **429** | **通过** | | **总计** | **842** | | ## 基准测试 通过 Python SDK(PyO3 绑定)在 Apple M1 Max 上测量,发布版本。纯 Rust 性能更高;以下数字包含 Python-Rust 桥接开销。 | 操作 | 每秒操作数 | 延迟 | |------|------------|------| | KeyGen | 3,115 | 321 μs | | Encapsulate | 1,649 | 607 μs | | Decapsulate | 1,612 | 620 μs | | 完整往返 | 900 | 1.1 ms | 本地运行基准测试: ``` # Rust 原生基准测试(Criterion) cd crates/zipminator-core && cargo bench # Python SDK 基准测试 python -c " from zipminator._core import keypair, encapsulate, decapsulate import time pk, sk = keypair() start = time.perf_counter() for _ in range(1000): ct, ss = encapsulate(pk) decapsulate(ct, sk) print(f'{1000/(time.perf_counter()-start):.0f} round-trips/sec') " ``` ## 量子熵提供者 | 提供者 | 后端 | 状态 | |--------|------|------| | qBraid | IBM Fez / Marrakesh (156 量子位 Eagle r3) | 生产 | | IBM Quantum | Qiskit Runtime | 可用 | | Rigetti | QCS (pyQuil) | 可用 | | OS 备用 | `getrandom` / `os.urandom` | 始终可用 | ``` # .env QBRAID_API_KEY=your_key IBM_QUANTUM_TOKEN=your_token RIGETTI_API_KEY=your_key ``` 采集器守护进程持续将熵拉入不断增长的池: ``` # Crontab:每 6 小时采集一次 0 */6 * * * /path/to/python -m zipminator.entropy.scheduler --once ``` ## 订阅等级 开源 SDK 包含全部 10 级匿名化。L1-3 始终可用。L4-10 需要 API 密钥或激活码。 | 等级 | 价格 | 等级范围 | 熵 | 量子随机数 | |------|------|----------|----|------------| | 免费 | $0 | 1-3 | 1 MB/月 | 否 | | 开发者 | $9/月 | 1-5 | 10 MB/月 | 否 | | 专业 | $29/月 | 1-7 | 100 MB/月 | 否 | | 企业 | 定制 | 1-10 | 无限 | 是 | ``` from zipminator.crypto.subscription import APIKeyValidator # L1-3:始终有效 allowed, msg, method = APIKeyValidator.authorize_level(3) assert allowed # True, free_tier # L4+:需要 API 密钥或激活码 import os os.environ["ZIPMINATOR_API_KEY"] = "your-key" allowed, msg, method = APIKeyValidator.authorize_level(7) ``` ## 开源与企业版对比 | 组件 | 本仓库 | 企业版 | |------|--------|--------| | Rust Kyber768 核心 | 是 | 是 | | Python SDK + CLI | 是 | 是 | | 10 级匿名化 | 是 | 是 | | PII 扫描器 | 是 | 是 | | 量子熵采集器 | 是 | 是 | | 熵配额 + 计费 | 是 | 是 | | NIST KAT + 模糊测试 | 是 | 是 | | Flutter 超应用 (iOS/Android/macOS/Windows/Linux) | - | 是 | | Tauri PQC 浏览器 (ZipBrowser) | - | 是 | | Web 仪表板 + 演示文稿 | - | 是 | | PQC 消息 + VoIP | - | 是 | | Q-VPN (PQ-WireGuard) | - | 是 | | 量子邮件 (@zipminator.zip) | - | 是 | | HSM 集成 | - | 是 | | FIPS 140-3 验证模块 | - | 是 | | SSO / RBAC | - | 是 | | 24/7 支持 + SLA | - | 是 | ## 许可证 ``` Copyright 2025-2026 QDaria AS Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ``` 企业功能(Flutter 应用、浏览器、VPN、邮件、HSM、SSO)需要单独的商业许可证。请联系 [mo@qdaria.com](mailto:mo@qdaria.com)。 ## 链接 - **平台**:[zipminator.zip](https://www.zipminator.zip) - **QDaria**:[qdaria.com](https://qdaria.com) - **仓库**:[github.com/QDaria/zipminator](https://github.com/QDaria/zipminator) - **问题**:[github.com/QDaria/zipminator/issues](https://github.com/QDaria/zipminator/issues) ## Web UI 执行文档 Zipminator 的交互式 Web 栈(React/Next.js 阶段执行)可直接在附带的文档中查看: - [FINAL_WALKTHROUGH_P1_P2.md](docs/guides/FINAL_WALKTHROUGH.md) — BMAD 系统与 Tailwind 初始化 - [FINAL_WALKTHROUGH_P3_P4.md](docs/guides/FINAL_WALKTHROUGH_P3_P4.md) — 娱乐化层与量子状态动画器 - [FINAL_WALKTHROUGH_P5_P6.md](docs/guides/FINAL_WALKTHROUGH_P5_P6.md) — DropZone 架构与 PQC Python 互操作 API - [FINAL_WALKTHROUGH_P7_P8.md](docs/guides/FINAL_WALKTHROUGH_P7_P8.md) — Micromamba 集成与部署 由 [QDaria](https://qdaria.com) 在挪威奥斯陆建造。
标签:10级匿名化, Apache 2.0, CRYSTALS-Kyber, GitHub Actions, IBM Quantum, JSONLines, Kyber768, ML-KEM, NIST FIPS 203, PII扫描, Post-Quantum Cryptography, PQC, Python 3.9, Python SDK, Rust, Rust 2021, Zipminator, 信号服务器, 加密平台, 可视化界面, 后量子密码, 安全密钥分发, 安全通信, 密码学工具包, 密钥派生, 密钥生成, 开源, 数据匿名化, 测试覆盖, 熵收集, 物理密码学, 真实量子熵, 硬件熵源, 网络流量审计, 自动化攻击, 自动笔记, 逆向工具, 量子安全加密, 量子熵, 量子计算安全, 量子随机数生成, 零信任