ParkWardRR/wbaes-bge-cryptanalysis-framework
GitHub: ParkWardRR/wbaes-bge-cryptanalysis-framework
该框架使用 Go 语言实现 BGE 密码分析算法,通过将白盒 AES 中的非线性编码归约为仿射变换来代数恢复 128 位密钥,供密码学研究和逆向工程使用。
Stars: 0 | Forks: 0
# wbaes-bge-cryptanalysis-framework




## 高层概述
白盒 AES 算法通过将加密密钥直接嵌入到查找表(T-boxes)网络中来对其进行保护。这可以防止攻击者通过静态分析提取密钥。然而,未采用外部扰动的标准 WBAES 实现容易受到代数攻击。
**BGE 攻击框架**是 Billet、Gilbert 和 Ech-Chatbi 在 2004 年提出的著名密码分析的实用实现。该攻击通过利用标准 AES S-box 和 ShiftRows/MixColumns 操作中存在的固定仿射关系,以代数方式恢复 128 位 AES 密钥。
本仓库提供了一个完全解耦的实现。它不需要特定的模拟器,而是通过 `WBAESTableExtractor` 接口分析抽象的内存跟踪结构来工作。
## 架构
```
graph TD
A[Extracted T-Box Tables] --> B(Phase 1: Non-linear Mapping Recovery)
B --> C(Phase 2: Affine Mapping Reduction)
C --> D(Phase 3: Key Extraction)
D --> E[Recovered 128-bit AES Key]
```
## 科学基础
BGE 攻击分三个主要阶段进行:
1. **非线性映射恢复:** 通过观察第一轮的输入/输出差分来隔离内部状态编码。
2. **仿射映射归约:** 将复杂的非线性编码归约为简单的仿射变换。
3. **密钥提取:** 最终通过逆转仿射层来提取轮密钥,从而揭示底层的 AES S-boxes。
## 功能特性
- **通用接口:** 可以输入从*任何*二进制文件或执行跟踪中提取的表布局。
- **稳健的表解析:** 自动处理内存未对齐和重叠的 T-box 定义。
- **高性能:** 完全并发的 Go pipeline,用于分析庞大的代数空间。
## 用法
有关构建表图的示例,请参阅提供的测试套件(例如 `bge_extract_tables_test.go`)。
## 许可证
本软件基于 [Blue Oak Model License 1.0.0](LICENSE) 提供。
## 概念解析
想象你有一个蒙娜丽莎的拼图,但每一块拼图都被涂上了随机的颜色。你看不到图画,但这些拼图块仍然只能以一种方式拼凑在一起。
**BGE 密码分析**方法在不看颜色的情况下解决这个拼图。首先,它观察拼图块是如何卡在一起的(表之间的数学关系)。通过研究边缘的形状,它会慢慢刮掉假油漆(“非线性编码”)。最后,一旦所有的假油漆都消失了,原图就会显露出来,从而暴露出隐藏在其中的密钥。
标签:EVTX分析, Go, Ruby工具, 云资产清单, 密码分析, 密码学, 密钥提取, 手动系统调用, 日志审计, 白盒AES, 逆向工程