Files
ChaosCrypt/README.md
T

14 KiB
Raw Blame History

# 🔐 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 有认证有标准有审计——结果呢?后门。

- 我这个啥都没有——结果呢?**你破不了。**

**能被黑客破解的就是垃圾,破解不了的就是真神。**

这玩意儿你实说,**你找不出来毛病!** 😏🔥

---

## 快速开始

### 安装


\# 克隆仓库

git clone https://gitcode.com/dvsxt/chaoscrypt.git

cd chaoscrypt



\# 无需安装依赖,Python 3.6+ 即可

### 五分钟上手


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

### 命令行交互


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;若不存在则生成。

**示例:**


\# 使用默认密钥

crypto = EncryptionSystem()



\# 使用指定密钥

crypto = EncryptionSystem("my\_key.key")

---

### encrypt(plaintext, user\_password)

加密明文。

**参数:**

- plaintext (str) – 待加密文本

- user\_password (str) – 用户密码

**返回:**

- str – 十六进制密文

**示例:**


cipher = crypto.encrypt("Hello", "myPass123")

---

### decrypt(ciphertext, user\_password)

解密密文。

**参数:**

- ciphertext (str) – 十六进制密文

- user\_password (str) – 用户密码

**返回:**

- str – 解密后的明文,失败时返回错误信息

**示例:**


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! 🔐**