sushantpawar01/Side-Channel-Attack-Analysis-and-Mitigation
GitHub: sushantpawar01/Side-Channel-Attack-Analysis-and-Mitigation
基于FPGA平台演示AES-128的功耗侧信道攻击与一阶布尔掩码防护的完整研究与实验项目。
Stars: 0 | Forks: 0
# 基于 FPGA 的 AES 设计侧信道漏洞分析与缓解
### 项目描述
本项目重点关注硬件加密系统的安全性。尽管 AES-128 算法在数学上是安全的,但其在 FPGA 等硬件上的物理实现可能会通过功耗“泄露”敏感信息。本项目演示了攻击者如何利用相关性功耗分析 (CPA) 通过监测这些功耗波动来恢复密钥。为了解决这一问题,我们使用布尔掩码 设计并实现了一个安全的 AES-128 核心,该技术通过随机化中间数据,确保功耗不再与密钥产生关联,从而有效消除了侧信道威胁。
## 项目概述
* 目标:评估无防护 AES-128 核心对侧信道攻击的易受性,并实现一个安全的基于 Verilog 的掩码 AES 核心。
* 目标平台:ChipWhisperer CW305 (Artix-7 FPGA)。
* 分析工具:ChipWhisperer Husky。
* 防护措施:一阶布尔掩码。
## 关键特性
* 密钥恢复攻击:利用功耗轨迹成功从无防护核心中提取完整的 128 位 AES 密钥。
* 安全实现:带有的一阶布尔掩码 AES-128 的自定义 Verilog 实现,通过随机化中间状态来解除功耗与敏感数据的相关性。
* 对比分析:严格的验证表明,虽然无防护核心泄露了完整密钥,但掩码核心成功抵御了攻击。
## 硬件与软件设置
### 硬件
* ChipWhisperer Husky:用于高速功耗轨迹采集和同步触发。
* CW305 FPGA 目标板:运行 AES-128 Verilog 实现。
* SMA/20-pin 线缆:用于功耗测量和控制信号。
### 软件
* Vivado Design Suite:用于综合、实现和比特流生成。
* Python (Jupyter Notebooks):用于控制 ChipWhisperer 硬件并执行统计 CPA 分析。
* Verilog HDL:用于 AES 核心的硬件设计。
## 项目结构
* aes_core.v:标准的、无防护的 AES-128 数据通路。
* masked_aes.v:包含布尔掩码逻辑的安全 AES 核心。
* cw305_top.v:用于 FPGA 接口的顶层模块。
* Analysis/:包含 CPA 攻击和验证脚本的 Jupyter notebooks。
## 实验结果
| 实现方式 | 攻击类型 | 结果 |
|----------------|-------------|--------|
| 无防护 AES | 一阶 CPA | 完整密钥已恢复 |
| 掩码 AES | 一阶 CPA | 攻击失败 (安全性已验证) |
## 未来展望
* 高阶掩码:实现阈值或多份额方案以抵抗二阶 CPA 攻击。
* TRNG 集成:用真随机数生成器 替代伪随机掩码。
* 多通道分析:评估电磁 (EM) 和时间侧信道。
## 贡献者
* Karamthot Venkatesh
* Sushant
* Vankdoth Sahithi Sree
指导教师:Dr. Vijaypal Singh Rathor
所属机构:ABV-印度信息技术与管理学院 (IIITM),瓜廖尔
标签:AES-128, ChipWhisperer, CPA, FPGA安全, NoSQL, Verilog, Vivado, Xilinx Artix-7, 侧信道攻击, 密码学, 密钥恢复, 嵌入式安全, 布尔掩码, 手动系统调用, 抗DPA设计, 物理层安全, 相关性功耗分析, 硬件安全, 逆向工具