论文部分内容阅读
由于集成电路(IC)设计越来越复杂,人们在集成电路领域中投入了越来越多的资金和人力。非法复制和传播IC的风险也在逐渐增加。因此,“锁和钥匙”的机制通常被提出用于保护电子芯片的安全。只有输入正确的用户密钥,电路才能正常工作。因此,密钥被用于多种应用中。但这带来了两个关键性问题。一个是如何保证存储的正确密钥的安全性。正确的密钥通常存储在非易失性存储器(NVM)中,但该存储器容易受到物理攻击,如:微探测,激光切割以及旁路攻击等。为了保证存储密钥的安全性,通常会使用硬件安全熔丝的技术方法。但是,这无疑会增加额外的硬件开销。因此,安全存储正确的密钥是一个需要解决的问题。另一个关键性问题是,“锁和钥匙”的结构被加入到芯片中,一批相同功能的芯片将分享着同一个密钥。所以,当一块芯片的密钥被意外破解后,这些具有相同密钥的同一批芯片将不再安全。如果为每个芯片分配唯一密钥,那么对于具有相同功能的每个设计将需要设计不同的硬件结构,这样却容易导致不合理的高成本。为了解决这些问题,物理不可克隆函数(PUF)作为有效的安全原语被提出。它是将芯片生产制造过程中不可避免的微小差异转化为数字信息。这样的信息通常具有很好的随机性和独特性,常常应用在密钥生成、知识产权(IP)保护以及系统认证的场景中。在这些应用场景中,由于没有人能够提前预知PUF信息,PUF信息只能在制造完成后来获得。但是,如果任何人都能简单地提取出PUF信息,这就违背了将PUF作为安全密钥的初衷。因此,PUF信息应当只能由设计者唯一提取。在这样的情况下,芯片设计者应当引入额外的硬件开销来实现PUF信息的提取。如何以合理的成本安全地提取PUF信息是关键所在。由于制造工艺的复杂性,IC在制造中的故障是不可避免的。IC中的故障可以与系统中固有故障相互混合,使故障检测更加复杂且昂贵。为解决这个问题,可测试性设计(DfT)被广泛的采用在IC设计中。而扫描链作为典型的DfT技术通常被用于测试。通过在设计时添加扫描链结构,故障IC可以被有效地筛选出。全扫描设计使得被测电路(CUT)有着很好的可控性和可观察性,以及高的结构缺陷的故障覆盖率。并且使用现代扫描结构(如多个扫描链)可以显著地缩短测试时间。由于扫描链有很好的可控制性和可观察性,它能够有效地被用于PUF信息的提取。另外,扫描链结构存在于原始设计中,通过复用扫描链结构也能够大大减少设计的成本开销。本文提出了一种基于扫描链提取PUF信息的新方案。作为芯片设计的拥有者,设计者能够适当修改扫描链,使得部分扫描单元能够被PUF信息控制。在本文中,选中的部分扫描单元的测试控制端口(tc)增加了一个与门与或门串行的结构。该结构实现了PUF信息与扫描链中特定单元之间的连接,使得PUF信息能够传输至扫描链中并且被提取。在整个提取过程中,一个特定的测试向量被输入至扫描链中,在捕获阶段完成后的一个时钟里,将PUF信息通过与门和或门串行的结构输入至扫描链中,使得特定测试向量下的输出响应被混淆。最后,比较混淆输出和正常输出之间的差异来推导出PUF信息。只有设计者知道整个电路的设计细节,而其他不知道设计细节以及没有特定测试向量的用户只能推导出部分的PUF比特位。由于用于提取PUF的扫描链是电路中原始设计中的一部分,提取PUF信息的设计因此不会被轻易移除,并且其开销可以忽略不计。由于特定测试向量和相关设计细节除设计者之外的其他人都是未知的,因此攻击者找出PUF信息的概率足够低。这种提取PUF信息的方案适用于安全扫描设计或其他对安全敏感的场景。本文提出的新方案应用于流水线型的高级加密标准(AES)芯片。原始的AES设计由DC综合。然后,使用DfT编译器将扫描设计插入到设计中。最后,在扫描设计周围插入用于提取PUF信息的所提出的结构,以构建最终设计。对于PUF比特为64位和128位时,本文提出的设计增加的额外开销分别为186和357个标准与非门的个数,占AES设计的面积开销分别为0.09%和0.17%。这与用加密模块来提取密钥的方法相比,开销小了很多。由于增加了扫描链结构,被测电路的内部状态能够不受限制且易于访问。因此,扫描链也成为攻击者通过现场测试窃取敏感信息(如密码芯片的加密密钥)的可利用的侧信道。据报道,基于扫描链的攻击已经破解了一些私钥算法的片上实现,如数据加密标准(DES)、AES和基于椭圆曲线加密(ECC)的公钥密码系统等。为了阻止基于扫描链的侧信道攻击,熔丝被添加到扫描结构中并在制造测试后被熔断,使其扫描可测试性失效。单独的内建自测试(BIST)也被用来限制被测电路的可控制性和可观察性。然而,这些对策要么完全使现场测试失效,要么严重限制其故障诊断,这样为了抵抗扫描旁路攻击而影响电路原有的可测试性是不值得的。为了确保电路的可测试性,现有对策通过在扫描单元周围插入逻辑“锁”来防止将扫描链用作侧信道。没有正确测试密钥的攻击者只能观察到来自扫描链的不稳定数据。为了解决一批相同功能的芯片共享同一密钥容易被批量攻击和存储在非易失性存储器中容易受到物理攻击的两个问题,PUF作为密钥被引入到安全扫描链中。PUF为每块芯片产生一个独特的密钥从而实现“一块芯片,一个密钥”的目的。在传统的方法中,PUF密钥在生产制造完成后交付给合法用户并且将其输入至芯片中来解锁扫描链。但是,PUF能够被安全提取也是一个值得关注的问题。由于制造厂商假定被委托解锁制造的芯片并进行生产测试,因此代工厂或合同中测试工程师存在泄漏测试密钥的高风险。如果测试密钥被非法传递给攻击者,那么加密芯片将不再安全,“锁和密钥”的机制也将没有任何作用。在本文中,我们将PUF信息安全提取的方案引入至安全扫描链应用中。PUF信息作为测试密钥实现了加锁的扫描设计。这样的设计使得只有其设计者可以从所选测试向量中解码测试密钥,而无需直接读出PUF响应。方案中的PUF设计复用原始设计中的并行扫描链,并且PUF响应仅产生一次并通过熔丝固化到电路中。尽管一批有着相同功能的芯片共享一个共同的扫描保护电路,但是PUF响应的唯一性决定了每个测试密钥仅对一个芯片的加锁扫描有效。为防止PUF信息被非法泄露,我们提出的方案中,生产者可以通过解锁的扫描链有效地执行制造测试并且没有测试时间损失,现场测试则只能由具有有效测试密钥的授权用户在设计者锁定扫描链之后执行。设计者通过输入特定的测试向量并将PUF一次性编程至设计中来提取PUF信息。而只有从设计者处得到正确测试密钥的合法用户才能对芯片进行正常测试。错误的测试密钥将动态地扰乱扫描链的测试向量和输出响应。通过分析,所提出的解决方案对所有已知的基于扫描的侧信道攻击是安全的。由于PUF信息的安全提取被应用在安全扫描链中,PUF信息只能生产一次并且进行固化。因此,对于上文中提到的非设计者能够部分提取PUF信息的情况将不复存在。攻击者只能通过穷举式猜测PUF信息位,并且猜对的概率极低。对于64位和128位的PUF,猜对的概率分别为5.42E-20和2.94E-39。并且,由于该方案中的PUF结构以及测试密钥认证的密钥寄存器(KR)结构都是复用了电路中的原始设计扫描链结构,因此增加的安全性所产生的开销小到可以忽略不计。在未来的工作中,我将所提出的PUF信息安全提取的方案应用在主动式IC计量方案中。主动式的IC计量方法为设计者提供了一个主动的方式来加解锁芯片。它通常是使用非对称的加密模块来对每块芯片进行PUF信息的传递。然而,加密模块不仅会给原始设计带来很大的面积开销,还对PUF信息的安全性带来隐患。本文提出的PUF信息安全提取方案能有效地克服上述问题。未来的工作重点将会是如何将PUF信息提取方案引入至IC计量中,并且保证方案的实际可行性。