杨 燕
(贵州理工学院工程训练中心,贵州 贵阳 550003)
随着IC 行业和制造工艺的发展,芯片集成度越来越高。 现在,数以亿计的晶体管可以被集成在一块芯片上,这大大增加了IC 设计的难度和周期,导致IC 设计公司投入的资金剧增,而且由于制造工业的改进也需要IC 设计公司投入巨额的资金,所以越来越多的IC 公司由于难以承受资金上的压力而选择将芯片制造外包给专门生产芯片的公司。 IC 行业逐渐由以前的自己设计自己制造模式变成IC 设计和制造分离的商业模式,商业模式的转变减轻了IC 设计公司的资金压力,但是同时也带来了很多问题,比如芯片版权和安全问题。 IC 计量技术是指一种机制、方法和协议,使设计人员能够控制芯片的后端制造,计数生产的芯片数量并防止芯片盗版和过度制造。 根据实现方案,现有的IC 计量技术可以分为主动式计量技术和被动式计量技术。
如图1 所示,被动式的IC 计量可以分为几个类型。 根据其是否与功能相关,可以分为被动式非功能计量和被动式功能计量技术。
被动式非功能IC 计量技术已经使用了很多年。 该技术通常通过在每个芯片上雕刻唯一ID或将ID 存储在非易失性存储器中来实现。 众所周知,英特尔奔腾III 处理器包含唯一的序列号[1]。 但是,通过这两种方法生成的芯片ID 可以很容易地被攻击者删除或复制。 此外,这两种方法不能防止代工厂制造过多的芯片,因为它们可以轻松地将相同的ID 复制或写入相同的ID到过度制造的芯片上。 因此,如果我们可以为每个芯片提供一个未克隆的ID,则可以克服这些缺陷。
为了克服上述IC 计量技术的不足,Lofstrom等[2]提出了解决方案,首先引入了不可复制的ID技术,称为ICID,该技术基于不可克隆的变化进行更改。 由于IC 工作过程中的物理变化无法由任何人控制,因此制作芯片的ID 将有所不同。继ICID 之后,又开发出了一些更先进和可接受的标识和认证技术,包括文献[3]和文献[4]中提到的PUF。 由于上述方法独立于设计来实现,因此被称为外部非功能计量方法。 到目前为止,对于非克隆ID 技术,如果在原始电路设计中引入了新的附加电路结构,则可以将其划分为外部识别方法[2],否则,它是内部识别方法。 文献[2-4]是最早提出的不可克隆方法和PUF 技术。 文献[5]和文献[6]是内在方法。 文献[2-6]的结果表明,IC 设计可以为芯片创建唯一的序列号。如果将外部测试向量给芯片制造商并测试结构,则可以防止芯片被盗版。
在文献[7]中,提出了一种典型的被动式IC计量方案,该方案要求相同设计的每个芯片都具有唯一的锁定控制路径,这需要特定的控制序列。 但是,使用相同掩模制作的芯片必须具有相同的输入和输出行为,因此,需要使每个芯片具有特定的控制序列。 文献[7]和文献[8]中的工作提出,每个芯片有单个数据路径,该数据路径可以由多个控制路径控制,所有这些路径均满足上述要求。 编译后的控制路径设计已集成到每个芯片的后端设计中。 在此基础上,文献[7]和文献[8]中的工作还提出了其他设计方法,以混淆分配给特定寄存器的变量的子集。 在此方案中,在逻辑综合过程中基于一组选定的状态创建冗余的等效状态,然后根据设计约束选择状态组,这意味着必须将并发状态存储在单独的变量中,以减少内存开销和每个变量的副本,在文献[7]中实现状态的不同分布。 分配给每个副本的任何不同排列都适用于那些等效状态,因此生成的冗余状态对应于添加到状态转换图(STG)的顶点,其边缘与将顶点复制到新顶点,并且寄存器的可编程读取逻辑设计使设计者可以为每条唯一控制路径选择适当的变化序列[8]。
被动计量方法可以监视和计数制造的芯片,以检测盗版芯片。 通过在检测芯片之前将特定的控制路径序列加载到可编程部分中来实现此技术,并且如果检测结果显示多个芯片具有相同的序列,则这些芯片将被标记为盗版芯片,条件是大多数芯片可以在线工作,而设计公司可以访问其内部控制序列,设计人员可以通过执行异或运算或检查文献[8]中状态变体的完整性来实现在线访问以检查这些状态的总和。
通过文献[7]和文献[8]中的工作,实验结果表明可以在最小开销下实现不同的序列。 被动式计量的明显缺点是在专用集成电路(ASIC)中引入了可编程组件。 引入了额外的版图设计,这意味着大量的开销。 此外,该方案要求大多数芯片都可以在线工作,并且可以访问其内部序列,但是,此条件不能总是得到满足。 因为此方法是基于对市场和统计数据的监视,所以时间、金钱和人力是不可避免的。 因此,需要一种更好的方法来解决此问题。
与被动式IC 计量技术相比,主动式IC 计量技术不仅可以唯一地识别芯片,还可以让芯片设计者成为访问或解锁芯片功能的唯一人员,并且可以进一步分为内部主动式IC 计量和外部主动式IC 计量技术[9]。 主动式计量的设计流程如图2 所示。
Alkabani 等[10]于2007 年首次提出了第一种主动式IC 计量方法。 Koushanfar 提出了一种改进的方案,并在文献[11]中提出了一些新的安全证明。 图2 描述了该方案的设计过程:第一步是名为Alice 的设计人员利用高级描述语言来实现其设计[11]。 VHDL 是超高速集成电路硬件描述语言的缩写,而HDL 是Verilog 硬件描述语言的缩写。 然后,提取原始设计的FSM,并将锁插入到原始FSM 设计中。 我们称改进的FSM 为升级的FSM(BFSM)[11]。 将设计规范即GDS II 文件和IC 测试向量发送到代工厂制造芯片。 由于芯片的功能已被锁定,制成的芯片无法正常工作,因此在解锁之前无法测试制成的芯片。 BFSM 的上电状态需要发送回设计室,以获取用于解锁芯片的钥匙。 当每个芯片的密钥返回到代工厂时,代工厂可以使用它来解锁芯片。 最后,将制造的芯片送去测试和封装。 锁定结构如图3 所示。
芯片上电时,PUF 电路生成响应,这些响应用于添加的额外触发器(FF)中。 PUF 响应确定添加状态之一为芯片的加电状态。 为了使芯片正常工作,必须将BFSM 从加电状态转换为原始FSM 的真实初始状态。 如图3 所示,假设上电状态为S5,S0为FSM 的初始状态,当输入密钥(IK):(P1,P2,P3)时,电路将从S5过渡到S0,芯片可以正常工作[11]。 如果密钥不正确,则BSFM的状态可能会转换到未知的添加状态,从而导致芯片锁定。 由于状态转换图(STG)仅为设计机构所知,无法从GDS II 文件中提取状态转换图,并且设计机构是唯一可以根据加电状态计算IK的机构,因此可以确保在芯片设计中的锁定机制是安全的[11]。 而且,可以使芯片正常工作的正确密钥是唯一的,并且经过身份验证的密钥可以用作文献[11]中所述的所有权证明。
该方案中的锁定是通过增强有限状态机(FSM)设计以实现内部主动式计量方案来实现的。 PUF 电路用于生成随机响应,这将使设计进入其他非功能状态之一。 这些状态可以转换为原始FSM 的功能复位状态,但是确定这种转换的输入只有设计者才知道。 因此,锁定和解锁机制可以使设计人员从相同的版图主动控制制造的IC 数量。 重要的是PUF 电路可以产生许多不同的输出响应,所有这些响应都应在FSM 中视为非功能状态。 结果,FSM 的复杂性增加,并且随之而来的开销可能会非常高。 因此,设计人员可以使用锁定和解锁机制来主动控制来自掩模的已激活IC 的数量。 但是,增加状态的数量应不少于制造芯片的数量,以提高原始设计的安全性。许多增加的状态和相关的转换会增加FSM 的复杂性并导致大面积的开销。 在文献[12]中,Alkabani 等提出了一种类似的方法来主动控制,该方案的过程可以讨论如下。
首先,要添加足够多的其他状态,以确保添加的状态之一是上电状态,并且上电状态是功能状态之一的可能性足够低。 用来迷惑攻击者的状态呈指数级增长,可以保证这一点。
接下来,存在PUF 的可靠性问题。 众所周知,PUF 的响应可能会随着老化问题或温度和电压的变化而变化。 如果PUF 响应更改,则先前的密钥可能无法解锁芯片。 在文献[13]中,Yu 和Devadas 建议设计者可以使用纠错码(ECC)来确保PUF 响应正确,但是纠错码逻辑需要关联辅助数据,因此会产生大量开销。
在文献[10]中,BFSM 的引入增加了设计的复杂性。 为了减少添加状态和相关转换的数量,文献[14]中的工作建议通过复制FSM 的几个状态并给状态转换添加控件来锁定每个工作的IC,如图4 所示,S2是初始状态,将S2复制两次得到S21和S22,其中状态S2和两个复制的状态具有相同的功能,但在文献[14]中具有不同的输入。 我们假设FSM 有两个输入端口和FSM 的映射关系,它们可以使S1转移到下一个状态:文献[14]中的01,S1到S2;10,S1到S21;11,S1到S22。
当FSM 转换为S1时,PUF 电路被激活以创建随机响应,部分响应用于控制状态S2、S21以及S22的转换,这意味着转换将随机跳至对应于映射的状态之一。其余部分取决于IK。 除非有正确的密钥,否则FSM 无法跳转到S3。 该映射只有设计者已知。因此,设计者可以积极地防止过度制造的问题。
尽管文献[14]中的方法可以在不引入许多状态的情况下主动控制芯片后端处理过程,但是该方法将影响设计的性能。 当芯片开始工作时,如图4 所示,状态转换到S1,为了使FSM 正常工作,它必须提供驱动信号来调用PUF 来生成响应[14]。 最后,该响应充当控制信号,以使状态从S1传输到下一个状态。 此过程会延迟原始芯片的运行。
在文献[15]中Zhang 等[15]提出了一种不同于上述两种计量结构的新方法,其机理如图5 所示。 此方法与文献[10]和文献[11]中的方法完全不同,在文献[10]和文献[11]中,每个芯片的初始上电状态都固定为Sr。 在文献[15]中,部分PUF 响应用于控制状态转换,部分响应与IK 进行异或运算,可以使状态转换为固定节点状态。设计公司是唯一知道这种映射关系的实体,如图5 所示,M层状态被添加到设计中以绑定原始FSM,在文献[15]中,添加的状态分布在每个层。由偶数索引的每一层包含m个状态,而由奇数索引的每一层仅包含一个状态,状态从奇数层到偶数层的转移取决于PUF 响应,状态如何从偶数层转移由文献[15]中的PUF 响应和IK 确定一个奇数。 例如,可靠的PUF 响应为0100,前两位(01)用于控制Sr到下一层的传输,后两位用于绑定密钥,以便将状态传输到奇数层,从Sr到下一层的映射关系如下:11,Sr→S6;01,Sr→S7;10,Sr→S8;00,Sr→S9。 下一个映射关系是01,S6→Sor。 文献[15]中的10,S7→Sor;11,S8→Sor;00,S9→Sor。 因此,我们知道FSM 可以从Sr过渡到S7。为了使状态转换到原始重置状态Sor,我们在文献[15]中推论IK 为“ 10”,可以将其IK 排除或与“00”一起使用以获得“10”。
总体而言,内部主动式硬件计量在较高的设计水平上实现了锁定机制,并具有较高的抵抗基于逆向工程攻击的能力[11]。 但是,也很难预测或控制总成本。 此外,这些计量方法可能会受到入侵的攻击,特别是文献[11]中的方法。 文献[15]中提出的方法比文献[10]和文献[11]中提出的方法需要更多的PUF 响应位,尽管该方法可以抵抗入侵攻击。
外部主动式IC 计量通常在物理设计级别实现锁定和解锁机制,并引入加密模块以确保无法访问用于解锁设计的密钥。 在文献[16]和文献[17]中提出了一种终结集成电路盗版(EPIC)的方案,并且由于许多外部计量方法都源于该技术,因此详细阐述了基于EPIC 的外部主动式计量。 EPIC 的协议如图6 所示。 EPIC 通过在选定的非关键组合路径上插入XOR 门以及连接到公共密钥寄存器(CK)的控制信号,从而在芯片的主要部分实现了锁定机制。 当正确的CK 输入到电路中时,该电路等效于原始设计。 否则,芯片功能不正常。
EPIC 随机生成CK 以防止其被盗,因此该方案可以抵抗许多已知的攻击[16]。 但是,除了用于生成一对公钥和私钥的单元之外,还需要在设计中插入两个解密部分,这会导致较高的硬件开销,因为解密过程比加密过程的计算量大得多。相比之下,文献[18]中的计量方案只需要在芯片上加上加密模块来隐藏签名,该签名结合了PUF信息和用户特定的输入。 解密工作已交给芯片设计人员完成。 然后,将解密的结果传递给用户,用户将其存储在芯片上的非易失性存储器中,从而使授权用户可以解锁电路。 为了避免由于XOR 门的引入而影响组合路径的时序,在文献[19]中提出了一种新的基于锁定扫描单元的主动式IC 计量技术。
文献[20]中提出了一种基于总线的集成电路保护方法。 该方法通过与中央总线的干扰来锁定设计,从而防止在没有正确密钥的情况下使用IC。 芯片和设计设备之间共享的密钥和组合逻辑接口用于同一芯片中的多核连接和接口。它的应用仅限于总线设计。 Huang 等[18]提出受保护的设计在资源受限的情况下实施认证方案,它仅使用加密部分而不是两个解密部分[16-17]。尽管文献[17]和文献[18]中的方案都将锁定放置在非关键路径中,但定时的累积延迟可能会影响关键路径延迟。 文献[21]中的工作建议在芯片中引入一个特定的可编程部分,该部分对制造商而言是透明的,并且只能使用钥匙来激活。 显然,由于在专用集成电路(ASIC)的应用中引入了可编程组件,因此增加了工艺和掩模开销。
所有这些外部主动计量技术都引入了物理不可克隆技术(PUF)设计来生成用于解锁设计的密钥,并且使用非对称加密模块对密钥进行加密,以便只有设计者才能检索基于PUF 的密钥。 但是,加密模块通常会产生较大的面积开销,并且由于容易将加密模块标识为完整性,因此可以绕开该模块,这使得基于PUF 的密钥容易受到攻击。
在本文中,对大多数现有的IC 计量方法进行了回顾和评估。 被动式的计量方法在实际应用中有很大的局限性,因为它不能防止过度生产的芯片投入应用。 主动式的IC 计量技术为有效控制芯片的后处理,但是,内部和外部主动式的IC 计量技术在鲁棒性和设计开销方面均存在一些弱点,因此亟需一种更加安全和低开销的主动式IC 计量技术来控制芯片后端制造保护设计者的知识版权。 对现有IC 计量技术的充分了解,可以为后续的研究提供方向,具有一定的现实意义。