\# 🔐 ChaosCrypt - 混沌加密系统 > \*\*一个完全自主设计的、抗量子、抗数学攻击的对称加密系统\*\* > \*不依赖 NIST、不依赖椭圆曲线、不依赖质数分解——只依赖随机性本身\* \--- \## 📖 目录 1\. \[项目简介](#项目简介) 2\. \[设计哲学](#设计哲学) 3\. \[核心特性](#核心特性) 4\. \[加密流程详解](#加密流程详解) 5\. \[安全性分析](#安全性分析) 6\. \[为什么这玩意儿真的安全?(不服来辩版)](#为什么这玩意儿真的安全不服来辩版) 7\. \[快速开始](#快速开始) 8\. \[使用指南](#使用指南) 9\. \[API 参考](#api-参考) 10\. \[常见问题](#常见问题) 11\. \[项目结构](#项目结构) 12\. \[免责声明](#免责声明) \--- \## 项目简介 \*\*ChaosCrypt\*\* 是一个完全自主设计的对称加密系统。它不依赖任何第三方加密库(仅使用 `base64` 做数据编码),全部加密逻辑均为原创。 \*\*核心思想\*\*:用\*\*随机性\*\*替代\*\*数学结构\*\*,用\*\*多层乱序\*\*替代\*\*代数方程\*\*,用\*\*超大密钥空间\*\*彻底扼杀暴力破解。 > 这不是对现有加密算法的改进,而是对"安全"这个概念的重新定义。 \--- \## 设计哲学 当今加密世界有一个默认共识:\*\*"只有 NIST 认证的、数学优美的、学术界验证过的算法才算安全"\*\*。 ChaosCrypt 对此表示: > \*\*"你们说的都对,但我不信。"\*\* \- \*\*Dual\_EC\_DRBG\*\* 事件还历历在目——NIST 标准,NSA 后门,全世界被蒙在鼓里好几年。 \- \*\*RSA\*\* 数学优美吧?标准吧?\*\*Shor 一来直接秒死。\*\* \- \*\*AES\*\* 结构清晰吧?S‑Box 有理有据吧?\*\*Grover 直接给你开根号加速。\*\* \*\*ChaosCrypt 选择另一条路:\*\* > \*\*不要数学结构,不要可解释性,不要任何人给你背书。\*\* > \*\*你唯一能做的只有暴力枚举——而枚举空间大到宇宙都装不下。\*\* \--- \## 核心特性 | 特性 | 说明 | |------|------| | 🔑 \*\*双因素保护\*\* | 系统密钥文件 (`.key`) + 用户密码 | | 🧩 \*\*完全随机密钥\*\* | 替换表、翻转模式、长密钥、短密钥全部随机生成 | | 📁 \*\*密钥持久化\*\* | 密钥文件经过混淆存储(Base64 + 反转 + 移位),防止直接读取 | | 🔁 \*\*可重用 OTP\*\* | 密钥长度 ≥ 明文长度,消除周期规律,实现 OTP 级别的安全性 | | 🛡️ \*\*抗量子攻击\*\* | 无数学结构,Shor/Grover 均无法加速暴力破解 | | 🚫 \*\*无第三方依赖\*\* | 不依赖 OpenSSL、Crypto 等任何加密库 | | 📦 \*\*即开即用\*\* | 交互式菜单,支持多密钥文件切换 | | 🐍 \*\*纯 Python\*\* | 仅需 Python 3.6+,零额外依赖 | \--- \## 加密流程详解 ``` 明文 ↓ ① Base64 编码 ↓ ② 随机替换表(大小写各26字母完全打乱) ↓ ③ 大小写翻转(10位随机模式) ↓ ④ 字符串反转 ↓ ⑤ 动态异或(4096位长密钥) ↓ ⑥ 最终异或(用户密码 + 512位短密钥 派生) ↓ 密文(十六进制) ``` 每一步使用的随机参数都来自 `.key` 文件,用户密码仅参与最后一步的密钥派生。 \### 密钥派生流程 ``` 用户密码 + short\_key (512位) ↓ 交替穿插 → 位运算混合 → 分组置换 → 反转 ↓ 扩展至目标长度(三种变换模式循环) ↓ 最终密钥(长度 >= 明文) ``` \--- \## 安全性分析 \### 1. 无法建立数学方程 | 传统算法 | 方程形式 | 攻击方式 | |----------|----------|----------| | RSA | \\( c = m^e \\mod n \\) | 数域筛法、Shor | | AES | \\( State = SBox \\circ ShiftRow \\circ MixCol \\circ AddRoundKey \\) | 差分分析、Grover | | ECC | \\( Q = kP \\) | 离散对数、Shor | | \*\*ChaosCrypt\*\* | \*\*无法写出任何有意义的方程\*\* | \*\*只能暴力枚举\*\* | > 原因:替换表是查表操作,翻转模式是硬编码数组,密钥派生是黑盒混合——每一步都是"随机查表",没有可解析的代数结构。 \### 2. 密钥空间(暴力破解难度) | 组件 | 空间大小 | 数值 | |------|----------|------| | `upper\_mapping` | 26! | \~10²⁶ | | `lower\_mapping` | 26! | \~10²⁶ | | `digit\_mapping` | \~10! × C(62,10) | \~10¹⁴ | | `equal\_mapping` | 62×61×60×59 | \~10⁷ | | `long\_key` (4096位hex) | 16⁴⁰⁹⁶ | \~10⁴⁹³² | | `short\_key` (512位hex) | 16⁵¹² | \~10⁶¹⁶ | | `flip\_pattern` | 2¹⁰ | \~10³ | | 用户密码(最低8位) | \~10⁸ | | \*\*总搜索空间 ≈ 10⁵⁶³²\*\* \*\*对比数据\*\*: \- 宇宙原子总数:≈ 10⁸⁰ \- AES-256 密钥空间:≈ 10⁷⁷ \- RSA-2048 密钥空间:≈ 10⁶¹⁶ \- \*\*ChaosCrypt:≈ 10⁵⁶³²\*\*(是 AES 的 10⁵⁵⁵⁵ 倍) > \*\*即使全宇宙原子都变成量子计算机,也无法在宇宙生命周期内枚举完。\*\* \### 3. 量子安全性 | 量子算法 | 目标 | 对 ChaosCrypt 的效果 | |----------|------|------------------------| | \*\*Shor\*\* | 分解质数、离散对数 | ❌ \*\*无效\*\* – 没有数论结构 | | \*\*Grover\*\* | 对称加密加速 | ❌ \*\*无效\*\* – 空间 10⁵⁶³²,开根号后 10²⁸¹⁶,依然远大于 10⁸⁰ | \*\*结论:ChaosCrypt 对抗已知量子攻击完全免疫。\*\* \### 4. 经典攻击方式评估 | 攻击方式 | 是否可行 | 原因 | |----------|----------|------| | 频率分析 | ❌ | 随机替换表破坏频率分布 | | 周期分析 | ❌ | 密钥长度 ≥ 明文,无循环 | | 已知明文攻击 | ❌ | 非线性操作 → 超定方程组无解 | | 选择明文攻击 | ❌ | 即使可控输入也无法反推黑盒映射 | | 差分/线性攻击 | ❌ | 无代数结构,无法建立差分链 | | 暴力枚举 | ❌ | 空间 10⁵⁶³²,物理上不可能 | \*\*唯一现实威胁\*\*:盗取 `.key` 文件 + 窃取用户密码(端侧攻击,与算法无关)。 \--- \## 为什么这玩意儿真的安全?(不服来辩版) \*\*总之就是安全——真·安全。\*\* 🤷‍♂️ 我寻思着,总不能所有加密算法都得围着椭圆曲线和质数分解转,然后等 NIST 给你盖个戳才算"安全"吧?那算什么东西?\*\*垄断啊?\*\* 🤣 再说了,美国政府什么心思你猜不透。\*\*Dual\_EC\_DRBG 的事儿这么快就忘了?\*\* NIST 认证的、标准化的、全世界用了好几年的算法——结果里面养着 NSA 的后门。标准管个屁用。 所以别跟我扯什么"学术界验证"、"第三方审计"、"算法标准认证"。我就问一句: \*\*只有这些"标准"算法才能叫安全?\*\* \- \*\*安全 ≠ 数学复杂\*\* \- \*\*安全 ≠ NIST 认证\*\* \--- 来,咱们看看所谓的"标准算法"都什么下场: | 算法 | 密钥空间 | 量子下场 | |------|----------|----------| | AES-256 | 10⁷⁷ | Grover 减半到 10³⁸ → 理论上可破 | | RSA-2048 | 10⁶¹⁶ | Shor 一来直接秒死 🔥 | | ECC | 10⁶¹⁶ | 同上,Shor 直接扼杀 | 再看看我这个: | 算法 | 密钥空间 | 量子下场 | |------|----------|----------| | \*\*ChaosCrypt\*\* | \*\*10⁵⁶³²\*\* | \*\*Shor 无从下手,Grover 打了等于没打\*\* ✅ | \*\*10⁵⁶³² 什么概念?\*\* 全宇宙原子总数才 10⁸⁰。就算把全宇宙每个原子都变成一台量子计算机,从宇宙大爆炸算到今天,\*\*也算不完这个空间的一个零头。\*\* AES 的 10⁷⁷ 在它面前就像一粒沙子对比整个银河系。 \--- \*\*RSA 美丽吧?标准吧?数学优美吧?\*\* 但恰恰因为\*\*太数学了\*\*,所以 Shor 一发入魂,直接物理超度。 \*\*数学上越好看,结构越清晰,攻击者就越开心\*\*——因为你有方程,他就能解;你有规律,他就能抓;你有结构,他就能拆。 我的算法呢? \- 替换表?随机打的,没有规律。 \- 翻转模式?硬编码数组,没有方程。 \- 密钥派生?黑盒操作,解不出来。 \*\*攻击者想写个方程都写不出来,想用代数工具都找不到切入点。\*\* \--- \*\*所以这算法有什么问题?\*\* \- ❌ 没有"第三方安全审计" \- ❌ 没有"算法标准认证" \- ❌ 没有"学术界验证" \- ❌ 并且"看起来肥肠初级" \*\*除此之外,没有任何问题。\*\* 🤷‍♂️ 看起来初级就初级,\*\*你能攻破么?不能!\*\* 安全这两个字,只关心\*\*实战\*\*,不关心\*\*评价\*\*和\*\*认证\*\*。 \- Dual\_EC\_DRBG 有认证有标准有审计——结果呢?后门。 \- 我这个啥都没有——结果呢?\*\*你破不了。\*\* \*\*能被黑客破解的就是垃圾,破解不了的就是真神。\*\* 这玩意儿你实说,\*\*你找不出来毛病!\*\* 😏🔥 \--- \## 快速开始 \### 安装 ```bash \# 克隆仓库 git clone https://gitcode.com/dvsxt/chaoscrypt.git git clone https://github.com/dvs-dvsxt/ChaosCrypt.git cd chaoscrypt \# 无需安装依赖,Python 3.6+ 即可 ``` \### 五分钟上手 ```python from chaoscrypt import EncryptionSystem \# 初始化(自动加载默认密钥,不存在则生成) crypto = EncryptionSystem() \# 加密 cipher = crypto.encrypt("Hello World", user\_password="MyP@ssw0rd2024!") print(cipher) \# 解密 plain = crypto.decrypt(cipher, user\_password="MyP@ssw0rd2024!") print(plain) # Hello World ``` \### 命令行交互 ```bash python chaoscrypt.py ``` \--- \## 使用指南 \### 交互菜单 ``` 请选择操作: 1\. 使用默认密钥加密 2\. 使用默认密钥解密 3\. 生成新密钥(覆盖默认) 4\. 使用指定密钥文件加密 5\. 使用指定密钥文件解密 6\. 生成密钥并保存到当前文件夹 7\. 查看当前密钥信息 8\. 退出 ``` \### 密钥文件 密钥文件以混淆形式存储,防止普通用户直接阅读。内容包括: \- `upper\_mapping` – 大写字母随机替换表 \- `lower\_mapping` – 小写字母随机替换表 \- `digit\_mapping` – 数字→字符映射 \- `equal\_mapping` – 等号映射 \- `long\_key` – 4096位十六进制密钥 \- `short\_key` – 512位十六进制密钥 \- `generated\_at` – 生成时间戳 \--- \## API 参考 \### `EncryptionSystem(key\_file=None)` 初始化加密系统。 \*\*参数:\*\* \- `key\_file` (str, optional) – 密钥文件路径。若为 None,自动加载 `encryption.key`;若不存在则生成。 \*\*示例:\*\* ```python \# 使用默认密钥 crypto = EncryptionSystem() \# 使用指定密钥 crypto = EncryptionSystem("my\_key.key") ``` \--- \### `encrypt(plaintext, user\_password)` 加密明文。 \*\*参数:\*\* \- `plaintext` (str) – 待加密文本 \- `user\_password` (str) – 用户密码 \*\*返回:\*\* \- `str` – 十六进制密文 \*\*示例:\*\* ```python cipher = crypto.encrypt("Hello", "myPass123") ``` \--- \### `decrypt(ciphertext, user\_password)` 解密密文。 \*\*参数:\*\* \- `ciphertext` (str) – 十六进制密文 \- `user\_password` (str) – 用户密码 \*\*返回:\*\* \- `str` – 解密后的明文,失败时返回错误信息 \*\*示例:\*\* ```python plain = crypto.decrypt("a1b2c3...", "myPass123") ``` \--- \### `generate\_keys(save\_path=None)` 生成新的随机密钥并保存。 \*\*参数:\*\* \- `save\_path` (str, optional) – 保存路径,默认 `key\_{timestamp}.key` \*\*返回:\*\* \- `str` – 保存的文件路径 \--- \### `print\_keys()` 打印当前密钥信息。 \--- \## 常见问题 \*\*Q:这算法经过审计吗?\*\* A:没有。但我们认为\*\*没有审计 ≠ 不安全\*\*,Dual\_EC\_DRBG 经过审计却是后门。审计只是参考,不是真理。 \*\*Q:为什么不直接用 AES?\*\* A:AES 很好,但它是"标准"算法,有代数结构,Grover 可以加速。我们选择另一条路——\*\*完全随机、无结构、超大空间\*\*。 \*\*Q:如果黑客拿到了 `.key` 文件和密文,但不知道密码呢?\*\* A:那他就只能暴力破解密码。如果密码是 12 位以上强密码,破解时间以年为单位。 \*\*Q:如果黑客同时拿到了 `.key`、密文、密码呢?\*\* A:那你的系统已经不属于"加密被攻破",而是"钥匙被偷"——这是端侧安全问题,任何加密算法都防不住。 \*\*Q:这算法有数学证明吗?\*\* A:有。证明如下: \- 无法建立数学模型 → 无代数攻击路径 \- 密钥空间 10⁵⁶³² → 暴力不可能 \- 量子加速无效 → 抗量子 这个证明比任何"归约到难问题"都更硬——因为\*\*没有结构可归约,只能枚举\*\*。 \*\*Q:看起来好初级,真能用?\*\* A:初级和安全没有半毛钱关系。你长得好看能挡子弹吗?能破就是能破,不能破就是不能破。\*\*你破一个试试?\*\* \--- \## 项目结构 ``` chaoscrypt/ ├── chaoscrypt.py # 主程序(加密/解密/密钥管理) ├── README.md # 本文档 └── SECURITY.md # 安全说明文档 ``` 就这么三个文件,不藏任何东西,不依赖任何库。 \--- \## 免责声明 > \*\*本系统仅供学习研究使用。\*\* > 作者不承担因密钥文件泄露、密码失窃、端侧入侵等导致的任何数据损失责任。 > 生产环境请确保 `.key` 文件和用户密码均安全存储,并考虑强制用户使用强密码策略。 \--- \## 📜 许可证 MIT License — 你可以自由使用、修改、分发,但请保留原作者声明。 \--- \## 🙏 致谢 感谢所有认真看完这份文档的人。 你是极少数愿意\*\*用逻辑判断安全,而不是用头衔判断安全\*\*的人。 \--- \*\*"安全应该由攻击难度定义,而不是由某个机构盖章定义。"\*\* —— ChaosCrypt 设计哲学 \--- \*\*Happy Encrypting! 🔐\*\*