george203/Encryption-Side-Channel-Attack
GitHub: george203/Encryption-Side-Channel-Attack
一个由 LLM agent 驱动的侧信道功耗分析审计工具,能够自动评估掩码 AES-128 实现的泄漏情况并恢复密钥字节。
Stars: 0 | Forks: 0
# 侧信道攻击助手
一个智能化的侧信道审计工具。一个 LLM agent 驱动一组功耗分析工具,以评估掩码 AES-128 实现的泄漏情况、恢复密钥字节,并推荐对策。基于公开的 ASCAD 数据集构建。
## 功能简介
该 agent 加载功耗轨迹,运行信噪比侦察,尝试一阶相关性功耗分析(CPA),并在检测到掩码时升级为二阶攻击。在 ASCAD 固定密钥数据集上,它使用不到 1000 条攻击轨迹通过二阶 CPA 以排名第一(rank 1)恢复了密钥字节 2(0xE0)。每次运行都会生成一份记录 agent 推理过程和工具调用的 Markdown 日志,以及一份包含严重性评级和具体对策的审计报告。
## 环境配置
要求 Python 3.10+。
```
python3 -m venv .venv
source .venv/bin/activate
pip install h5py numpy scipy matplotlib anthropic
```
从 https://github.com/ANSSI-FR/ASCAD 下载 ASCAD v1 固定密钥数据集(ATMega8515),并将文件放置在 `data/ASCAD.h5`。
在仓库根目录下的 `.env` 文件中填入 Anthropic API key:
```
ANTHROPIC_API_KEY=sk-ant-...
```
`run_session.py` 会自动加载它。
## 运行方式
运行 agent:
```
python3 agent/run_session.py data/ASCAD.h5
```
默认模型是 `claude-sonnet-4-6`。如需更高强度的运行:
```
python3 agent/run_session.py data/ASCAD.h5 --model claude-opus-4-7
```
运行非 agent 基线作为真实值校验:
```
python3 baseline/manual_cpa.py data/ASCAD.h5 --plot
```
每个 agent 会话都会将日志写入 `logs/session_.md`。
## 架构
测试框架(`agent/run_session.py`)在工具调用循环中运行 Claude API,将工具调用分发给 `tools/` 中的 Python 函数,并记录会话。该 agent 遵循 `agent/system_prompt.md` 中的审计协议:加载、使用 SNR 进行画像分析、跨三种泄漏模型尝试一阶 CPA、检测掩码、升级为二阶 CPA、验证恢复结果并撰写报告。
| 工具 | 用途 |
|---|---|
| `load_ascad` | 加载轨迹和标签 |
| `compute_snr` | 每个样本的信噪比 |
| `select_poi` | 兴趣点选择(snr, sost, ttest) |
| `select_mask_poi` | 定位掩码泄漏的位置 |
| `run_cpa` | 一阶 CPA(hw_sbox, id_sbox, hd 模型) |
| `run_cpa_2nd` | 二阶 CPA |
| `run_template` | 高斯模板攻击 |
| `compute_guessing_entropy` | 排名与猜测熵曲线 |
## 示例会话
`logs/` 中包含两个记录详细的运行日志:
- `session_20260528_144025.md`:仅使用一阶工具。该 agent 根据 SNR 画像诊断出掩码,并报告该实现能够抵御一阶攻击者。
- `session_20260602_183118.md`:完整 pipeline。该 agent 检测到掩码,定位掩码泄漏,升级为二阶 CPA,并以排名第一(rank 1)恢复了密钥字节 2(0xE0),评级为 CRITICAL。
## 数据集说明
ASCAD v1 固定密钥是一个一阶布尔掩码 AES-128 实现。所有 16 个密钥字节均被掩码处理,且 700 个样本的轨迹窗口与字节 2 的 SubBytes 操作对齐,因此字节 2 是攻击目标。一阶 CPA 使字节 2 保持在随机猜测的基线水平。二阶工具将掩码泄漏与掩码值相结合,从而恢复密钥。
## 目录结构
```
agent/ agent harness and system prompt
tools/ power-analysis tool implementations
baseline/ non-agent CPA for ground truth
logs/ session logs
data/ ASCAD.h5 (not committed)
```
标签:Python, 侧信道攻击, 功耗分析, 大语言模型代理, 密码学, 手动系统调用, 无后门, 硬件安全, 逆向工具