Noorulhassan101/Ascon128-DeepLearning-SCA

GitHub: Noorulhassan101/Ascon128-DeepLearning-SCA

基于深度学习(CNN)的ASCON-128侧信道分析端到端框架,通过模拟功耗泄漏实现密钥恢复攻击。

Stars: 1 | Forks: 0

# 🛡️ 基于 Deep Learning 的 ASCON-128 侧信道分析 (SCA) ![ASCON-128](https://img.shields.io/badge/Cipher-ASCON--128-blueviolet?style=for-the-badge) ![Python](https://img.shields.io/badge/Python-3.8+-blue?style=for-the-badge&logo=python) ![TensorFlow](https://img.shields.io/badge/TensorFlow-2.x-orange?style=for-the-badge&logo=tensorflow) ![License](https://img.shields.io/badge/Security-Lab%20Project-red?style=for-the-badge) 针对 **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绕过, 端到端框架, 网络安全实验, 轻量级认证加密, 逆向工具