Skip to main content
QUICK REVIEW

[论文解读] Power-Based Side-Channel Attack for AES Key Extraction on the ATMega328 Microcontroller

Utsav Banerjee, Lisa Ho|arXiv (Cornell University)|Mar 13, 2022
Cryptographic Implementations and Security被引用 10
一句话总结

本文展示了一种实用的基于功耗的侧信道攻击,能够从Arduino Uno主板中使用的ATMega328微控制器中提取128位AES-128密钥。通过测量加密过程中的功耗,并对数百条功耗轨迹应用相关性功耗分析(CPA),作者在不到3小时内成功恢复了密钥,使用了400至600条平均后的轨迹,具体数量取决于密钥的随机性。

ABSTRACT

We demonstrate the extraction of an AES secret key from flash memory on the ATMega328 microcontroller (the microcontroller used on the popular Arduino Genuino/Uno board). We loaded a standard AVR-architecture AES-128 implementation onto the chip and encrypted randomly chosen plaintexts with several different keys. We measured the chip's power consumption during encryption, correlated observed power consumption with the expected power consumption of the plaintexts with every possible key, and ultimately extracted the 128-bit key used during AES. We describe here our test infrastructure for automated power trace collection, an overview of our correlation attack, sanitization of the traces and stumbling blocks encountered during data collection and analysis, and results of our attack.

研究动机与目标

  • 展示一种针对广泛使用的嵌入式设备(ATMega328)的可行侧信道攻击,利用功耗分析。
  • 评估相关性功耗分析(CPA)在从资源受限的微控制器上软件实现的加密中提取AES密钥方面的有效性。
  • 识别并克服在侧信道攻击过程中轨迹采集、同步和噪声抑制方面的实际挑战。
  • 通过多个密钥(包括一个非随机测试密钥)验证攻击,评估恢复时间的变异性。
  • 提供开源工具和基础设施,以实现在嵌入式系统上可复现的侧信道分析。

提出的方法

  • 使用数字示波器通过I/O引脚上的硬件信号触发,从ATMega328在AES-128-ECB加密期间收集功耗轨迹。
  • 使用AESLib库的修改版本插入时间标记以实现轨迹同步,模拟在实际环境中此类信号可能不可用的情况。
  • 应用相关性功耗分析(CPA),将观测到的功耗轨迹与基于AES第一轮中XOR和S-Box操作的汉明重量模型的预期功耗进行相关性分析。
  • 在CPA处理前,对每个明文的10条轨迹进行平均,以降低噪声并提高信噪比。
  • 使用Python和MATLAB脚本自动化轨迹采集和处理,数据从示波器捕获的.wfm二进制文件中解析。
  • 通过计算所有256种可能的密钥字节在每个字节位置的预期功耗与观测功耗之间的相关系数,评估密钥恢复,选择相关系数最高的作为密钥猜测。

实验结果

研究问题

  • RQ1相关性功耗分析(CPA)攻击能否成功从ATMega328微控制器上软件实现的AES-128-ECB加密中提取128位AES密钥?
  • RQ2需要多少条功耗轨迹才能可靠地恢复密钥?该数量是否随密钥随机性而变化?
  • RQ3在轨迹采集和同步过程中会出现哪些实际挑战?在真实攻击场景中如何缓解这些问题?
  • RQ4功耗模型的选择(例如,汉明重量)在该平台上对CPA攻击的成功率有多大影响?
  • RQ5该攻击能否实现自动化并可扩展,以在无显式硬件触发信号的情况下完成轨迹采集?

主要发现

  • 在三次测试运行中,攻击均成功提取了正确的128位AES密钥,包括一次使用非随机密钥的测试。
  • 对于非随机密钥,恢复需要600条平均功耗轨迹;对于一个随机密钥为400条,另一个为300条,表明恢复时间与密钥相关。
  • 在400条轨迹后,正确密钥字节始终被识别为相关系数最高的那个,如随时间变化的相关性图所示。
  • 采集100个明文的数据耗时约30分钟,按比例扩展至500条轨迹时约为2.5小时。
  • 对500条轨迹进行密钥恢复和相关性计算耗时5至10分钟,表明后处理效率较高。
  • 尽管存在噪声和时间偏移错误,攻击仍保持有效,通过轨迹平均和手动时间窗对齐等缓解策略证明有效。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。