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, 侧信道攻击, 功耗分析, 大语言模型代理, 密码学, 手动系统调用, 无后门, 硬件安全, 逆向工具