功耗分析防护

wen IT资讯 25

本文目录导读:

功耗分析防护

  1. 硬件层面防护
  2. 算法/代码层面防护
  3. 工程实践中的典型方案对比
  4. 验证方法(防护有效性问题)

针对功耗分析 (Power Analysis) 的防护是硬件安全(特别是密码学实现、智能卡、物联网设备)中的核心课题,功耗分析主要分为两类:简单功耗分析 (SPA)差分功耗分析 (DPA),防护策略需要同时对抗这两种攻击。

以下是系统性的防护方法,按硬件层面算法/代码层面分类:

硬件层面防护

硬件防护旨在从物理上减少功耗与数据/操作之间的相关性。

  1. 低功耗与恒定功耗逻辑

    • 互补 CMOS 逻辑:设计传统CMOS时,功耗与数据翻转率相关,需要采用特殊的逻辑风格。
    • 差异功耗逻辑:如 SABL (Sense Amplifier Based Logic)WDDL (Wave Dynamic Differential Logic),这些逻辑保证在每一个时钟周期,电路中的所有节点都产生一次翻转(无论输入数据是0还是1),从而强制功耗恒定,代价是功耗和面积显著增加(约2-4倍)。
  2. 电源与衬底噪声注入

    在电源网络(VDD/VSS)中引入可控的随机噪声或高频时钟抖动,使真实信号的功耗淹没在噪声中,这会大幅提高攻击者需要采集的样本量(即提高了DPA的攻击复杂度)。

  3. 去耦电容

    在芯片的电源引脚附近放置大量的片上去耦电容,这些电容储存电荷,能瞬间提供芯片所需的电流尖峰,从而平滑掉由数据处理引起的局部功耗波动。

  4. 双轨/预充电逻辑

    • 使用差分信号线(如Q和/Q)。
    • 在预充电阶段,所有差分线都充电到相同电平。
    • 在求值阶段,只有一根线放电,无论数据如何,放电的总电流量是固定的,实现了逻辑层面的数据无关功耗。
  5. 掩蔽

    使用随机掩码对中间值进行异或或乘法,硬件运算单元(如乘法器)在掩码下工作,使实际计算的数据与真实数据的关联性被隐藏。

算法/代码层面防护

软件防护更为灵活,适用于嵌入式CPU、ARM、RISC-V等通用处理器。

  1. 平衡操作(对抗 SPA)

    • 条件分支恒定时间:避免“if(bit)==1 then A else B”这种时间或功耗不均的代码,将分支改为始终执行两边的操作,然后通过掩码选择结果。
    • 幂指数运算:在RSA、ECC中,采用蒙哥马利阶梯 (Montgomery Ladder)点乘统一公式 (Unified Point Addition),确保每一次循环执行的操作一致(始终是加法和倍点),而与密钥位无关。
  2. 掩码技术(对抗 DPA)

    • 布尔掩码:将敏感值 X 分割为 X_mM,满足 X = X_m XOR M,计算时,操作数都被掩码覆盖,中间结果也是随机的。
    • 乘法掩码:用于乘法运算(如AES MixColumns)。
    • 高阶掩码 (High-Order Masking):用多个随机掩码(n个)分割一个变量,攻击者需要攻破n+1阶才能恢复,但实现复杂度指数级上升。
    • 重组掩码 (Mask Refreshing):在每次运算后,重新生成新的掩码,防止掩码被追踪。
  3. 随机延迟/伪装操作

    在循环中插入随机的等待周期或NOP指令(无操作指令),打乱攻击者对齐功耗迹线的能力,从而干扰DPA的统计学分析,但在高分辨率采样下效果有限。

  4. 隐藏 (Hiding) 技术

    • 功耗随机化:随机插入与输出无关的短路电流。
    • 频率调制:动态调整时钟频率,使功耗采样点不规则。

工程实践中的典型方案对比

防护类型 核心原理 优点 缺点 典型应用
恒定逻辑 逻辑门/寄存器每个周期翻转 理论上绝对抵抗SPA/DPA 面积功耗极大,设计复杂 高端智能卡、军事级安全芯片
掩码 使用随机数掩盖中间值 灵活,可实现高安全等级 需设计复杂的代数运算逻辑,可能引入组合逻辑泄漏 AES、SHA-3软件实现
平衡编程 无条件分支,执行路径一致 实现简单,对CPU开销低 仅抵抗SPA,对DPA效果一般 低端MCU上的RSA/ECC
噪声注入 增加无关功耗 兼容现有设计,改造成本低 只能提高攻击成本,无法根本消除 普通物联网安全芯片

验证方法(防护有效性问题)

即使采用了上述措施,仍需进行侧信道攻击的验证性测试,因为现实世界中的泄漏可能比理论模型更复杂:

  1. TVLA (Test Vector Leakage Assessment):通常使用Welch’s t-test,固定随机对照注入,分析功耗迹线是否显示出与数据相关的统计差异,如果t-statistic绝对值在任何点超过4.5/6.0(通常4.5为警告,6.0为失败),说明存在显著泄漏,防护不足。
  2. 实战攻防演练:用已知的DPA工具(如ChipWhisperer、NewAE Technology的CW305平台等)进行实际攻击,统计需要的样本量(通常需要百万级以上的迹线才算有一定安全裕度)。

要有效防护功耗分析,单一技术往往不够,一个健壮的系统通常采用分层防护策略 (Defense in Depth)

  • 硬件底层:使用双轨预充电逻辑掩蔽
  • 软件/算法层:使用恒定时间算法 + 随机掩码 + 随机延迟
  • 物理层:在电源网络上引入噪声,并优化对地回路,防止电磁泄漏。

最终目标是:使攻击者提取到单次密钥所需的功耗迹线样本数量 > 设备的使用寿命周期(需要采集100亿条迹线,而设备在正常寿命内只会产生100万次加密操作)。

抱歉,评论功能暂时关闭!