论文部分内容阅读
集成电路(ICs)已广泛应用于工业生产和人们的日常生活。IC的非法复制与非法传播问题也日趋严重。伪造的芯片不仅给芯片设计者带来了巨额的经济损失,而且,当一些敏感芯片流落到黑客手中时,一个国家的安全将面临巨大威胁。如何有效保护芯片设计者的知识产权(IP)是我们必须解决的问题。作为IC的一个安全要素,物理不可克隆函数(PUF)已被广泛应用。PUF函数将器件特征参数(如在制造过程中基本物理局限引起的阈值电压Vth和沟道长度Leff)的随机变化转换为电路级参数(例如电流和延迟),从而生成一组独特的随机数据,称作激励-响应对(CRPs)。通过输入相同的激励,PUF结构可以生成独特的响应,该响应可以用作芯片独一无二的密钥。现有的PUF按照实现原理可以分为存储型PUF和延迟型PUF。存储型PUF主要由两个逻辑稳定但状态不同的逻辑单元构成,在上电或复位时会它们会通过竞争达到一种稳定状态。存储型PUF主要包括静态随机存储器(SRAM)PUF和蝴蝶PUF。但由于设计单元参数的不完全对称,存储型PUF往往会出现某些响应信号明显偏向1或0的特点,这会降低PUF的随机性。延迟型PUF基于相同信号在对称路径中分别传输时的延迟不同而实现。延迟型PUF主要以仲裁PUF和环形振荡器PUF为代表。现有的大部分延迟型PUF设计都独立于原有设计实现。这样不仅会增加电路设计的开销,而且独立的PUF结构易被攻击者发现。本文提出一种复用并行扫描链结构实现的延迟型PUF设计方案。该方案中,同一输入信号同时输入并行扫描链的的两个对称的扫描单元,输出信号的快慢通过对称的SR锁存器进行鉴别,最终的结果将生成1位PUF响应。两个扫描单元分别位于两条子扫描链上的对应位置,扫描单元的输入信号需与扫描单元原始存储信号相反,这样,扫描单元输出信号会产生一个从‘0’到‘1’或从‘1’到‘0’的信号跳变。通过比较两个信号跳变发生的先后,得到1比特PUF响应。方案引入对称的SR锁存器作为仲裁器,用于比较信号到达的先后。对称的或非型SR锁存器和对称的与非型SR锁存器分别用于检测‘0’到‘1’信号跳变和‘1’到‘0’信号跳变的快慢。与现有的基于单扫描链的PUF设计方案相比,该基于并行扫描链的PUF设计方案避免了引入高频时钟电路设计,同时因为复用了电路原有设计,降低了PUF设计引入的面积开销。该PUF设计方案已在XILINX Virtex-5(V5)FPGA板上实现。V5中的1个SLICE资源可用于实现1个PUF比特生成电路。128比特PUF共需要128个SLICE,即64个CLB(一个CLB包含两个SLICE)。实验中共获取了100组PUF响应,基于这些实验数据可计算出该PUF的独特性达到49.86%(理想情况50%);经美国国家标准与技术研究院提供的NIST随机性检测分析,该PUF设计具有高于97%的随机性(理想情况100%)。而在不同环境条件下,比如温度或电压变化的情况下,PUF的可靠性均大于90%(理想情况100%)。目前的大多数集成电路都引入了扫描链设计以提高电路的可测试性,从而提高后端制造测试的效率。但是,扫描链本身是一把双刃剑。攻击者可以借由扫描链来获取加密芯片的内部机密信息。在典型的扫描旁路攻击中,正常工作模式下,攻击者给加密芯片输入一些恶意明文,加密芯片执行加密操作从而得到加密中间结果,加密芯片随后被切换到测试模式下,扫描链输出加密中间结果,而后,攻击者可以通过分析加密中间结果逆推密钥。人们通常采取“锁和钥匙”的机制来抵御扫描旁路攻击。该机制给扫描链设计加了“锁”设计,在使用扫描链进行测试之前,用户必须输入正确的钥匙,解锁扫描链。如果钥匙错误,那么扫描链输出的数据就是混淆的数据。在该“锁和钥匙”机制中,钥匙的安全存储是需要考虑的问题之一。另一方面,如果同一批芯片共享同一解锁钥匙,那么一旦一个芯片的钥匙被破解了,一批芯片都不安全了。因此,有必要实现“一块芯片一把钥匙”的机制。如果用硬件设计来实现钥匙,那么每块芯片都要有不同的掩膜设计,这就造成了流片的高成本。如何保护正确的钥匙信息,如何为每块芯片分配一个独一无二的钥匙,是基于“锁和钥匙”机制的安全扫描链设计中急需解决的问题。此外,芯片在出厂前,总是需要经过制造商的测试,如果解锁扫描链的钥匙总是需要先发给制造商以便测试,那就造成了钥匙外泄的风险。如何防止钥匙信息外泄而又保证制造商可以进行正常测试,也是需要解决的问题。为了解决上述问题,本文提出了一种新的安全扫描设计方案。该方案中,PUF电路用于为每块芯片生成独特的钥匙。在芯片生产出来之后,扫描链设计并未上锁,制造商可以使用扫描链来进行正常测试。之后,芯片交由设计人员,PUF被激活用于为每块芯片生成独特的钥匙,PUF的响应信息将通过熔丝-反熔丝结构被固化在电路设计中,这样,即使环境(如温度、电压等)发生变化,基于PUF的钥匙信息也将保持不变,从而克服了PUF可靠性不足的问题。加锁设计通过在并行扫描链的一些特定扫描单元附近插入异或门实现。这些异或门的输入由引入的移位寄存器(SR)来控制。当用户向SR中输入正确的钥匙信息,扫描链上解锁,可以正常工作。否则,错误的密钥将导致扫描单元的输出被随机混淆。基于PUF的钥匙不能从设计中直接获取,它只能由芯片设计者在输入特定的测试向量时,通过观察输出响应与原始正确输出响应的不同,实现PUF钥匙的逆推。该安全设计方案,使用PUF实现了为每块芯片生成独特的钥匙;由于PUF设计复用原有设计的并行扫描链实现,因而引入的开销低。PUF钥匙信息只有芯片设计人员才可以提取,芯片的制造厂商无法获取,从而不能泄露钥匙。由于安全设计而引入的额外设计只是由简单的逻辑门组成,可以通过内建自检(BIST)进行测试。安全设计不会影响原始设计正常操作和原始设计可测试性。另外,该安全扫描设计方案还可以保护加密芯片抵御所有已知的扫描旁路攻击,如穷举性攻击、试错法攻击、TMOSA攻击等。而该安全扫描设计引起的额外开销不足1%。在本文的工作中,提出了通过复用并行扫描链实现PUF设计的方案,并实现了将这种PUF设计引入安全扫描设计中,为每块芯片提供一把独特的钥匙,该安全设计在安全性和设计开销方面都有明显的优势。在未来的工作中,将探索将PUF设计加入IC主动计量方案中,为每块芯片提供一个独特的密钥。在这项工作中,如何保证PUF产生的密钥的稳定性,以及如何保证生产厂商违规多生产的芯片不能正常工作将是未来工作的重点。