ParkWardRR/wbaes-bge-cryptanalysis-framework

GitHub: ParkWardRR/wbaes-bge-cryptanalysis-framework

该框架使用 Go 语言实现 BGE 密码分析算法,通过将白盒 AES 中的非线性编码归约为仿射变换来代数恢复 128 位密钥,供密码学研究和逆向工程使用。

Stars: 0 | Forks: 0

# wbaes-bge-cryptanalysis-framework ![License](https://img.shields.io/badge/license-Blue_Oak-blue.svg) ![Build](https://img.shields.io/badge/build-passing-brightgreen) ![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?logo=go) ![Academic](https://img.shields.io/badge/academic-cryptanalysis-purple) ## 高层概述 白盒 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, 逆向工程