基于扫描混淆的加密芯片安全测试方法与流程

文档序号:17437693发布日期:2019-04-17 04:20阅读:228来源:国知局
基于扫描混淆的加密芯片安全测试方法与流程

本发明属于硬件安全领域,更具体地,涉及一种用于保护加密芯片免受扫描攻击的安全测试结构。



背景技术:

随着信息化和数字化社会的发展,信息安全和保密变得越来越重要,加密算法得到了广泛应用。无论高端安全处理器还是低端智能卡,为了提高数据的吞吐量,加密算法通常利用硬件模块来实现。加密算法对错误是零容忍的,因此加密硬件需要进行严格的测试。

扫描设计是一种广泛应用的集成电路可测试性设计技术,它通过直接控制和观测内部触发器的状态来增强电路的可测试性,把时序电路的测试问题转换成了组合电路的测试问题,从而降低了测试的难度。扫描设计在每个常规触发器的输入端添加了一个2选1的数据选择器(mux),把它转变成了扫描触发器。每个扫描触发器有两个可选择的输入源:原常规触发器的数据输入(di)和由其它扫描触发器驱动的扫描输入(si)。电路的测试控制信号(tc)用作mux的地址输入。通过把扫描触发器的输出端串接到其后续扫描触发器的si,可构造出移位寄存器(也就是扫描链)。把第一个扫描触发器的si绑定到芯片的一个输入引脚上,并把最后一个扫描触发器的输出绑定到芯片的一个输出引脚上,就可以通过芯片的输入输出引脚控制和观测电路的内部状态。

扫描设计是一把双刃剑。在加密芯片中插入扫描链,提高了它的可测试性,保证有故障的芯片能被筛查出来。但是扫描设计给密码芯片带来了安全隐患。有了扫描链的帮助,攻击者可以在芯片输入端加载预先设计好的明文,然后在扫描链的输出端观察加密的中间状态。最终根据已知明文、相应的中间状态以及加密算法的知识来破解密钥。据报道,des(数据加密标准)芯片、aes(高级加密标准)芯片和ecc(椭圆加密算法)芯片等都可以被基于扫描的侧信道攻击所破解。

现有专利中,没找到与基于扫描混淆的加密芯片安全测试方法相似的专利发明。



技术实现要素:

针对现有扫描技术的缺陷,本发明的目的在于提供一种安全的扫描设计方案,在不影响电路性能以及测试质量的前提下,克服基于扫描的侧信道攻击。

为实现上述目的,本发明提供了一种基于扫描混淆的可测试性设计方案。这种方案与常规的扫描设计相似的是,加密芯片可工作在两种模式:功能模式和测试模式。与常规的扫描设计不同的是,当加密芯片工作在测试模式时,只有输入正确的测试密码,扫描操作才能正常进行,否则在扫描链输出端观测到的中间状态会被混淆。

在常规扫描设计的基础上,本发明的基于扫描混淆的测试结构引入了密码寄存器,用来存储扫描密码。这些扫描密码用于控制一部分存储秘密信息的扫描单元。进入测试模式时,如果输入的寄存控制密码正确,该密码寄存器可以利用原始输入端口并行加载扫描密码。如果扫描密码也是正确的,一个时钟周期后,密码寄存器的时钟会被锁定为常数,正确的扫描密码被一直保存在寄存器中。在接下来的数据扫描期间,扫描链能够正常移入和移出数据。

进入测试模式时,如果输入了错误的寄存控制密码,则不能输入扫描密码。如果输入了正确的寄存控制密码和错误的扫描密码,对于受错误扫描密码位控制的扫描单元,其移入的值并非前一个扫描单元的值(实际上是被混淆的值)。而且,移位寄存器的时钟将始终处于激活状态,寄存器一直循环移位或者不断从输入端获取值,寄存器的状态不断变化,受寄存器控制的扫描单元的工作状态也会动态地发生变化,扫描数据被动态地混淆,扫描攻击是不可能进行的。

通过本发明所构思的以上技术方案,与现有技术相比,具有以下的有益效果:

1、能够克服现有的各种基于扫描的攻击,同时允许执行在线测试和离线测试、固定型测试和时延测试等所有类型的测试,对芯片测试没有任何影响。

