保护您的 IP 内核 - 第一部分 软IP核,第三章:硬件设计的混淆
硬件混淆是一种通过修改电子硬件的描述或结构以故意隐藏其功能的技术,这使得逆向工程变得更加困难。换句话说,硬件混淆会以这样一种方式修改设计,使得最终的架构对对手来说变得不明显。只有当应用正确的密钥时,混淆设计才会显示正确的功能。这些混淆技术可以保护 IC 免受盗版和过度构建。
混淆还有助于有效地隐藏 IC 中的安全特性,从而保护 IC 在制造设施中免受伪造和克隆。
混淆和防篡改技术并不是 HDL 代码保护的最佳方式。首先,它们降低了程序的可读性和修改难度(如果不是不可能的话),这都违背了发布软 IP 以更好地重用设计的动机。其次,对 HDL 设计标准的不断推动降低了这种保护的能力。
混淆类型
主动硬件混淆技术
主动硬件混淆技术直接改变系统的功能。通常,主动硬件混淆技术是“基于密钥的”,因此混淆设计的正常功能只能通过在输入端成功应用单个预定密钥或一系列秘密密钥来启用;否则,电路会在显示不正确功能的模式下运行。这可以通过在电路中嵌入一个隐藏良好的有限状态机 (FSM) 来实现,以根据密钥的应用来控制功能模式。
基于密钥的主动硬件混淆技术在原理上类似于用于信息保护的私钥加密方法,因为用于混淆设计的“密钥序列”起着与加密密钥类似的作用。该技术可应用于不同级别的硬件描述,即门级或寄存器传输级 (RTL) 设计,因此可用于保护软核、固核和硬核 IP。
被动硬件混淆技术
被动硬件混淆技术不直接影响电子系统的功能。
事实上,被动技术以软形式修改电路描述(例如句法变化),使得人们难以理解电路的功能。这些方法通常采用字符串替换(包括变量名更改、注释删除等)或电路的硬件描述语言(HDL)描述中的结构更改(包括循环展开、寄存器重命名等)。无源方法的一个主要缺点是它们不会修改电路的黑盒功能,因此无法防止 IP 在设计中用作黑盒。此外,这种被动混淆的实际强度值得商榷,因为通常不存在黑盒混淆,至少对于计算某些数学函数的软件程序而言。