论文部分内容阅读
可测试性设计技术已经广泛地应用于集成电路测试领域以提高测试效率。在可测试设计技术中,扫描设计是最重要的实现手段。扫描设计可以有效提升被测电路的可控制性和可观察性并且使得更高效的组合自动测试向量生成工具为时序电路生成测试数据从而加速测试过程。但是扫描设计却是一把双刃剑,它在为被测电路提供高可测试性的同时也引入了安全性问题。尤其是对于加密芯片而言,扫描链已经被作为一种侧信道工具用以探测芯片内部的状态从而破解加密密钥。为了有效抵抗扫描旁路攻击,人们已经提出了很多相应的安全扫描设计方案。其中,基于扫描乱序的安全设计是一种重要的实现形式。本文针对这种设计,从一次有效的扫描旁路攻击是否依赖于某种特定的扫描测试顺序的角度进行了安全性分析。通过分析可以发现,扫描旁路攻击的有效实施并不依赖于此。本文以最近提出的随机乱序扫描设计方案为例详细介绍了攻击者如何在扫描乱序的情况下有效破解密钥。在此之后,本文指出扫描旁路攻击不依赖于某种特定扫描测试顺序,基于扫描乱序的设计方案也不再安全。本文提出了两种可以有效抵抗所有已知扫描旁路攻击形式的安全设计方案。第一个方案主要机制是通过阻断加密密钥参与加密操作从而防止加密信息的泄露。该方案在测试模式下时会实施密钥阻断操作,并且在检测到电路从正常工作模式切换到测试模式时会将所有敏感的信息进行复位清除。第二个方案通过扰乱扫描数据以达到安全设计的目的。在该方案中,一部分可扫描寄存器的工作状态受控于一个额外插入的移位寄存器。如果该移位寄存器不能够得到正确的密钥配置,那么在测试模式下时它所控制的那些可扫描寄存器将会工作于正常工作模式的状态而非测试模式。在这种情况下,扫描输出的数据不仅包含一些正常扫描单元中的状态还包括有这些处于“正常工作模式”下的扫描单元从组合电路部分捕获的数据。显然,这些观察到的混乱数据将无法用于破解密钥。本文所提出的两种设计方案都可以有效抵抗已知扫描旁路攻击,且具有引入面积开销小、对可测试性没有影响的优点。在提出的基于扰乱扫描输出数据安全设计方案中,所有修改过的特殊扫描单元都是由插入的移位寄存器中某一位数据单独控制。这一特点使得“分而治之”的攻击方法成为一种可能。基于此,本文提出了可以有效破解该安全设计方案的攻击方法。为了有效抵抗这种全新的攻击形式,本文提出了一种改进型的扰乱扫描输出安全设计方案。在该方案中,移位寄存器中任意一位数据的错误都将导致整个移位寄存器处于反馈循环状态。这样就从根本上遏制“分而治之”的破解方法。本文研究了现有的扫描旁路攻击和安全扫描设计方案的原理和具体实现,并且对其优缺点进行了比较。本文对基于扫描乱序的安全设计方案进行了分析并提出了两种可以有效抵抗所有已知扫描旁路攻击的安全扫描设计。针对初始扰乱扫描输出数据安全设计的不足,本文提出了一种全新的攻击方法。在最后,为了有效抵御这种最新的攻击方案,本文提出了一种改进型的扰乱扫描输出安全设计方案。在本文中所提出的安全设计方案均引入了很小的面积开销,并且对电路的可测试性不造成影响。以后的研究工作将会围绕如何使得每个芯片独享自己的安全密钥以及扫描安全设计与物理不可克隆函数结合的实现展开。