givewgun/enigma
GitHub: givewgun/enigma
Enigma 是一个本地教育用隐写工作台,提供加密归档、编解码及完整性校验功能,帮助用户学习隐写术与密码学的工程实现。
Stars: 0 | Forks: 0
# Enigma
Enigma 是一个本地教育用隐写工作台。0.1 版本提供带有精确恢复的加密 Archive 模式、直接 CLI 以及全屏终端 UI。
Archive 模式保护文件内容,但不会隐藏已加密数据的存在这一事实。Enigma 不作任何不可见性声明。
## 安装
```
uv sync
```
## 终端 UI
```
uv run enigma
```
## 直接命令
```
uv run enigma keygen private.enigma-key
uv run enigma archive encode input.bin output.enigma --topic "ancient astronomy" --key-file private.enigma-key
uv run enigma decode output.enigma recovered.bin --key-file private.enigma-key
uv run enigma verify output.enigma --key-file private.enigma-key
```
如果不使用 `--key-file`,encode、decode 和 verify 将会提示输入掩码处理的 passphrase。Passphrase 刻意不支持作为命令行参数输入。
## 安全性概况
- 使用 Argon2id 派生 passphrase 密钥。
- 使用 Libsodium secretstream XChaCha20-Poly1305 对加密帧进行身份验证。
- 在加密之前进行 Zstandard 压缩。
- Archive 记录可以添加 0、16 或 32 字节的 Reed-Solomon 奇偶校验字节。
- Ollama 仅通过环回 HTTP 接收所选主题。
- 输入和源载体绝不会被修改。
生成的密钥文件包含原始的私钥材料。请妥善保密。`tests/` 下的 golden-vector 密钥是公开的测试数据,不保护任何内容。
## 验证
```
uv run pytest
uv run pytest -m slow
uv run ruff check .
uv run ruff format --check .
uv run mypy
```
Encoding 会解码到临时暂存位置,并在原子化发布最终 archive 之前验证 SHA-256。Decoding 会在发布恢复的输出之前,验证经过身份验证的内容和 SHA-256。
标签:AI风险缓解, DNS 反向解析, Python, 信息隐藏, 加密工具, 安全规则引擎, 密码学, 手动系统调用, 无后门, 终端UI, 逆向工具