bg28gh/side-channel-analysis-attacks
GitHub: bg28gh/side-channel-analysis-attacks
基于Python实现的侧信道功耗分析工具,通过DPA和CPA统计方法从功耗轨迹中恢复AES密钥。
Stars: 0 | Forks: 0
# 侧信道分析:DPA 与 CPA 攻击 🛡️⚡
本仓库包含两个针对密码系统**侧信道攻击 (SCA)** 的详细实现。该项目旨在利用统计方法从功耗轨迹中恢复密钥。
## 🚀 项目概述
侧信道攻击利用算法物理实现中泄露的信息,而非算法本身的弱点。在本项目中,我实现了两种最强大的功耗分析技术:
* **DPA (差分功耗分析)**
* **CPA (相关性功耗分析)**
## 🧠 实现
### 1. CPA 攻击 (相关性功耗分析)
使用 **Pearson 相关系数** 建立功耗模型 (汉明重量) 与实际功耗轨迹之间的关系。
* **方法论:** 对每个密钥字节的 256 种可能值进行假设检验。
* **工具:** 使用 `NumPy` 进行矩阵运算,使用 `SciPy` 进行统计相关性分析。
* **关键特性:** 通过相关性峰值隔离正确假设,在噪声环境中具有很高的效率。
### 2. DPA 攻击 (差分功耗分析)
利用统计差异泄露信息。通过根据中间位的值对轨迹进行划分,当“均值差”显示出显著尖峰时,即可揭示密钥。
* **方法论:** 实现选择函数和位级划分。
* **信号处理:** 应用 **高斯滤波器** (`gaussian_filter1d`) 和 **中值滤波器** (`medfilt`) 来清理功耗轨迹并提高信噪比。
## 🛠️ 技术栈
* **语言:** Python 3
* **库:** * `NumPy`:用于高性能数组操作。
* `Matplotlib`:用于可视化功耗轨迹和相关性结果。
* `SciPy`:用于统计分析和信号处理。
* `Cryptography`:用于处理 AES 原语和密文验证。
## 📁 仓库结构
* `CPA_Notebook.ipynb`:相关性功耗分析的详细演示与实现。
* `DPA_notebook.ipynb`:差分功耗分析的分步实现。
*作为 TU Berlin 硬件安全课程的一部分开发。*
标签:AES, NoSQL, NumPy, Python, SciPy, 云资产清单, 侧信道攻击, 信号处理, 密码学, 密钥恢复, 差分功率分析, 手动系统调用, 无后门, 汉明重量, 相关功率分析, 硬件安全, 网络安全, 能量分析, 逆向工具, 逆向工程, 隐私保护