WEBKT

深入剖析RISC-V微控制器中PUF(如Arbiter PUF和Butterfly PUF)在低功耗IoT设备中的瞬时与平均功耗特性,并探讨高效的电池续航优化方案

176 0 0 0

在物联网(IoT)设备的世界里,低功耗是永恒的追求,特别是对于那些依赖电池供电,需要长期部署在偏远环境中的传感器节点或智能终端。而设备的安全性,尤其是其信任根的构建,又如影随形地成为重中之重。物理不可克隆函数(Physical Unclonable Function, PUF)作为一种基于芯片制造过程随机性的硬件指纹技术,为IoT设备提供了一种极具吸引力的安全基石,它能为每颗芯片生成独一无二的“DNA”,进而派生出密钥或设备身份。但问题来了:这些听起来很酷的PUF,在RISC-V微控制器上跑起来,到底有多“耗电”?尤其是对于功耗敏感的IoT应用,我们如何平衡安全与续航?

今天,咱们就来聊聊RISC-V微控制器中,两种常见的PUF——Arbiter PUF和Butterfly PUF,在实际低功耗IoT场景下的功耗表现,以及如何精打细算地去优化它,让你的电池多撑一段时间。

PUF基础:为什么我们关注功耗?

首先得明白,PUF的魅力在于它的“零预编程”和“抗克隆”特性。它利用芯片制造过程中微小的、不可控的工艺变异来产生独一无二的响应。常见的PUF类型繁多,其中Arbiter PUF和Butterfly PUF因其相对简单的结构和较好的性能而受到关注。Arbiter PUF基于延迟链中亚稳态的竞争,而Butterfly PUF则利用SRAM单元在上电时的不确定初始状态。两者都能生成唯一的指纹,但它们的激活、响应生成以及后续密钥提取的整个生命周期里,都伴随着不可忽视的功耗事件。对于低功耗IoT设备,任何一个细微的电流峰值或累积的平均功耗,都可能直接影响设备寿命,毕竟,一块电池的能量总是有限的。

RISC-V与PUF的联姻:机遇与挑战

RISC-V作为一个开放、可扩展的指令集架构,给IoT设备设计带来了前所未有的灵活性。开发者可以根据具体需求定制指令集,甚至集成专用的硬件加速器。这为PUF的集成提供了天然的优势:我们可以将PUF作为RISC-V片上系统(SoC)的一部分,甚至通过自定义指令集来优化PUF的操作流程。然而,这种紧密集成也意味着PUF的功耗特性将直接影响整个SoC的能耗预算,特别是对于那些频繁需要进行密钥操作的IoT安全场景。

深入剖析:PUF操作阶段的功耗画像

我们把PUF在IoT设备中的生命周期,大致拆解成三个关键阶段来观察它们的功耗表现:

  1. 初始化阶段(Enrollment/Registration)

    这个阶段通常在设备首次启动或安全引导过程中进行,目的是从原始PUF响应中提取出稳定的、可重复的特征数据(通常称为“Helper Data”或“Reference Value”)。

    • Arbiter PUF: 在初始化时,需要多次激活延迟链并测量其响应,以消除噪声并确定稳定的比特位。这涉及门电路的频繁翻转和比较器的多次采样。瞬时功耗峰值往往出现在延迟链被激活的瞬间,例如,一个128位的Arbiter PUF可能需要启动128对或更多反相器链,这会引发一个短暂但明显的电流冲击。平均功耗则取决于采样的次数和每次采样的时间。例如,在20MHz的RISC-V核心下,一次完整的Arbiter PUF初始化可能需要数百微秒甚至毫秒级,瞬时峰值电流可能达到几毫安,平均功耗也可能维持在数百微瓦的水平。

    • Butterfly PUF: 基于SRAM的特性,初始化阶段主要是对SRAM阵列上电,并捕获每个单元的初始状态。这个过程相对直接,瞬时功耗峰值主要体现在SRAM阵列上电的瞬间,大量的SRAM单元同时翻转或进入稳定状态,这会产生一个较大的电容充放电电流。一旦SRAM状态稳定,功耗会迅速回落。由于SRAM的初始化速度通常比复杂的延迟链更快,其瞬时峰值可能更高但持续时间更短,总平均功耗相对较低,但瞬时冲击对电源轨的稳定性要求更高。

    影响因素: 这个阶段的功耗主要受PUF尺寸(比特数)、采样次数、以及内部振荡器或时钟频率的影响。更高的采样率和更大的PUF会带来更高的累积功耗。

  2. 挑战-响应生成阶段(Challenge-Response Generation)

    这是PUF最核心的操作模式,每次设备需要进行身份认证或密钥派生时,都会向PUF发送一个挑战(Challenge),并接收一个响应(Response)。

    • Arbiter PUF: 每次生成响应,都需要重新激活延迟链并进行竞争判断。这意味着每次操作都会产生一个瞬时功耗峰值,类似于初始化阶段,但通常不涉及多次采样,因此单次操作的平均功耗相对较低。例如,生成一个128位的响应,可能在微秒级别完成,瞬时电流峰值在毫安级,平均功耗在几十微瓦。其功耗稳定性受温度和电压波动影响较大。

    • Butterfly PUF: 从SRAM中读取一个响应相对简单,因为SRAM的状态已经稳定。功耗主要体现在SRAM阵列的读取操作上,通常比Arbiter PUF的实时生成功耗更低。瞬时峰值电流较小,但在整个SRAM读取周期内会有持续的电流消耗。例如,一次响应的生成可能只需要几十纳秒到几微秒,平均功耗在个位数微瓦。

    影响因素: 频繁的挑战-响应操作会累积功耗。每次操作的功耗与PUF的比特位数和内部电路的激活方式紧密相关。

  3. 密钥恢复阶段(Key Recovery/Derivation)

    在这个阶段,从PUF生成的原始响应(可能包含噪声)中提取出一个稳定的、纠错后的密钥。这通常涉及复杂的数字信号处理和错误校正码(ECC)运算,例如基于纠错码的“模糊提取器”(Fuzzy Extractor)。

    • Arbiter PUF与Butterfly PUF: 这个阶段的功耗主要由RISC-V核心执行模糊提取算法和ECC运算所产生。PUF本身在此阶段可能处于非激活状态,但CPU的计算强度直接决定了功耗。例如,如果采用Bose-Chaudhuri-Hocquenghem (BCH) 码或Reed-Solomon (RS) 码进行纠错,其计算复杂度和内存访问量都相当可观。在20MHz RISC-V核心上,处理128位PUF响应并纠错,可能需要数百到数千个CPU周期,瞬时功耗可能达到数毫瓦,持续时间从几十微秒到数百微秒不等,这可能是整个PUF生命周期中最耗电的阶段之一。

    影响因素: 模糊提取算法的复杂性、密钥长度、以及RISC-V核心的执行效率和频率。硬件加速器(如ECC专用IP)可以显著降低此阶段的功耗和时间。

