kunalofficial687/Correlation-Power-Analysis

GitHub: kunalofficial687/Correlation-Power-Analysis

基于汉明重量功耗模型的AES-128侧信道攻击演示工具,通过Pearson相关性分析从功耗迹中逐字节提取密钥。

Stars: 0 | Forks: 0

# Correlation-Power-Analysis 本仓库演示了针对无掩码 AES-128 实现的选择明文侧信道攻击。该项目展示了如何利用汉明重量功耗模型,将硬件 S-Box 操作期间泄露的微小功耗波动进行关联,从而破解密钥。 AES-128 相关功耗分析 (CPA) 攻击本仓库包含基于 Python 实现的相关功耗分析 (CPA) 攻击。这是一种侧信道攻击,旨在通过分析硬件设备(如 FPGA 或微控制器)在加密过程中的物理功耗,从中提取秘密密钥。 📖 概述: 标准数字安全假设攻击者只能访问输入和输出。然而,物理硬件会通过功耗、电磁辐射和时间等“侧信道”泄露信息。本项目演示了选择明文攻击如何利用 Pearson 相关系数将数学功耗模型(汉明重量)与现实世界的功耗测量值进行关联,从而绕过 AES-128 的安全防护。 🚀 工作原理: 攻击遵循以下逻辑步骤: 数据采集:我们收集设备加密已知明文时的功耗迹 ($t_i$)。 功耗建模:我们使用汉明重量模型来预测第一个 S-Box 操作期间的功耗。 假设检验:我们计算每个可能的密钥字节值(0–255)的预测功耗。 统计分析:我们使用 Pearson 相关系数 ($\rho$) 将我们的预测 ($h_i$) 与测量的迹 ($t_i$) 进行比较。 密钥提取:产生最高相关性(“峰值”)的密钥猜测即为正确的秘密密钥。 📊 结果: 当攻击成功时,结果图会显示正确密钥与 255 个错误猜测之间的明显区别。该峰值指示了秘密数据从硬件泄露的确切时刻。 正确密钥:被识别为 0xab (十进制: 171)。 相关性裕度:一个明显高于背景噪声的独特峰值。 🛠️ 安装与设置前置条件: Python 3.xVS Code(推荐)或任何 Python IDE依赖项通过 pip 安装所需的数学和绘图库:Bashpip install numpy matplotlib 仓库结构cpa_attack.py:主 Python 脚本执行逻辑。plaintext.csv:加密模拟期间使用的输入数据。traces.csv:记录的功耗迹。 💻 使用方法: 克隆仓库: Bashgit clone [https://github.com/YOUR_USERNAME/AES-128-CPA-Attack.git](https://github.com/kunalofficial687/Correlation-Power-Analysis.git) 导航到项目文件夹:Bashcd AES-128-CPA-Attack 运行攻击:Bashpython cpa_attack.py 🛡️ 对策 本项目强调了硬件安全的重要性。为了防止此类攻击,开发者实施了: 掩码:向中间数据添加随机值。 隐藏:向功耗添加噪声或随机延迟以平滑峰值。
标签:AES-128, chosen-plaintext, CPA, FPGA, meg, Python, S-Box, 侧信道攻击, 信息安全, 密码分析, 密码学, 密钥提取, 嵌入式安全, 差分能量分析, 微控制器, 手动系统调用, 旁路攻击, 无后门, 汉明重量, 相关能量分析, 硬件安全, 能量分析, 逆向工具