论文部分内容阅读
二十世纪八十年代之前,多数集成电路企业采用IDM(integrated design and manufacture)商业模式。这种模式下,IDM厂商负责集成电路(IC)设计、制造、封装测试等各个环节,甚至也会延伸到下游电子终端。然而随着芯片微缩以及加工技术和设备成本的飞涨,开发先进制程技术的成本也越来越高,许多IDM厂商无法通过投资生产线实现收益。随着产业分工的进一步细化,无晶圆厂和无生产线设计公司的联合成为集成电路产业发展的一种新的模式。在新的模式下,设计人员仅负责设计部分,铸造厂仅负责制造,封装或测试的其中一个环节。二者的合作不但可以分担高昂的研发先进工艺所需要的费用并降低所面临的风险,而且缩短了交货周期并提高了产品质量,为IC设计公司提供了更容易进入市场的机会。但这也会在设计公司和制造公司之间造成不平衡的关系。制造商可以获得设计者的布局和网表,但是设计者对生产制造过程后端的细节却一无所知。这种情况下设计公司将IC外包给不受信任的代工厂,可能会导致过量生产。过量生产一方面使得IC所有者蒙受巨大的经济损失。据报道,由于过量生产,IC设计商每年损失数十亿美元。另一方面还会引起一系列安全问题。尤其是当芯片中含有敏感信息时,芯片的过量生产可能会对相关领域(例如金融,医疗,军事等)带来灾难性的影响。因此,如何更好地保护设计者的知识产权,防止IC的过量生产成为我们亟待解决的问题。为了解决IC过量生产的问题,IC计量技术应运而生。IC计量中设计人员通过采用一系列主动或被动的措施来精确计数所生产的芯片的数量,实现对制造芯片的有效控制。根据实现机制的不同,可以将IC计量技术分为被动式和主动式两类。被动式IC计量技术尽管可以检测到非法芯片,但不能防止盗版芯片进入灰色市场和正常使用。因此本文主要研究主动式IC计量技术。主动式IC计量方案使用物理不可克隆函数(PUF)为每个芯片分配唯一的签名,并为设计人员提供了一种方法,可以远程启用/禁用或锁定/解锁设备以锁定电路。目前,基于延迟的PUF设计被广泛研究。然而现有的基于延迟的PUF设计的可靠性和可重复性并不理想。这主要是因为PUF的输出取决于生产过程波动引起的延迟不一致。当由环境因素引起的延迟变化大于过程波动时,PUF的输出响应将发生相应变化,从而导致PUF可靠性差。PUF的可靠性直接影响认证过程。现有研究中主要包含两种可靠性提高方法,一种是使用纠错码(ECC)来补偿PUF中的位错误。但是ECC技术并不经济,因为它需要比PUF位大得多的辅助数据。另一种方法是筛选方法,这种方法直接将不稳定的PUF位抛弃,但是这种方法会降低PUF响应的熵。因此亟需研究一种低开销的可靠性PUF设计。计量技术中的逻辑锁定设计用来混淆电路的功能,使得未经授权的铸造厂不能盗版电路或直接分析原始设计。只有当将正确的钥匙输入到锁定设计中并与电路中的原始PUF响应进行比较时,芯片的功能将正常恢复。组合逻辑锁定通过在电路设计中添加额外的门来实现逻辑混淆。但是,这种加锁方案无法抵御基于满足性(SAT)的攻击,因此在安全性上存在漏洞。为了有效抵御SAT攻击,有人提出对组合逻辑的输入信号进行混淆,增加SAT算法单次迭代的时间。例如,使用AES加密模块混淆输入,但这会引入很大的面积开销。另一方面可以增加SAT算法的迭代次数。通过添加Anti-SAT模块防止SAT攻击,然而这种方式容易遭受移除攻击。如何提高逻辑锁方案抗SAT攻击的安全性也是本研究的重点。本文针对PUF可靠性不足的问题提出了一种基于SR-latch的可靠的PUF设计。对于基于延迟的PUF设计来说,通过对比通过两个具有相同结构的对称的逻辑单元之间的延迟来生成随机响应。由于结构简单和功耗低,SR锁存器已成为我们关注的重点。理论上,当SR锁存器的两个对称的输入信号同时从禁止态向相反状态跳转时,SR锁存器的输出是随机的。当两个输入端的信号延迟差异|ΔT|大于门的传播延时t PD时,SR的输出取决ΔT,此时的输出值为稳定的输出值。当|ΔT|<t PD时,输出存在三种可能的状态,分别是稳定的‘0’,稳定的‘1’和亚稳态。利用SR锁存器的输出随机特性,本文提出了基于SR-latch的PUF设计。由于SR-latch的亚稳态行为会影响设计的可靠性,为了降低亚稳态产生的概率,我们将两个具有相同结构的逻辑电路连接到SR锁存器的两个对称的输入端,以增加两个对称信号之间的延迟差。实验中,我们选用扫描触发器(SFF)作为输入逻辑电路,在引入较小面积开销的同时,减小SR产生亚稳态的概率。信号经过SR锁存器后,通过多次采样电路对SR的输出进行多次采样,以鉴别产生亚稳态的锁存器。对于此类锁存器,其输出将由两个计数器的值进行异或操作的输出决定。其中一个计数器表示该锁存器在所有锁存器中的顺序,另一个计数器表示该锁存器在所有产生亚稳态的锁存器中的序列信息。提出的PUF设计已在Xilinx Virtex-5 FPGA板上实现。FPGA中的1个CLB可以生成2位PUF响应。使用70个CLB来生成128位的PUF响应值。实验收集了100组的128位的PUF响应,独特性为50.324%(理想值为50%)。根据美国国家标准技术研究院(NIST)提出的统计测试套件对生成的PUF响应进行随机性测试,提出的PUF设计的平均随机性高于99%(理想情况100%)。当温度在25℃至85℃之间变化时,电压为1 V的情况下,测得的设计的可靠性始终为100%。通过对12800个SR锁存器的输出进行100次重复测量,得到PUF的可重复性始终为100%。提出的设计仅占1.72%的查找表(LUT)和0.89%的寄存器,因此,仅引入了很小的区域开销。针对组合路径上的简单的逻辑锁定设计易受SAT算法影响的问题,本文进行了相关探索。由于扫描设计可以为电路提供良好的可控性和可观察性,因此多种基于扫描链的攻击方法被提出以获取电路中的敏感信息,使得芯片不再安全。在这项工作中,通过引入双重锁定设计来锁定扫描链,防止攻击者从扫描链中获取正确的信息。为了防止未经授权的制造商在扫描设计的正常工作模式下在没有正确密钥的情况时接收正确数据,我们通过在N个随机选择的扫描单元之前添加了2选1选择器,对输入到SFF的普通数据进行混淆处理。第一重加锁设计实现了对时序逻辑的锁定方案,以便在没有正确密钥的情况下,SFF在正常工作模式下接收到的是错误的数据。然而,仅在输入端加锁的方法的安全性存在一定漏洞。攻击者可以根据已有的测试数据和错误的输出进行比对,逆推出正确的钥匙。因此,还需要插入第二重锁。为了阻止不受信任的第三方从扫描输出正常访问扫描数据,同时实现PUF响应的安全提取,本设计将混淆逻辑插入到N个随机选择的扫描单元的输出中(选择用于顺序锁定的扫描单元可在此处重复使用)。混淆逻辑由一个XOR门和一个MUX单元构成,在没有正确的解锁信息输入时,输出的数据是混淆的数据。双重锁定设计不仅可以弥补第一重锁的安全性的不足的问题,还可以在实现PUF响应的安全性提取。只有设计者才能通过设计的细节,根据输出的混淆的PUF信息推导出正确的钥匙。该方法还有效限制了内部扫描单元的可控制性和可观察性,有效防御SAT攻击。除此之外,我们的逻辑锁定方案也可以防止逆向工程同时还可以抵御典型的攻击方式,如暴力攻击,旁路攻击等。我们将提出的PUF设计和逻辑锁定方案应用于外部主动IC计量中。PUF设计为每个芯片提供一个独一无二的ID。设计者在得到PUF响应之后,结合设计的细节,将正确的解锁钥匙传递给受信任的实体,在加载正确的密钥后,电路将释放扫描路径上的锁,使用者可以正常使用扫描设计进行测试和工作。提出的可靠的外部主动IC计量方案具有较高安全性,并且整个设计引入的面积开销相当于3660个与非门。在现有的IC计量方案中,提出的计量方案的面积开销都是最小的。