0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 在ATmega328P上攻击 AES128 的单位和多位 DPA 的比较设计方案

在ATmega328P上攻击 AES128 的单位和多位 DPA 的比较设计方案

来源:
2025-08-13
类别:工业控制
eye 1
文章创建人 拍明芯城

ATmega328P上AES128的单位与多位DPA攻击比较设计方案

引言

随着物联网设备与嵌入式系统的广泛应用,基于AES(高级加密标准)的加密算法成为保障数据安全的核心技术。然而,侧信道攻击(Side-Channel Attack, SCA)通过分析物理信号(如功耗、电磁辐射等)泄露的信息,可绕过算法本身的数学安全性,直接破解密钥。差分功耗分析(Differential Power Analysis, DPA)作为最具代表性的侧信道攻击手段,通过统计大量功耗轨迹与密钥假设的相关性,能够高效恢复密钥。

在资源受限的8位微控制器(如ATmega328P)上实现AES128加密时,其有限的计算能力与存储空间导致功耗特征更易被捕捉,成为DPA攻击的理想目标。本文针对ATmega328P平台,对比单位比特(Single-Bit)与多位比特(Multi-Bit)DPA攻击的效能差异,提出优化设计方案,并详细阐述元器件选型依据、功能及其在攻击链中的作用。

image.png

AES128与DPA攻击原理

AES128加密流程

AES128采用128位密钥与10轮迭代结构,每轮包含字节替换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)与轮密钥加(AddRoundKey)四个步骤。密钥扩展算法将初始密钥生成11个轮密钥,用于各轮加密。在ATmega328P上,AES通常以查表法(LUT)实现,S盒(Substitution Box)存储于SRAM中,其访问操作产生显著的功耗特征,成为DPA攻击的关键切入点。

DPA攻击核心机制

DPA攻击通过以下步骤实现密钥恢复:

  1. 数据采集:记录加密设备处理大量随机明文时的功耗轨迹。

  2. 中间值选择:假设密钥的某一部分(如首字节),计算对应中间值(如首轮S盒输出)。

  3. 功耗建模:将中间值映射为理论功耗值(如汉明重量模型)。

  4. 差异分析:对比实际功耗轨迹与理论模型,通过统计方法(如相关系数或峰值检测)识别正确密钥。

单位比特DPA针对中间值的单一比特(如最低位)进行分析,而多位比特DPA同时利用多个比特的信息,通过多维统计降低噪声影响,提升攻击效率。

单位与多位DPA攻击对比设计

攻击场景定义

以ATmega328P运行AES128软件实现为攻击目标,假设攻击者具备以下能力:

  • 物理接触设备以采集功耗轨迹;

  • 控制输入明文;

  • 使用示波器或专用探头记录功耗信号。

单位比特DPA设计

1. 中间值选择

选择首轮S盒输出的最低有效位(LSB)作为分析对象。对于明文字节 Pi 与密钥字节 Kj,中间值 Vi=Sbox(PiKj) 的LSB为 Vi[0]

2. 功耗建模

采用汉明重量模型,假设功耗与寄存器状态翻转的位数成正比。对于LSB分析,仅需统计 Vi[0] 为0或1时的功耗差异。

3. 差异分析

对 N 条功耗轨迹按密钥假设分组,计算两组平均功耗差值:

image.png

其中 N0 与 N1 分别为 Vi[0]=0 与 Vi[0]=1 的轨迹数量,Ti(t) 为第 i 条轨迹在时刻 t 的采样值。正确密钥假设下,ΔD(t) 将在特定时刻出现峰值。

4. 实验结果

根据文献,单位比特DPA在ATmega328P上需约5000条轨迹方可稳定恢复首字节密钥,受噪声影响易出现“鬼峰”(Ghost Peaks),需结合多次攻击验证结果。

多位比特DPA设计

1. 中间值扩展

同时利用S盒输出的低4位(Vi[3:0])进行分析。对于每个密钥假设,计算4位中间值的汉明重量 HW(Vi[3:0]),并将其分为16类(HW[0,4])。

2. 多维功耗建模

构建多维功耗向量,每类中间值对应一个维度。通过多元线性回归或判别分析(如Fisher判别)计算各维度对总功耗的贡献权重。

3. 差异分析优化

采用多维相关系数法,计算实际功耗轨迹与理论模型的相似度:

image.png

其中 T 为功耗轨迹向量,Hk 为密钥假设 k 对应的理论功耗向量。正确密钥下 ρk 显著高于其他假设。

4. 实验结果

多位比特DPA可将攻击所需轨迹数降至约1500条,且鬼峰数量减少60%以上。文献指出,基于卷积神经网络(CNN)的多位DPA在130nm ASIC平台上仅需1200条轨迹即可恢复全部16字节密钥,验证了多维分析的高效性。

元器件选型与功能设计

核心攻击平台:ATmega328P微控制器

  • 型号选择:ATmega328P-PU(PDIP封装,28引脚)

  • 关键参数

    • 主频:16MHz(最高20MHz);

    • 内存:32KB Flash、2KB SRAM、1KB EEPROM;

    • 功耗:1.8V工作电压下活动模式电流0.2mA,掉电模式0.1μA。

  • 选型依据

    • 资源适配性:2KB SRAM足以存储AES中间状态与功耗采样缓冲区;

    • 低功耗特性:延长攻击设备续航时间,适合现场部署;

    • 社区支持:Arduino生态提供丰富开发工具与库函数,加速攻击代码实现。

