论文部分内容阅读
随着人们对信息安全的重视,以及移动支付、智能家居、可穿戴设备等应用场景的兴起,用于身份验证和信息加密的加密芯片在电子设备中的应用越来越广泛。而如何保证芯片自身数据的安全,也成为设计这类加密芯片时必须考虑的因素。在交付之前,加密芯片必须经过充分测试以保证质量。为充分测试芯片,达到足够的故障覆盖率,需要向原有设计中插入额外的可测试性设计结构。扫描链是工业界最广泛使用的可测试性设计结构。在扫描链未被添加安全防护措施时,攻击者可以轻易地将扫描链用作侧信道提取加密中间结果,然后进行分析以破解密钥,这对芯片内数据的安全造成了极大威胁。目前已提出的抵抗基于扫描的侧信道攻击的方案并未能够同时保证芯片的可测试性和安全性。本课题为解决安全可测试性设计中可测试性与安全性的共存问题,提出了利用利用密码散列函数对测试响应进行后处理来阻止基于扫描的侧信道攻击的方案。在原有的扫描设计中,测试响应在捕获之后直接由扫描结构移出,攻击者可以直接获得测试响应,并通过对测试响应的分析破解原本应当保密的信息。而在本课题提出的方案中,通过增加后处理电路,测试响应首先经过一个扩展函数来修改其中的部分位,并且被添加冗余位。然后,扩展后的测试响应会经过密码散列函数进行处理生成散列值。原有的测试响应不再输出,测试结果以散列值的形式呈现。经过分析可知,在对电路进行测试时,散列值依旧可以用于诊断电路的故障,因此测试依然能够正常进行,而攻击者无法根据散列值恢复原有的测试响应,因此无法进行对测试响应的各种分析。根据对现有文献的调研结果,目前对于一些密码散列函数尚未存在有效的攻击方式,因此该方案可以有效阻止基于扫描的侧信道攻击。同时,本课题也对该方案进行了具体的硬件实现。在硬件实现中,为了保证密码散列函数模块的原有功能,测试响应将通过总线传送至密码散列函数。我们选用的总线协议是目前唯一开源且免费的片上互联协议WISHBONE,采用的密码散列函数为SHA家族中最新的SHA3算法。通过设计相应的接口电路,使测试数据按照总线协议的要求发送。为了简化接口电路的控制逻辑,提高测试数据的采集效率,我们通过详细的分析和推导,提出了确定扫描链上测试数据采集位置的方法。由于优化后的接口电路的结构比较简单,可以采用完全的时序测试,此情况下攻击者无法控制接口电路与密码散列函数之间的握手信号的情况,破解密码散列函数的输入最多需要尝试2512次,被暴力破解的概率极低。硬件实现的结果证明,与目前已有的方案相比,本课题提出的方案在具有良好的安全性与可测试性的同时,开销较低。因此,该方案为加密芯片的可测试性设计提供了参考,在理论及工程应用上都具有较好的价值。