功耗分析:SPA 与 DPA
采集功耗轨迹,并执行简单功耗分析和差分功耗分析
功耗分析:SPA 与 DPA 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
什么是功耗分析?
功耗分析测量设备在执行密码运算期间消耗的瞬时电功率。功耗取决于正在处理的数据,因此会泄露秘密密钥位。
简单功耗分析(SPA)
在 SPA 中,攻击者会目视检查单条功耗轨迹。平方—乘法模幂运算会泄露指数:乘法步骤的功耗特征不同于单独平方步骤的功耗特征。
差分功耗分析(DPA)
DPA 使用多条功耗轨迹进行统计分析。攻击者固定单个密钥位假设,根据预测的中间值对轨迹进行分组,并寻找相关性峰值。
汉明重量模型
一个关键假设是:功耗与正在处理的值中 1 位的数量(汉明重量)成正比。这一假设对低频 CMOS 逻辑电路很适用。
相关功耗分析(CPA)
CPA 使用中间值预测汉明重量与每个时间采样点的实测功耗之间的 Pearson 相关性。正确的密钥假设会产生最高的相关性。
实际采集功耗轨迹
研究人员会将电流检测电阻与目标设备串联,并使用示波器或 ChipWhisperer 开发板,以 100 MS/s 或更高的采样率将轨迹数字化。
针对 AES 的 DPA:恢复密钥
针对 AES 的第一轮:对于 256 个密钥字节候选值中的每一个,预测 SubBytes 输出的汉明重量,并与功耗轨迹进行相关分析。正确的字节会以约 0.9 以上的相关性脱颖而出。
高阶 DPA
带掩码的实现会将每个中间值拆分为随机份额。二阶 DPA 使用乘积或绝对差组合函数,结合两个时间点(份额和掩码)。
针对 RSA 平方—乘法运算的 DPA
攻击者可以通过选择消息攻击,在多条功耗轨迹中区分仅平方与先平方后乘的功耗模式,从而恢复 RSA 私钥指数的各个位。
工具与平台
开源 ChipWhisperer 平台提供用于采集、轨迹对齐和 CPA 的硬件与 Python 软件。它开箱即用地支持 AES、RSA 和 ECC 目标设备。
知识检查
在相关功耗分析中,正确的密钥假设与错误假设有何区别?
课程回顾
SPA 通过目视读取单条轨迹;DPA 对多条轨迹使用统计分析。CPA 使用汉明重量模型计算 Pearson 相关性。防护措施包括掩码,以及针对 ECC 使用随机化射影坐标。
常见问题解答
「功耗分析:SPA 与 DPA」课时是免费的吗?
是的 — 「功耗分析:SPA 与 DPA」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「功耗分析:SPA 与 DPA」这节课中我会学到什么?
采集功耗轨迹,并执行简单功耗分析和差分功耗分析 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「功耗分析:SPA 与 DPA」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 时序攻击:从执行时间提取密钥
- 功耗分析:SPA 与 DPA
- 电磁与声学侧信道
- 对策:掩码、盲化与恒定时间代码