kushagra-dixit24/Side-Channel-Analysis-on-AES-128
GitHub: kushagra-dixit24/Side-Channel-Analysis-on-AES-128
基于 Python 的 AES-128 侧信道分析教学项目,实现了从零开始的加密算法和相关性功耗分析密钥恢复攻击。
Stars: 0 | Forks: 0
# 侧信道分析 🔐
本仓库包含我在 **2026 年夏季于 DRDO 实习** 期间完成的工作。在此期间,我获得了 **硬件安全**、**AES-128 密码学** 以及使用 **相关性功耗分析 (CPA)** 进行 **侧信道分析 (SCA)** 的实践经验。
此次实习的主要目标是深入理解 AES 的理论基础,从零开始实现该算法,并执行实际的侧信道攻击,以从功耗轨迹中恢复密钥。
## 📚 目录
本仓库目前包含:
- 🔹 **从零实现的 AES-128**
- 使用 Python 完整实现了 AES-128 加密算法。
- 包含 Key Expansion、SubBytes、ShiftRows、MixColumns 和 AddRoundKey。
- 🔹 **在模拟数据集上的相关性功耗分析 (CPA)**
- CPA 的基础实现,旨在理解该攻击方法论。
- 演示了使用汉明重量泄漏模型进行密钥恢复。
- 🔹 **在真实数据集上的 CPA**
- 在从 AES 执行过程中收集的真实功耗轨迹上实际应用 CPA。
- 使用 Pearson Correlation 来恢复密钥。
- 🔹 **多线程 CPA**
- 能够使用多线程恢复全部 16 个 AES 密钥字节的优化实现,以提升性能。
## 🎯 涵盖主题
- AES-128 加密
- Key Expansion
- 有限域算术 (GF(2⁸))
- 侧信道分析 (SCA)
- 相关性功耗分析 (CPA)
- 汉明重量泄漏模型
- Pearson Correlation
- 使用多线程进行 Python 优化
## 🛠 使用的技术
- Python
- NumPy
- SciPy
- h5py
- Matplotlib
## ⚠️ 注意
由于保密原因,实习期间使用的原始数据集**未包含**在本仓库中。提供这些实现仅用于教育和研究目的。
## 📖 学习成果
本次实习提供了宝贵的实践经验,包括:
- 理解 AES-128 的内部工作原理。
- 从零开始实现密码学算法。
- 应用侧信道分析技术。
- 使用相关性功耗分析恢复 AES 密钥。
- 使用多线程优化计算密集型攻击。
## 📜 许可证
本仓库旨在用于教育和研究目的。
标签:AES, CPA, Python, 侧信道分析, 密码学, 手动系统调用, 无后门, 硬件安全, 逆向工具