电池续航的救赎:精巧的功耗优化方案

既然我们知道了功耗的症结所在,那么对症下药就显得尤为关键。以下是一些针对RISC-V微控制器中PUF功耗的优化策略:

  1. 硬件层面的深度优化

    • 定制PUF电路设计: 可以尝试优化PUF单元本身的设计,例如,采用更低阈值的晶体管、更小的单元面积,或者通过模拟电路技术降低Arbiter PUF中延迟链的静态功耗。对于Butterfly PUF,则可以研究SRAM单元的低功耗上电技术。

    • 精细化的电源管理单元(PMU)协同: 将PUF操作与RISC-V的动态电压频率调节(DVFS)策略紧密结合。在PUF激活期间,如果精度允许,可以适当降低RISC-V核心的频率或电压,降低整体系统功耗。反之,在需要快速完成PUF操作时,瞬间提升频率,然后迅速降回低功耗模式。

    • 门控时钟与电源门控: 对于不使用的PUF子模块,实施细粒度的时钟门控或电源门控,彻底切断其功耗,确保只在需要时才激活相关电路。例如,只有在需要PUF响应时才为PUF传感电路供电,并在完成后立即关闭。

  2. 软件与固件层面的智慧调度

    • “按需激活”策略: 最直接也是最有效的办法就是避免不必要的PUF操作。例如,如果设备只需要在开机时进行一次身份认证,那么就不要在每次通信时都去激活PUF。可以将生成的根密钥存储在片内非易失性存储器(NVM)的加密区域,用作后续加密操作的主密钥,而非每次都从PUF重新生成。

    • 高效的模糊提取算法: 软件算法的选择对功耗影响巨大。优化错误校正码的实现,选择计算复杂度更低的ECC算法(在满足安全需求的前提下),或者采用优化的查找表和硬件加速库,能显著减少RISC-V核心在密钥恢复阶段的运算量和功耗。

    • RISC-V自定义指令集扩展(Custom Instructions): 这是一个RISC-V的杀手锏。针对PUF的特征提取和模糊提取算法中的计算瓶颈(如异或运算、查找表、比特位操作),我们可以设计专用的RISC-V自定义指令。这些指令可以在一个时钟周期内完成复杂操作,将原本需要数百甚至数千个通用指令周期的任务,压缩到极短的时间内,从而大幅降低CPU的功耗和PUF操作的总耗时。

    • 分阶段密钥派生: 避免一次性生成超长密钥。可以先从PUF生成一个较短的根密钥,然后通过密钥派生函数(KDF)在软件中派生出不同长度和用途的子密钥,这样可以减少PUF实际激活的比特数,降低PUF本身的功耗。

  3. 系统级层面的宏观考量

    • 任务调度与睡眠模式: 将PUF的激活操作安排在设备从深度睡眠模式唤醒后、进入活跃工作状态之前的短时间内完成。完成PUF操作后,系统应立即进入低功耗状态,最大化利用功耗优化的效果。

    • 辅助数据管理与更新策略: 考虑PUF响应可能随环境变化(如温度、湿度、老化)而漂移的问题。虽然初始提取的Helper Data可以帮助纠正,但过度频繁地重新提取Helper Data也会增加功耗。因此,需要设计智能的Helper Data更新机制,例如定期或在特定条件下才进行更新,而非盲目地频繁操作。

    • 权衡与选择: 并不是所有IoT应用都需要最高强度的PUF。在设计之初,就应该根据具体应用场景(数据敏感度、攻击面、预期电池寿命)来权衡选择合适的PUF类型和安全等级。例如,对于对功耗极致敏感且安全性要求适中的应用,或许可以牺牲一点点PUF的稳定性或随机性来换取更低的功耗。

在RISC-V的开放生态下,PUF为低功耗IoT设备提供了强大的硬件信任根。但要让它真正落地,并兼顾超长续航,就必须在功耗问题上做足文章。这不仅仅是PUF电路本身的问题,更是整个系统软硬件协同优化的结果。未来,随着更多低功耗RISC-V核心和集成PUF IP的出现,以及更加智能的电源管理算法的应用,我们有理由相信,安全与续航之间的平衡将不再是一个难以逾越的鸿沟。

码农老王 RISC-VPUF功耗IoT安全

评论点评