095、NPU的侧信道攻击防护:功耗分析与时序攻击去年冬天,我在调试一块自研的NPU芯片时遇到一个诡异现象。板子跑ResNet-50推理,功耗曲线在特定层突然出现一个“尖刺”,持续约3微秒。起初以为是电源纹波,换了三块LDO无果。直到用示波器抓取同一批输入数据反复跑,发现这个尖刺的位置居然和输入图片的类别标签有统计相关性——那一刻后背发凉,这不是硬件bug,是侧信道泄露。从一条功耗曲线说起NPU的功耗分析攻击,本质上是在利用CMOS电路的一个物理特性:动态功耗与翻转的晶体管数量成正比。当NPU执行MAC(乘累加)操作时,输入数据的汉明重量(二进制表示中1的个数)会直接影响内部总线的翻转次数。你喂给NPU一个全0的权重向量和一个全1的权重向量,前者可能只消耗后者60%的功耗。我见过最典型的攻击场景是这样的:攻击者用高精度示波器(采样率至少1GS/s)在NPU的供电引脚上采集功耗轨迹,同时向NPU输入大量已知标签的样本。通过差分功耗分析(DPA),把功耗曲线按某个假设的密钥比特分组,然后计算两组平均功耗的差值。如果假设正确,差值曲线会在某个时钟周期出现明显的“尖峰”——这就是密钥泄露的位置。时序攻击更隐蔽。NPU的某些操作(比如比较器、激活函数)的执行时间依赖于输入数据。ReLU函数本身是常数时间,但如果你在硬件里用了一个“提前终止”的优化——当检测到负数时直接输出0——那么处理正数和负数的时间就会不同。攻击者通过测量推理时间,就能反推出中间值的符号位。硬件层面的“防弹衣”防护侧信道攻击,不能指望软件