想象你有一个智能设备,比如健身追踪器或医疗传感器,它使用一个“大脑”(神经网络)来做出决策。这个大脑拥有特殊的开关,称为激活函数,它们决定如何处理信息。
问题在于,这些开关正在泄露秘密。就像一个人兴奋时脚会敲得更快、无聊时敲得更慢一样,这些软件开关根据所处理的数据不同,执行所需的时间也会有细微差别。一个躲在附近的神秘黑客可以监听这些“时间敲击”,从而推断出设备正在思考什么,甚至逆向工程出设备的“大脑”。
旧方法:掩盖噪声
此前,研究人员试图通过添加随机噪声来解决这个问题。想象一下,你试图通过大声喊出秘密代码来隐藏它,但随后在你的声音中加入随机的静电噪声,使无人能听出模式。论文将这种方法称为“去同步化”。
作者测试后发现,这种方法效果不佳。即使有静电噪声,如果黑客监听的时间足够长,并运用巧妙的统计技巧(如模板匹配),他们仍然可以找出模式。这就像试图用泥浆涂抹指纹来隐藏它;一位熟练的侦探仍然可以擦掉泥浆,找到指纹。
新方案:“恒定时间”工厂
作者提出了一种完全不同的方法:恒定时间实现。
他们不是试图隐藏执行任务所需的时间,而是重新设计任务,使其无论输入是什么,都始终花费完全相同的时间。
想象一下工厂的装配线:
- 旧方法:如果工人拿到一个小盒子,他们会在 2 秒内完成。如果拿到一个大盒子,则需要 5 秒。观察者只需看着时钟,就能判断盒子的大小。
- 新方法:工厂被重新设计,使得无论盒子大小如何,每位工人都恰好花费 5 秒。
- 如果盒子很小,工人在 2 秒内完成工作,然后静止等待 3 秒(进行“虚拟”工作)以填满时间。
- 如果盒子很大,他们则工作满 5 秒。
- 结果:对外部观察者而言,每一项任务都恰好花费 5 秒。时间秘密消失了。
他们是如何做到的(工具包)
为了在微型计算机芯片(微控制器)上构建这个“完美计时”的工厂,作者使用了四种主要工具:
- 无“如果/否则”分支:计算机通常会根据决策(例如“如果数字为负,执行 X;否则执行 Y")而变慢或加速。作者移除了这些决策。相反,他们计算两种可能性,并使用数学“掩码”瞬间选出正确的一项,无需停顿决策。
- “帕德”捷径:计算复杂曲线(如 Sigmoid 或 Tanh)既缓慢又耗时不一。作者用一种巧妙的、固定步长的数学捷径(有理近似)取代了这些繁重的计算,该捷径始终执行相同数量的步骤。
- 虚拟算术:对于最简单的开关(ReLU),它通常几乎不花时间,作者添加了“虚拟”数学步骤。这就像工人静止等待;它确保简单的开关花费与复杂开关相同的时间。
- 周期对齐:他们仔细计算计算机时钟的每一次“滴答”,以确保每个函数都在完全相同的时刻完成。
结果
该团队在 ARM Cortex-M4 芯片(嵌入式设备中常见)上测试了五种常见的激活函数(ReLU、Sigmoid、Tanh、GELU 和 Swish)。
- 计时:在旧的未受保护版本中,时间变化剧烈。在新版本中,每一个输入都恰好花费108 个时钟周期(约 1.3 微秒)。时间曲线完全平坦。
- 准确性:他们担心添加虚拟步骤和捷径可能会导致数学错误。然而,他们发现误差极小——小到对于实际目的而言,设备的“大脑”仍然能正确思考。
- 速度:令人惊讶的是,对于复杂函数,新方法实际上比旧的标准方法更快,因为捷径更高效,尽管它们添加了虚拟步骤以匹配时间。
结论
该论文证明,你可以为小型设备构建一种“抗时间”的激活函数。通过强制每个计算花费完全相同的时间,你阻止了黑客通过监听设备的“心跳”来窃取秘密。这是一种实用且高效的方法,可以在不破坏设备性能的情况下提高嵌入式 AI 的安全性。
技术摘要:微控制器上激活函数的恒定时间实现方法
问题陈述
在资源受限的微控制器上进行嵌入式神经网络推理日益受到定时侧信道攻击的威胁。近期研究表明,这些网络中的激活函数会通过依赖于输入值和函数类型的执行时间变化泄露信息。这种泄露使攻击者能够区分不同的激活函数(例如 ReLU 与 sigmoid),并可能逆向工程模型架构或推断敏感输入数据。尽管现有的对策(如去同步化,即引入随机延迟)试图掩盖这些定时模式,但它们并未消除底层依赖于输入的行为。因此,基于模板的剖析攻击仍能在统计上区分激活函数,尽管存在额外的噪声。
方法论
作者提出了一种恒定时间实现方法论,旨在从源头消除依赖于输入的时间变化,而不仅仅是掩盖它们。该方法在 ARM Cortex-M4 平台(STM32F411)上实例化,针对五种广泛使用的激活函数:ReLU、sigmoid、tanh、高斯误差线性单元(GELU)和 Swish。
该方法依赖于四个核心组件:
- 无分支、基于掩码的选择:为防止控制流发散,实现避免了数据依赖的分支。相反,它使用逻辑掩码和按位运算(与/或)来根据输入的位表示在候选值(例如饱和输出与近似结果)之间进行选择。这确保了无论输入值如何,指令序列都保持一致。
- 固定成本的 Padé 基近似:对于非线性函数(sigmoid、tanh、GELU、Swish),作者使用基于 tanh(x) 的 Padé 近似(记为 Rtanh(x))的共享、固定成本有理近似,替代了标准的超越函数求值。该近似涉及固定序列的加法、乘法和一次除法,避免了依赖于输入的循环或区间选择。
- Sigmoid 和 Swish 利用恒等式 S(x)=21(1+tanh(x/2)) 构建。
- GELU 使用基于 tanh 的公式进行近似。
- 基于掩码的饱和处理:为了处理超出近似区域的输入,该方法采用通过相同的无分支掩码策略实现的饱和逻辑(钳位至 0、1 或 x)。这确保了即使对于饱和输入绕过了有理近似,执行路径和周期数仍保持恒定。
- 周期对齐与虚拟算术:为了使所有五个函数的执行时间完全相同,作者引入了虚拟算术运算。具体而言,原本执行速度快得多的简单 ReLU 函数被增加了相同的基于 Rtanh 的算术序列(不影响最终结果),以将其周期数与更复杂的函数对齐。仅使用最小量的 NOP 填充进行微调对齐。
主要贡献
- 恒定时间方法论:本文提出了一种可重用的激活函数构建原则,保证在嵌入式微控制器上具有与输入无关的执行时间。
- 五种函数的实例化:该方法成功应用于 ReLU、sigmoid、tanh、GELU 和 Swish,利用共享的有理近似处理非线性组件。
- 去同步化的脆弱性:作者证明,基于去同步化的对策虽然在视觉上掩盖了定时轨迹,但仍易受基于模板的剖析定时攻击。对执行时间的统计分析允许攻击者在经过足够多的测量后,以高置信度区分激活函数。
- 实验验证:该工作提供了实证证据,表明所提出的受保护实现对所有测试输入均实现了相同的周期数,有效抑制了定时泄露。
实验结果
该方法在运行频率为 84 MHz 的 ARM Cortex-M4 上进行了评估。
- 定时规律性:
- 在包含三种函数(ReLU、sigmoid、tanh)的设置中,在区间 [−8,8] 上,所有受保护的实现均恰好执行 88 个时钟周期(1.048 µs),与输入值无关。
- 在包含五种函数(包括 GELU 和 Swish)的扩展设置中,在区间 [−500,500] 上,所有实现均恰好执行 108 个时钟周期(1.286 µs)。
- 相比之下,未受保护的实现显示出显著的定时变化(例如,未受保护的 ReLU 耗时约 12 个周期,而未受保护的 tanh 耗时约 403 个周期)以及依赖于输入的波动。
- 数值精度:
- 近似保留了高精度。在区间 [−8,8] 上,sigmoid 的均方误差(MSE)为 2.93×10−12,tanh 为 6.14×10−10。
- 在扩展区间 [−500,500] 上,sigmoid 和 tanh 的误差仍可忽略不计(因为它们迅速饱和),而 GELU 和 Swish 显示出局限于饱和阈值附近的低误差(Swish 的最大绝对误差为 1.11×10−3)。
- 性能权衡:
- 受保护的 ReLU 实现由于插入了用于对齐的虚拟算术,导致延迟增加(从约 12 个周期增加到 88/108 个周期)。
- 相反,受保护的非线性函数比其未受保护的对应版本快得多(例如,受保护的 sigmoid/tanh 比未受保护版本快约 33-38%),因为在该目标硬件上,有理近似比标准库的超越函数更高效。
意义与主张
本文声称,所提出的方法论为构建嵌入式推理中抗侧信道的激活函数提供了实用基础。通过将重点从“掩盖”(随机化)转向“恒定时间”设计,该方法消除了定时泄露的根本原因:依赖于输入的执行路径。作者断言,该方法允许构建执行指令序列与输入值无关的激活函数,从而防止基于模板的定时攻击。
该工作将自己定位为安全嵌入式机器学习的构建模块,特别适用于对隐私敏感的边缘设备(例如医疗传感器、可穿戴设备),在这些设备中定时信息可能被攻击者获取。作者谦逊地指出,虽然这解决了激活函数中的定时泄露,但它并不构成针对整个推理流程的完整对策,其他侧信道(功耗、电磁)或实现细节可能仍需要保护。本研究专门关注定时领域,并不声称解决所有潜在的侧信道向量。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。