ARauf4U/Power-Analysis-in-side-channel-attack
GitHub: ARauf4U/Power-Analysis-in-side-channel-attack
一个基于 Python 的侧信道功耗分析模拟器,通过 Web 界面交互式演示 SPA、DPA 和 CPA 攻击过程,帮助用户直观理解密码学硬件泄漏原理。
Stars: 0 | Forks: 0
# 侧信道攻击中的功耗分析
Power-SCA:侧信道功耗分析模拟器。一个基于 Python 的模拟环境,用于演示和分析简单功耗分析 (SPA) 与差分功耗分析 (DPA)。本项目提供了密码学理论与硬件泄漏实际情况之间的可视化桥梁,并配备了一个用于交互式实验的 Web 界面。
这是一个综合性的 GitHub `README.md` 模板,适用于模拟功耗分析(侧信道攻击)的项目。它采用了简洁、专业的结构,非常适合用于个人作品集或学术提交。
# 🛡️ Power-SCA:侧信道功耗分析模拟器
一个基于 Python 的模拟环境,用于演示和分析**简单功耗分析 (SPA)** 与**差分功耗分析 (DPA)**。本项目提供了密码学理论与硬件泄漏实际情况之间的可视化桥梁,并配备了一个用于交互式实验的 Web 界面。
## 📖 概述
侧信道攻击 (SCA) 利用硬件在执行加密操作期间泄漏的物理信息。本项目模拟了设备执行加密算法(例如 AES-128)时的功耗情况,并提供了使用统计分析来恢复密钥的工具。
### 主要特性
* **泄漏建模:** 实现了 **Hamming Weight**(汉明权重)和 **Hamming Distance**(汉明距离)功耗模型。
* **可视化分析:** 使用 **Matplotlib** 进行实时功耗轨迹绘制。
* **统计攻击:** 支持相关性功耗分析 (CPA),用于从噪声中分离出子密钥。
* **Web 仪表板:** 提供了一个 **HTML/CSS/JS** 界面,用于调整模拟参数(噪声级别、轨迹数量等),无需修改代码。
## 使用的技术
| 组件 | 技术 | 用途 |
| :--- | :--- | :--- |
| **后端** | Python 3.x | 核心逻辑、AES 模拟和统计分析。 |
| **数据可视化** | Matplotlib / Seaborn | 生成功耗轨迹图和相关性热力图。 |
| **前端** | HTML5, CSS3, JS | 用于模拟控制的交互式仪表板。 |
| **API/Web** | Flask / FastAPI | 将 Python 模拟引擎连接到 Web UI。 |
| **数学计算** | NumPy | 高性能的轨迹处理和相关性计算。 |
## 🛠️ 系统架构
本项目分为三个主要模块:
1. **目标模块:** 一个模拟的密码核心,根据密钥和输入数据“泄漏”功耗轨迹。
2. **分析器:** 一个统计引擎,对收集到的轨迹执行 Pearson 相关性计算,以识别最可能的密钥候选。
3. **界面:** 一个响应式的 Web UI,用于可视化“机器中的幽灵”。
## 模拟模型
为了使模拟更加真实,本项目考虑了以下因素:
* **信噪比 (SNR):** 用户可以注入高斯噪声,以观察需要增加多少轨迹才能成功实施攻击。
* **幽灵峰值:** 可视化功耗轨迹中发生 S-Box 替换的确切时刻。
### 差分功耗分析 (DPA)
通过对特定位为 '0' 和 '1' 的轨迹进行平均,我们可以看到明显的“差分”尖峰,从而揭示该密钥位。
## ⚙️ 安装与使用说明
### 1. 克隆仓库
```
git clone https://github.com/yourusername/power-sca-sim.git
cd power-sca-sim
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 运行模拟
```
python app.py
```
*访问 `http://localhost:5000` 以进入 Web 界面。*
## 示例结果
| 攻击类型 | 所需轨迹数 | 准确率 |
| :--- | :--- | :--- |
| 简单功耗分析 (SPA) | 1-5 | 低(需要目视检查) |
| 相关性功耗分析 (CPA) | 50 - 500 | 高(自动化) |
贡献
欢迎贡献!如果您想添加对 **RSA** 或 **电磁 (EM)** 泄漏模型的支持,请提交 issue 或发起 pull request。
## 许可证
基于 MIT 许可证分发。有关更多信息,请参见 `LICENSE`。
免责声明:本项目仅供教育目的。旨在帮助开发者理解硬件漏洞,从而构建更安全、抗侧信道攻击的实现方案。
标签:AES-128, CPA, DPA, HTML/CSS/JS, Matplotlib, meg, Python, Seaborn, SPA, Web可视化, 仿真环境, 侧信道攻击, 信息安全, 功耗分析, 后端开发, 密码学, 密钥恢复, 差分功耗分析, 手动系统调用, 教学工具, 数据可视化, 无后门, 汉明距离, 汉明重量, 泄露模型, 相关性功耗分析, 硬件安全, 简单功耗分析, 统计分析, 网络安全, 逆向工具, 隐私保护