2、本发明提出的安全测试结构,没有增加额外的输入、输出信号,对电路设计的影响较小,且不易被攻击者所察觉,安全性能高。

3、在本发明所构思的安全测试结构中,扫描密码在进入测试模式时通过原始输入端加载进入电路,不需要增加额外的测试时间,也不影响在测试模式下通过原始输入端加载测试数据。

4、面积开销低。本发明所构思的可测试性设计结构在现有可测试性结构的基础上仅增加了一个密码寄存器及相关逻辑(包括一个2位的计数器、一个d触发器、少数的逻辑门),增加的面积开销较小。

5、引入的额外硬件逻辑不在功能路径上。在功能模式下,传播延时没有任何改变,因此电路的性能没有降低。

附图说明

图1是基于扫描混淆的加密芯片安全测试结构示意图。

具体实施方式

下面结合附图对本发明进行详细描述。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明的安全扫描方案可通过在常规扫描结构的基础上加入了移位寄存器(r1)、一个2位的计数器,一个d触发器(d1)以及少数的逻辑门(g1~g5)来实现。对于基于块的加密算法(例如aes加密算法),其硬件实现都包含至少128位的明文输入端。在芯片上电或复位后第一次进入测试模式时,本发明的安全扫描方案在第一个时钟周期利用明文输入端加载测试密码,在第二个时钟周期以后利用明文输入端加载测试数据。

