Noorulhassan101/Ascon128-DeepLearning-SCA
GitHub: Noorulhassan101/Ascon128-DeepLearning-SCA
基于深度学习(CNN)的ASCON-128侧信道分析端到端框架,通过模拟功耗泄漏实现密钥恢复攻击。
Stars: 1 | Forks: 0
# 🛡️ 基于 Deep Learning 的 ASCON-128 侧信道分析 (SCA)




针对 **ASCON-128** 轻量级认证加密算法执行侧信道分析的端到端实战框架。本项目模拟了功耗泄漏,并利用 **Convolutional Neural Networks (CNNs)** 执行模板密钥恢复攻击。
## 🚀 概述
本代码库包含 **CS-360 Cyber Security Lab 11** 的完整工作流。它演示了如何利用现代 Deep Learning 技术,通过利用设备的物理泄漏(通过 Hamming Weight 模拟)来恢复密钥。
### 🔑 关键阶段
1. **算法实现**:基于 C 语言的 ASCON-128 实现,针对 ARM Cortex-M3 进行了优化。
2. **迹线模拟**:使用物理泄漏模型生成含噪功耗迹线。
3. **Deep Learning 攻击**:训练 1D-CNN 对秘密中间值进行分类。
4. **密钥恢复**:执行排序分析以提取密钥。
## 📂 项目结构
```
lab11_ascon/
├── phase1_report/ # ASCON-128 study & theoretical analysis
├── src/ # ASCON-128 C source code & Makefile
├── traces/ # Trace simulation scripts & HDF5 datasets
├── attacks/ # CNN models, utils, and attack scripts
├── results/ # Training curves, key ranks, and screenshots
├── models/ # Trained .h5 model files
└── README.md # Project documentation
```
## 🛠️ 前置条件
请确保已安装以下内容:
* **Python 3.8+**
* **GCC**(用于本地测试)
* **ARM GCC Toolchain**(可选,用于编译 `ascon128.elf`)
* **Python 库**:`numpy`、`h5py`、`matplotlib`、`tensorflow`
安装依赖项:
```
pip install numpy h5py matplotlib tensorflow
```
## 🏃 运行说明
### 步骤 1:编译算法
```
cd src
gcc ascon128.c test_vectors.c -o ascon_test
./ascon_test
cd ..
```
### 步骤 2:生成功耗迹线
```
python traces/generate_traces.py
```
*生成包含各 6,000 条迹线的 `fixed_key.h5` 和 `variable_key.h5` 数据集。*
### 步骤 3:训练与攻击
```
cd attacks
python attack_fixed_key.py
python attack_variable_key.py
```
### 步骤 4:密钥排序分析
```
python key_rank_plot.py
```
## 📊 方法与结果
### 侧信道泄漏
我们将目标对准了加密第一轮中的 **S-box 替换层**。功耗使用中间状态的 **Hamming Weight (HW)** 进行建模:
$$P_{total} \propto HW(State_{intermediate}) + Noise$$
### CNN 架构
我们使用了一维 Convolutional Neural Network (1D-CNN),旨在处理功耗迹线中的噪声和不对齐问题:
* **Conv1D 层**:用于自动提取特征。
* **BatchNormalization**:用于确保训练稳定性。
* **Softmax 输出**:预测每个 HW 类别(0-8)的概率。
### 结果
模型在 **约 450 条迹线** 内成功恢复了密钥字节(0x00),相较于随机猜测基线,准确率获得了显著提升。
## 📝 报告
* [阶段 1:ASCON 研究报告](phase1_report/ascon_study_report.md)
* [期末:Lab 11 项目报告](final_report/lab11_report.md)
## 🎓 致谢
为 **CS-360 Cyber Security Lab 11: Side-Channel Analysis** 开发。
标签:Apex, ARM Cortex-M3, ASCON-128, CNN, TensorFlow, 人工智能, 侧信道分析, 功耗分析, 反取证, 安全评估, 密码分析, 密码学, 密钥恢复, 嵌入式安全, 手动系统调用, 机器学习, 汉明重量, 深度学习, 用户模式Hook绕过, 端到端框架, 网络安全实验, 轻量级认证加密, 逆向工具