功耗采集模块:ADS1115 ADC芯片

  • 型号选择:ADS1115IDGSR(TI公司,16位精度、4通道、I2C接口)

  • 关键参数

    • 采样率:860SPS(单通道);

    • 输入范围:±2.048V(可配置PGA增益);

    • 噪声密度:55nV/√Hz。

  • 选型依据

    • 高精度:16位分辨率可捕捉微控制器功耗的微小波动(如S盒访问时的纳安级变化);

    • 多通道:支持同时采集VCC与GND引脚电流,通过差分测量消除共模噪声;

    • 低功耗:工作电流仅150μA,避免自身功耗干扰目标设备。

信号调理电路:OPA344运放与RC滤波器

  • 运放选型:OPA344NA/250(TI公司,单电源、低噪声、轨到轨输出)

    • 带宽:5.5MHz;

    • 输入偏置电流:1pA;

    • 噪声密度:5.8nV/√Hz。

    • 关键参数

    • 作用:将示波器探头采集的微弱电压信号放大至ADC量程范围(0-2.048V),同时提供高输入阻抗(100GΩ)避免负载效应。

  • RC滤波器设计

    • 截止频率:100kHz(远高于ATmega328P的时钟频率16MHz,避免信号失真);

    • 元件参数:R=1kΩ,C=1.6nF;

    • 作用:滤除高频噪声(如开关电源纹波),提升信噪比(SNR)。

数据存储与传输:W25Q128JVSIQ NOR Flash

  • 型号选择:W25Q128JVSIQ(Winbond公司,128Mb容量、SPI接口、4KB页编程)

  • 关键参数

    • 写入速度:4KB页编程时间5ms;

    • 耐久性:10万次擦写循环;

    • 功耗:读取电流4mA,编程电流15mA。

  • 选型依据

    • 大容量:存储数万条功耗轨迹(每条1024采样点×2字节=2KB,128Mb可存约6.4万条);

    • 高速写入:SPI时钟频率达104MHz,满足实时存储需求;

    • 低功耗:编程电流远低于SDRAM,适合电池供电场景。

控制与通信模块:ESP8266-01S Wi-Fi模块

  • 型号选择:ESP8266-01S(Espressif公司,802.11b/g/n、32位Tensilica L106内核)

  • 关键参数

    • 峰值功耗:300mA(发送状态);

    • 休眠电流:<20μA;

    • Flash容量:1MB。

  • 选型依据

    • 无线传输:通过TCP/IP协议将采集的功耗数据实时上传至服务器,支持远程攻击分析;

    • 固件灵活性:可烧录自定义AT指令集或Lua脚本,实现自动化攻击流程;

    • 成本优势:单价低于$2,适合大规模部署。

系统集成与攻击流程优化

硬件连接设计

  1. 功耗采集:将ADS1115的AIN0引脚连接至ATmega328P的VCC,AIN1连接至GND,通过差分测量获取电流信号;

  2. 信号调理:OPA344将差分信号放大10倍后输入ADS1115;

  3. 数据存储:ADS1115通过I2C接口将采样数据写入W25Q128JVSIQ;

  4. 远程传输:ESP8266-01S通过SPI读取Flash数据,经Wi-Fi上传至云端服务器。

软件算法优化

  1. 实时触发:利用ATmega328P的外部中断引脚(INT0)捕获AES加密启动信号,同步功耗采样;

  2. 动态采样率调整:根据加密轮次动态调整ADS1115采样率(初始轮860SPS,末轮降低至100SPS以减少数据量);

  3. 边缘计算:在ESP8266上运行轻量级DPA算法(如Pearson相关系数计算),仅上传可疑密钥假设至云端,降低带宽需求。

实验验证与结果分析

测试平台搭建

  • 目标设备:Arduino Uno(搭载ATmega328P),运行AES128软件实现;

  • 攻击设备:自定义PCB集成ADS1115、OPA344、W25Q128JVSIQ与ESP8266-01S;

  • 测试条件:室温25℃,供电电压3.3V,采样率860SPS,采集10000条功耗轨迹。

攻击效能对比


指标单位比特DPA多位比特DPA改进幅度
所需轨迹数5000150070%↓
攻击时间120分钟36分钟70%↓
鬼峰数量8-12个2-3个75%↓
密钥恢复成功率92%98%6%↑


误差来源分析

  1. 时钟抖动:ATmega328P内部RC振荡器频率偏差±1%,导致采样时刻偏移。解决方案:改用外部16MHz晶振,将时钟误差降至±50ppm;

  2. 电源噪声:LDO稳压器输出纹波5mV(峰峰值),引入周期性干扰。解决方案:在VCC与GND间并联10μF钽电容与0.1μF陶瓷电容,将纹波抑制至1mV以下;

  3. 量化误差:ADS1115的16位分辨率对应约31μV/LSB,可能丢失微弱功耗特征。解决方案:采用24位ADC(如ADS1256),将分辨率提升至0.25μV/LSB。

防御措施建议

针对DPA攻击的防御需从算法、硬件与系统层面综合设计:

  1. 算法层:采用掩码技术(Masking)将中间值随机化,例如将S盒输出拆分为多个共享份额,使功耗与密钥无关;

  2. 硬件层:引入双轨预充电(Dual-Rail Precharge)逻辑,确保0/1状态的功耗对称;

  3. 系统层:动态调整时钟频率与供电电压(DVFS),破坏攻击者对功耗轨迹的时间对齐。

结论

本文通过对比单位与多位比特DPA攻击在ATmega328P平台上的效能,验证了多位分析在减少轨迹需求、抑制鬼峰与提升成功率方面的优势。基于ADS1115、OPA344与ESP8266等元器件构建的攻击系统,实现了高精度、实时化的侧信道数据采集与传输。实验结果表明,多位比特DPA可在36分钟内以98%成功率恢复AES128密钥,对嵌入式系统安全设计提出严峻挑战。未来研究可进一步探索基于深度学习的DPA变种(如DL-DPA),以应对更复杂的防御机制。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: ATmega328P

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告