当电路输入信号tc为逻辑0时,di进入扫描单元,电路处于功能模式;当tc为逻辑1时,电路处于测试(扫描)模式。对于密码寄存器r1中的每个单元,随机选择q或端控制一个扫描单元的扫描输入值,这通过在每个扫描单元的扫描输入端再增加一个数据选择器并由q或控制该数据选择器的地址输入端(图中标记为se')来实现。在功能模式下,寄存器r1不影响扫描单元的捕获操作,本安全测试方案引入的硬件逻辑看起来是透明的,芯片能够正常工作。在功能模式下,由于tc=0,计数器的使能输入端无效,计数器的状态保持不变;g5的输出恒为逻辑1,因此寄存器r1时钟恒为逻辑1,r1状态也保持不变。在测试模式下,寄存器r1的状态将影响扫描链的移位操作。当se'为逻辑1时,前一个扫描单元的值能够移入下一个扫描单元;而当se'为逻辑0时,前一个扫描单元的值将丢失,移入下一个扫描单元的值是电路中某个结点在当前时刻的状态,扫描数据通过这种方式被混淆。

下面详细介绍测试模式的工作流程。

假定芯片上电时首先进行初始化(也就是复位,reset),电路中的触发器初始值为逻辑0,也就是说图1中的移位寄存器、触发器d1、计数器的初始状态(q1q0)都是逻辑0。

在芯片上电或复位后,首次进入测试模式(tc=1)时,因为初始的所以g3的输出为逻辑1,这时计数器的使能输入端(en)有效,计数器处于计数状态,在2个时钟周期内(上升沿触发)状态(q1q0)从00→01→10。当q1q0=10时变为逻辑0,逻辑门g3输出为逻辑0,计数器处于保持状态,q1恒为逻辑1。此时逻辑门g4恒为逻辑1,触发器d1的时钟被锁定为常数(逻辑1)。在芯片上电或复位后首次进入测试模式时,在第2个时钟周期上升沿,触发器d1的时钟总能被锁定。除非芯片再次复位,否则触发器d1的时钟不能被解锁。

在芯片上电或复位后首次进入测试模式时,在第1个时钟周期,d1的状态为逻辑0,寄存器r1的时钟处于激活状态。寄存器中的每个存储单元输入端有一个数据选择器,这些数据选择器的地址输入端统一受逻辑门g1控制,g1的输入端由n位的明文输入端并随机插入非门来驱动。通过这n位的明文输入端加载的密码称为寄存控制密码(n位,1≤n≤127)。根据第一个时钟上升沿到达前实际加载的寄存控制密码,此时r1可有2种工作模式:移位和并行输入。

情况一:如果插入非门的输入端加载逻辑0值,未插入非门的输入端加载逻辑1值,我们称加载的寄存控制密码正确,此时g1的输出为逻辑1,寄存器r1将处于并行输入模式。为寄存器输入的值称为扫描密码。如果某寄存器单元的q端控制一个扫描单元的se',那么应为该寄存器单元输入逻辑1值,而如果q控制一个扫描单元的se',则应该输入逻辑0值。如果输入的扫描密码全部正确,逻辑门g2的输入端全为逻辑1,输出就为逻辑1;如果输入的扫描密码至少有一位是错误的,g2的输出为逻辑0。当时钟下降沿到达后,g2的值存储在触发器d1中,因为d1的时钟在下一个时钟上升沿会被锁定,d1的状态将保持不变。根据d1的状态,之后电路的工作情况可分为2种:

(1)如果d1的状态为逻辑1,寄存器r1的时钟将被锁定为常数(逻辑1),寄存器r1的状态保持不变。由于输入了正确的扫描密码,扫描操作能够正常进行。

(2)如果d1的状态为逻辑0,在测试模式下r1的时钟始终是激活的。①如果此后明文输入端加载的测试数据使得g1输出为逻辑0(概率为1-2-n),r1处于移位模式,受寄存器控制的扫描单元的se'时而为逻辑0、时而为逻辑1,扫描数据会被动态地混淆。②如果此后明文输入端加载的测试数据恰好使g1输出为逻辑1(概率为2-n),r1处于并行输入模式,其状态取决于相应输入端的测试数据位。如果这些测试数据位不与扫描密码完全一致(概率为1-2-128+n),受错误密码位控制的扫描单元无法移入前一个扫描单元的值,扫描数据被静态地混淆;而如果这些测试数据位恰好等于扫描密码(概率为2-128+n),扫描链能够正常移入和移出数据(概率为2-n×2-128+n=2-128)。

情况二:如果加载的寄存控制密码不完全正确,此时g1的输出为逻辑0,寄存器r1将处于移位模式。此时不能从外部端口输入扫描密码。寄存器r1的初始状态为全零,为了能够使r1出现非零状态,我们随机地选择一些寄存器单元的连接到一个下一个单元的输入端,并把寄存器单元连接成闭合的环,构建一个简单的非线性循环移位寄存器。在移位模式下,该移位寄存器能够从全零状态开始在多个状态间进行循环,并通过合理的设计使得这些状态不包括扫描密码。这样,第一个时钟上升沿过后,g2的值为逻辑0,当时钟下降沿到达后,逻辑0值存储在触发器d1中,因为d1的时钟在下一个时钟上升沿到达后会被锁定,d1的零状态将保持不变。在测试模式下r1的时钟始终是激活的。①如果此后明文输入端加载的测试数据使得g1输出为逻辑0(概率为1-2-n),r1处于移位模式,受寄存器控制的扫描单元的se'时而为逻辑0、时而为逻辑1,扫描数据会被动态地混淆。②如果此后明文输入端加载的测试数据恰好使g1输出为逻辑1(概率为2-n),r1处于并行输入模式,其状态取决于相应输入端的测试数据位。如果这些测试数据位不与扫描密码完全一致(概率为1-2-128+n),受错误密码位控制的扫描单元无法移入前一个扫描单元的值,扫描数据被静态地混淆;而如果这些测试数据位恰好等于扫描密码(概率为2-128+n),扫描链能够正常移入和移出数据(概率为2-n×2-128+n=2-128)。

测试密码被破解的概率与参数n的值无关。而n越小,扫描密码寄存器就越大,能够混淆的扫描单元就越多,但总的硬件开销也相对较大。权衡这2个因素,n的取值可以在64上下变化。

基于上述安全扫描设计方案的详细说明,其工作原理可以概括描述如下。如果攻击者不了解正确的测试流程、没有正确的测试密码,那么他就不能在芯片上电或复位后首次进入测试模式时,通过明文输入端加载正确的测试密码,从而在1-2-128的概率下不能给扫描链移入任意的值,也不能从扫描链输出端观测到扫描链真实的状态(实际观测到的是混淆的状态),基于扫描的非入侵时攻击实际上是不可能完成的。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1