
1. 项目概述与核心价值在当今高度全球化的集成电路设计产业链中一个芯片从概念到产品往往需要跨越多个设计公司和代工厂。这种分工协作模式虽然降低了成本但也带来了严峻的硬件安全挑战你的核心知识产权IP——比如一个精心设计的数字信号处理DSP模块——在交付给第三方进行集成或制造时面临着被非法复制盗版、恶意篡改插入硬件木马、逆向工程甚至被过量生产超量构建的风险。想象一下你耗费数年心血研发的高性能滤波器或编解码器IP被竞争对手轻易“拿走”并集成到他们的产品中这种损失不仅是经济上的更是对创新动力的巨大打击。逻辑锁定技术正是应对这一困局的“硬件防盗锁”。其核心思想是在设计的关键路径上插入一系列由密钥控制的“锁具”——我们称之为锁存单元。只有输入正确的密钥序列整个电路才能按照预期功能正常工作否则输出将是错误的或者功能完全紊乱。这就像给你的设计加上了一把只有你才知道密码的电子锁。然而传统的逻辑锁定方案比如单纯插入几个XOR/XNOR门作为密钥门其安全性在近年来新型攻击手段如SAT攻击、密钥敏化攻击面前已显得力不从心攻击者有可能通过算法在可接受的时间内“猜”出或推导出正确密钥。本文要探讨的正是一种面向DSP IP核的、更为鲁棒的逻辑锁定方案。我们不再使用简单、固定的密钥门而是引入了一种基于高级加密标准AES的可重构混合锁存单元。这个方案最吸引人的地方在于它创造性地将时序元件D触发器与组合逻辑门相结合构建出一种具有“状态记忆”特性的锁。其带来的颠覆性安全增益是即使攻击者拥有激活的芯片并能进行穷举尝试尝试所有可能的密钥组合他成功破解的概率也远非100%而是急剧降低到了1/2^KtKt为总密钥位数。这意味着除非攻击者的第一次尝试就蒙对了密钥否则后续无论尝试多少次都无法得到正确的功能输出。这从根本上改变了逻辑锁定的攻防态势为高价值DSP IP的核心安全提供了新的保障思路。2. 方案核心可重构混合锁存单元DLC设计解析传统的逻辑锁定单元多为纯组合逻辑其输出仅取决于当前输入的密钥位。而本方案提出的DSP锁存单元DLC在结构上进行了根本性的革新它由两个子单元构成时序逻辑锁存单元SL2C和组合逻辑锁存单元CL2C。2.1 DLC的架构与工作原理一个DLC需要一对密钥位K1, K2来激活。其内部结构巧妙地将这两个密钥位的作用域进行了混合与关联。SL2C时序逻辑锁存单元这是整个设计的“安全心脏”。它包含两个D触发器我们称之为“密钥触发器”。这两个触发器的时钟输入端分别连接着密钥位K1和K2。这意味着密钥位的任何变化0-1或1-0都会作为时钟边沿信号去尝试触发对应的触发器。每个密钥触发器在电源上电复位后其输出Q被初始化为‘0’。这里的关键在于只有当两个密钥触发器的输出Q1和Q2同时为‘0’时从DLC数据输入到数据输出的正确路径才会被“解锁”。CL2C组合逻辑锁存单元这部分由一系列逻辑门如XOR, XNOR, AND, NAND, OR, NOR, NOT构成其连接方式会根据从AES模块输出的密钥位进行动态重构。CL2C接收来自SL2C的Q1、Q2信号以及原始数据输入经过特定的逻辑运算后产生最终的数据输出。CL2C的配置不是固定的这增加了攻击者进行结构分析的难度。协同工作机制DLC能否传递正确信号取决于SL2C中两个密钥触发器的状态。而触发器的状态又由密钥位的历史序列决定。这就引入了一个时序依赖的安全特性DLC的正确解锁不仅要求当前输入的密钥K1, K2是正确的还要求这两个密钥触发器自芯片上电以来从未被错误的密钥触发过即Q1和Q2必须保持为初始的‘00’状态。2.2 为何DLC能抵御穷举攻击这是本方案最精妙之处。我们通过一个场景来理解假设正确密钥是“01”。第一次尝试即为正确密钥“01”由于芯片刚上电Q10, Q20。输入K10, K21。K2从0变为1产生一个上升沿试图触发FF2。但通过CL2C中特定的门电路设计可以确保当密钥为“01”且Q1Q2“00”时触发器的时钟有效信号被屏蔽或数据输入为0使得FF2的输出Q2保持为0。同时K10无变化FF1保持Q10。因此Q1Q2维持“00”数据路径解锁输出正确。第一次尝试错误第二次尝试正确假设第一次尝试了“00”。K10-0无变化K20-0无变化。虽然没有正确的边沿触发但电路可能进入某种未定义或干扰状态。更重要的是当第二次输入正确密钥“01”时K2从0变为1产生了一个明确的上升沿。此时由于Q2的当前状态可能已受前次操作影响或者CL2C的配置使得该时钟边沿有效这个上升沿将翻转FF2的输出Q2从0变1或从1变0但不再是稳定的0。一旦Q2不为0Q1Q2就不再是“00”整个DLC的数据路径将被永久性地错误锁定或导向错误输出。此后即使再输入正确的“01”也无法恢复“00”状态因为触发器已被触发并改变了状态。注意这种“一次性”特性是设计上的刻意为之。通过精心设计CL2C中逻辑门与触发器时钟、数据端的连接确保了只有在首次施加正确密钥且触发器处于初始状态时才能通过逻辑屏蔽等方式避免触发器翻转。一旦错误密钥导致触发器状态改变就无法再通过外部密钥输入将其重置回初始“00”状态除非全局复位但这在攻击者场景中通常不可用。因此攻击者进行2^Kt次穷举尝试时只有第一次就猜对密钥的那一次尝试是有效的。其成功概率从传统方案的1必然在穷举中成功降低到了1/2^Kt。对于一个16位密钥的系统成功概率从100%骤降至约0.000015安全性提升了数个数量级。2.3 DLC的五大安全特性除了上述核心机制DLC的结构还天然具备其他防御特性密钥对安全在DLC内部两个密钥位K1, K2在逻辑路径上相互干扰。攻击者想要敏化观测K1必须能够控制K2的值反之亦然。由于密钥对攻击者是不可控的内部节点这种相互依赖性使得密钥敏化攻击无法实施。禁止密钥门隔离DLC中的密钥门或称为密钥控制点通过内部逻辑紧密连接不存在彼此孤立的密钥门。孤立密钥门容易被单独敏化而相互关联则增加了攻击复杂度。防御密钥门串联DLC的结构避免了多个密钥门简单串联形成“链”的情况。这种链式结构会被攻击工具等效简化降低密钥空间的有效性。DLC的混合结构打破了这种串联模式。非可变密钥门在DLC中不能通过将某个密钥门固定为常值“静默”它来简化电路并敏化其他密钥。任何尝试静默一个密钥门的操作都会破坏整个DLC的功能或导致不可预测的输出而不会简化攻击路径。强混淆性DLC中使用的D触发器和标准逻辑门与门、或门、非门、异或门等与DSP设计及AES模块中大量使用的同类元件完相同。在综合后的网表中这些DLC元件与功能电路的元件完全“混”在一起无法通过结构分析或反向工程进行区分实现了硬件层面的混淆。3. 基于高层综合HLS的DLC集成流程将DLC安全地、高效地集成到复杂的DSP设计中需要一个系统化的流程。本方案选择在高层综合HLS阶段进行集成这是一个非常务实且高效的选择。3.1 为何选择HLS阶段DSP核心通常由算法工程师使用C/C或模型如数据流图DFG进行描述。直接对成千上万个门级网表进行手动插入DLC是不现实的。HLS工具能够自动将高级别算法描述转换为寄存器传输级RTL设计包括调度、分配和绑定。在RTL阶段设计的结构如功能单元、寄存器、多路选择器已经明确但还未被优化成具体的门级网表此时插入DLC具有显著优势可控性设计者可以基于架构信息如功能单元的输出位宽智能选择插入点。低开销在RTL阶段插入综合工具可以在后续优化中一定程度上“消化”DLC引入的额外逻辑相比在门级网表上硬性插入产生的面积和时序开销更小。自动化潜力整个流程可以脚本化集成到标准的HLS设计流程中。3.2 DLC插入的具体步骤整个逻辑锁定流程如图1所示可分为三步步骤一生成原始RTL数据通路输入DSP应用的C代码或数据流图DFG/ CDFG以及设计者指定的资源约束如几个加法器、几个乘法器和模块库。通过HLS工具经过调度确定每个操作在哪个时钟周期执行、分配决定使用多少个硬件资源实例和绑定将操作映射到具体的硬件实例生成初始的、未锁定的RTL设计。步骤二插入并配置DLC生成锁定后的RTL这是核心步骤。如图2所示我们需要决定1) 在何处插入DLC2) 插入多少个DLC3) 每个DLC的结构密钥是什么确定插入位置与数量基于变量µ设计者通过一个调谐变量µ0-3来控制DLC的插入粒度。µ0在所有功能单元如加法器、乘法器的偶数编号输出位插入DLC。µ1在所有功能单元的奇数编号输出位插入DLC。µ2在所有功能单元的质数编号输出位插入DLC。µ3在所有功能单元的所有输出位插入DLC。 假设一个设计有2个功能单元FU每个FU输出为16位。若µ3则总插入DLC数量 TDLC 2 FU * 16 位/FU 32个。µ提供了灵活的安全性与开销权衡。确定DLC结构基于AES密钥DLC的具体逻辑配置即CL2C内门的连接方式以及SL2C中触发器的触发边沿上升沿/下降沿由一对密钥位K1, K2决定。本方案使用一个AES-128加密模块来生成这些密钥。AES接收一个主密钥由IP提供者保密产生128位的伪随机输出。每2位可以配置一个DLC因此一个AES-128输出最多可以配置64个DLC。对于需要更多DLC的大型设计可以使用不同的AES实例或对输出进行扩展。这一步的精髓在于“可重构”DLC不是千篇一律的。对于不同的IP设计甚至同一IP的不同实例只要AES输入主密钥或初始向量不同产生的DLC结构就不同。这极大地增加了攻击的难度因为攻击者无法积累对固定DLC结构的分析经验。步骤三综合生成锁定的门级网表将集成了DLC和AES模块的锁定后RTL代码输入到逻辑综合工具如Synopsys Design Compiler, Cadence Genus中针对目标工艺库进行综合优化最终得到可用于布局布线的门级网表。此时DLC的元件已与原始DSP逻辑、AES逻辑深度融合难以区分。3.3 一个实例FIR滤波器的锁定我们以一个4阶有限长单位冲激响应FIR滤波器为例进行演示。假设其HLS生成的数据通路包含1个乘法器和1个加法器资源约束1(*), 1()数据位宽为4位。选择µ3在两个功能单元的所有4个输出位都插入DLC。总DLC数量 TDLC 2 FU * 4 位/FU 8个。计算密钥空间每个DLC需要2位密钥总密钥位 Kt 8 * 2 16位。穷举空间为2^16 65536种可能。安全增益计算采用传统逻辑锁定攻击者穷举尝试后找到正确密钥的概率P_ck 1。采用本方案P_ck 1/2^16 ≈ 0.000015。安全性提升了65536倍。集成AES将一个定制化的AES-128加密模块集成到该FIR滤波器的顶层设计中。AES的128位输出中的前16位或根据特定映射规则选取的16位作为这8个DLC的配置密钥。综合与验证使用Quartus II等工具进行综合并在ModelSim等仿真器中进行功能验证。只有在提供正确的AES主密钥从而生成正确的DLC配置密钥时FIR滤波器才能对输入信号产生正确的滤波输出。4. 针对各类攻击的防御能力分析假设攻击者已经获得了锁定的门级网表通过反向工程或从不可信代工厂泄露并且拥有一个激活的、可正常工作的芯片可从公开市场购买他将发起多种攻击来尝试提取密钥或绕过锁定。4.1 对抗密钥敏化攻击密钥敏化攻击的目标是通过向原始输入施加特定的测试向量使得内部某个密钥位的值能够传播到原始输出并被观测到从而推断出该密钥位的值。传统方案的弱点如果密钥门是孤立的或成串的攻击者可以相对容易地找到这样的测试向量。本方案的防御正如前文DLC特性所述由于密钥对的相互依赖性一个密钥位的敏化路径受另一个密钥位控制以及DLC内部非隔离、非串联的结构攻击者无法找到一套不涉及控制其他密钥位的测试向量。因此密钥敏化攻击在本方案面前失效。4.2 对抗SAT布尔可满足性攻击SAT攻击是近年来最强大的逻辑锁定攻击方法之一。攻击者利用激活的芯片作为“预言机”通过不断询问输入-输出对并使用SAT求解器迭代排除不可能正确的密钥组合最终收敛到唯一正确的密钥。传统方案的灾难许多早期逻辑锁定方案被SAT攻击轻易破解。本方案的防御结构性防御DLC中引入了时序元件D触发器其状态依赖于密钥输入的历史序列。这使得电路的输入-输出映射关系不再是纯粹的组合逻辑函数而是包含了时序状态。标准的SAT攻击模型是针对组合逻辑电路的直接应用于这种包含状态依赖的电路会极其复杂甚至不可行因为需要为每个时钟周期或密钥尝试序列建立状态模型。针对DSP的天然屏障SAT攻击在处理大型算术单元尤其是乘法器时其生成的合取范式CNF会爆炸性增长导致求解器无法在可接受时间内完成。DSP核心通常包含大量乘法操作这本身就为SAT攻击设置了巨大的计算障碍。我们的方案在此基础上又增加了时序和混淆层使得SAT攻击更加不切实际。概率性穷举的终极屏障即使未来出现能处理时序和大型算术电路的增强型SAT攻击本方案最核心的“概率性穷举”特性然构成终极防线。因为即使攻击者通过SAT求解器找到了一个在逻辑上能使电路对所有测试向量都输出正确结果的密钥组合这个密钥组合也不一定是能在实际芯片上首次通电即工作的那个“正确密钥”。SAT求解器找到的可能是数学的一个解但无法模拟触发器因错误密钥尝试而被永久改变的状态。攻击者无法通过SAT求解来区分“首次通电正确的密钥”和“其他数学上等效但实际无效的密钥”。4.3 对抗移除攻击移除攻击试图识别并移除设计中的锁存逻辑直接恢复原始功能电路。传统方案的弱点如果锁存逻辑具有明显特征如特定的门类型组合、非常规的连接方式可能通过结构分析或机器学习方法被识别出来并移除。本方案的防御得益于强混淆性。DLC使用的全部是标准单元库中最常见的元件D触发器、与门、或门、非门、异或门。在综合后的网表中这些来自DLC的元件与FIR滤波器、AES加密模块中数以千计的同类元件完全混杂在一起没有任何独特的结构“指纹”。攻击者几乎不可能准确地将DLC的元件从海量的功能逻辑中区分并剥离出来而不损坏原始设计功能。4.4 对抗逆向工程与超量构建逆向工程即使攻击者通过延迟层、拍摄芯片照片等方式获得了完整的版图GDSII并反向提取出门级网表他得到的也是我们提供的、已经集成了DLC和AES的“锁定版”网表。没有正确的密钥他无法使芯片工作也无法通过分析网表来理解真正的DSP算法功能因为核心数据路径已被DLC破坏。超量构建代工厂可能在不被授权的情况下额外生产芯片并销售。但这些芯片没有正确的密钥是无法工作的“砖头”毫无商业价值从而消除了代工厂超量生产的动机。5. 设计开销评估与权衡任何安全机制都会引入额外的开销包括面积芯片尺寸、功耗和可能的时间延迟。本方案在追求高安全性的同时也注重开销的优化。5.1 开销构成分析DLC本身的逻辑开销每个DLC包含2个D触发器和若干组合逻辑门。相对于一个典型的DSP IP核通常包含数万至数十万门插入几十到几百个DLC所带来的面积增量百分比通常可以控制在5%以内。例如在一个包含2万个门的DSP核中插入100个DLC约等效于200个触发器和300个门总计约500个门等效面积面积开销约为2.5%。AES加密模块的开销一个128位的AES加密器确实会带来固定的面积开销。但需要注意的是AES模块在芯片中通常只需一个实例为所有DLC提供密钥源。对于许多DSP应用如通信基带处理加解密功能本身可能就是系统需求的一部分AES模块可以复用此时其开销可部分或全部被“吸收”。即使作为纯安全开销一个经过高度优化的AES-128硬件实现其面积在现代工艺下也是可接受的。性能开销DLC插入在功能单元的输出端。这可能会在数据通路上引入额外的组合逻辑延迟CL2C的延迟和可能的时序路径变化。需要通过静态时序分析STA来确保设计满足时钟频率要求。在大多数情况下通过合理的µ选择如不在关键路径上插入DLC和综合工具的优化可以将性能影响降至最低。5.2 与同类工作的比较与之前针对DSP核心的逻辑锁定方案如使用8位密钥的IP核心锁定块ILB相比本方案在安全性上实现了质的飞跃P_ck从1降至1/2^Kt而在开销上却可能更低。原因在于更少的密钥位每个DLC仅需2位密钥而一些方案需要更多位。更少的密钥位意味着更简单的密钥分发和存储逻辑以及更小的AES输出需求或能用更少的AES输出来配置更多的锁。更高效的单元结构DLC结构紧凑将安全逻辑深度集成避免了复杂的、多级的纯组合逻辑锁存结构后者往往带来更大的面积和延迟。5.3 实操心得与配置建议在实际项目中应用此方案时有几点经验值得分享µ的选择策略µ是平衡安全性与开销的关键杠杆。µ3全插入提供最高安全性但开销最大。建议用于对安全极度敏感、且面积预算宽裕的核心IP。µ0或1奇偶位插入开销减半安全性仍很高因为攻击者无法预知哪些位被保护。这是最常用的平衡选择。µ2质数位插入提供了非均匀的插入模式可能增加攻击者分析难度但需要额外的控制逻辑来判断“质数位”可能略微增加开销。适用于对安全模式有特殊要求的场景。建议在项目初期可以用不同的µ值进行快速综合评估绘制“安全性-面积”曲线帮助系统架构师做出决策。AES密钥的管理AES的主密钥是整个安全体系的根。必须将其安全地存储在芯片的不可变存储器如eFuse或通过安全启动流程从外部注入。绝不能以明文形式出现在设计文件或测试接口中。验证挑战由于DLC的状态依赖特性传统的定向测试或随机测试在密钥错误时可能无法触发所有功能路径。需要建立完善的验证环境在RTL仿真阶段构建一个验证平台能模拟上电、加载正确密钥、进行功能测试的完整场景。同时也要测试加载错误密钥时输出是否为预期中的乱码或固定值而非偶然的正确值。在FPGA原型验证阶段需要实际烧录AES主密钥并进行系统级测试确保密钥加载流程和DLC激活机制万无一失。与DFT可测试性设计的协调DLC的插入不应破坏芯片的扫描链和内部观测性。需要在插入DLC时考虑将DLC中的触发器纳入扫描链并确保在测试模式下DLC可以被旁路或置于已知状态以免影响生产测试。这个基于AES可重构混合锁存单元的DSP IP核逻辑锁定方案通过将时序记忆特性引入安全逻辑巧妙地改变了攻击者穷举尝试的成功概率基础从“必然破解”变为“近乎不可能”为高价值IP在不可信供应链中的安全交付提供了强有力的新工具。其与高层综合流程的良好结合也使得它能够以相对较低的代价集成到现代复杂的DSP设计流程中。