边界扫描设计环境下一种安全的密码芯片可测试性设计结构的制作方法

文档序号:18198219发布日期:2019-07-17 05:59阅读:334来源:国知局
边界扫描设计环境下一种安全的密码芯片可测试性设计结构的制作方法

本发明属于芯片安全领域,更具体地,涉及一种保护密码芯片免受基于扫描的非入侵攻击的安全可测试性设计结构。



背景技术:

随着物联网、大数据等新兴技术的发展,信息安全和隐私变得越来越重要,密码算法得到了广泛应用。由于软件实现提供的数据吞吐率较低,且需要较多的计算资源,密码算法通常利用硬件模块来实现。加密算法对故障是零容忍的,因此加密硬件需要进行严格的测试。

扫描设计提高了芯片内部触发器的可控制性和可观察性,把时序电路的测试转化成了组合电路的测试,给集成电路测试带来极大便利,成为当今工业上广泛应用的可测试性设计技术。如附图1(a)所示,通过在输入端添加一个2选1的多路复用器,一个触发器就变成了内部扫描单元(internalscancell,isc)。isc有两个可选的输入源:数据输入(di)和扫描输入(si)。di是原触发器的输入,而si由另一个isc的输出驱动。移位使能信号(shift_en)决定选择di还是si。isc输出既是数据输出(do)也是扫描输出(so)。此外,由于通常情况下测试设备的数据通道是有限的,对一个输入/输出(i/o)端口数量众多的芯片进行测试是一个巨大的挑战。边界扫描设计成功地解决了这个问题,它为每个芯片i/o配备了一个边界扫描单元(boundaryscancell,bsc)。一个bsc由两个d触发器和两个多路复用器组成,如附图1(b)所示。作为输入的bsc,输入源di由芯片输入端口(chipin)驱动,数据输出do对应于内部逻辑的原始输入(pi)。作为输出的bsc,输入源di由内部逻辑的原始输出(po)驱动,数据输出do对应于芯片的输出端口(chipout)。传播到do的值由工作模式选择信号(mode_sel)决定。内部扫描链(或边界扫描链)是通过将isc(或bsc)的so与后续单元的si串联而形成的移位寄存器。把扫描链中第一扫描单元的si连接到芯片输入管脚,将最后一扫描单元的so连接到芯片输出管脚,就可以从外部访问扫描链。当mode_sel=0,shift_en=0时,芯片运行在功能模式。此时,无论bsc还是isc,do都由di直接驱动。当mode_sel=0时,芯片运行在测试模式下,该模式有三个操作相位:移位、更新和捕获。在移位阶段,shift_en=1,移位时钟脉冲应用于每个bsc和isc的时钟输入,通过扫描移位把测试向量移入扫描链,同时把测试响应移出扫描链。在仅针对bsc的更新阶段,通过向每个bsc的updateclock提供时钟脉冲,将存储在d1(称为捕获触发器)中的测试数据传送到d2(称为更新触发器)。此时,d2的状态传输到了bsc的do。在捕获阶段,shift_en=0,对每个bsc和isc的时钟输入施加一个捕获时钟脉冲,将di处的响应值捕捉到isc或bsc的d1中。

在密码芯片中插入扫描链,一方面提高了它的可测试性,保证了芯片的测试质量;另一方面也给密码芯片带来了安全隐患。借助于扫描链,攻击者可以在芯片输入端加载任意的明文,然后在扫描链的输出端观察加密的中间状态。最终根据已知明文、相应的中间状态以及加密算法的知识来破解密钥。aes(高级加密标准)是一种广泛应用的加密算法,据报道,aes芯片容易被基于扫描的攻击所破解。本发明的目的在于改进现有的可测试性设计结构以保护aes芯片免受基于扫描的侧信道攻击。

现有专利中,没找到与边界扫描设计环境下安全的密码芯片可测试性设计结构相似的专利发明。



技术实现要素:

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

为实现上述目的,本发明提供了一种边界扫描设计环境下安全的可测试性设计方案。与常规的扫描设计方案相比,提出的安全可测试性设计方案增加了扫描链复位机制、密钥隔离机制和移位使能机制。当芯片在在测试模式(mode_sel=1)和功能模式(mode_sel=0)之间切换时,扫描链首先进行复位,把存储的机密信息清除,从而可以阻止基于模式切换的扫描攻击。在测试模式(mode_sel=1)下,密钥与加密模块隔离,从而可以克服仅依赖于测试模式的扫描攻击。在功能模式(mode_sel=0)下,移位操作被禁用从而可以战胜功能模式下非法使用用移位操作的扫描攻击。

本发明的安全可测试性设计结构是在常规边界扫描设计的基础上加入了移位使能逻辑、扫描链模式切换复位逻辑和密钥隔离逻辑,如附图2所示。常规的扫描链是把轮密钥生成器中的密钥寄存器和轮操作单元中的轮寄存器以及芯片中的其它触发器改造成扫描单元之后串联而成。这里的轮操作单元和轮密钥生成器是aes加密芯片的核心部件。本发明的安全可测试性设计引入的安全控制逻辑描述如下:

1.移位使能逻辑

为了防止攻击者在功能模式(mode_sel=0)下非法利用移位操作(shift_en=1)获得中间加密结果,全局(系统)移位控制信号shift_en通过一个与门后再控制每个扫描单元(包括边界扫描单元和常规扫描单元)的移位使能输入shift_en。与门的另一个输入受工作模式选择信号mode_sel控制,如附图3所示。这保证了当mode_sel为0时,每个扫描单元的移位使能输入端口只能接收0,即在功能模式下禁用移位操作。

2.扫描链模式切换复位逻辑

在传统的扫描结构中,全局(系统)复位输入(system_reset)驱动每个扫描单元的复位端(reset),当system_reset=0时可以初始化芯片,如附图4(a)所示。为了在模式切换时执行复位操作,本发明提出的安全扫描结构引入了扫描链复位逻辑,包括一个d触发器、一个同或门和一个与门,如图4(b)所示。插入的d触发器存储上一个时钟周期的mode_sel值。如果当前时钟周期的mode_sel与上一个时钟周期的mode_sel值相同时,同或门输出为1。此时,system_reset决定与门的输出,也就是决定每个扫描单元的reset值。相反,如果当前时钟周期的mode_sel与上一个时钟周期的mode_sel值不同时,同或门输出为0。此时,不管system_reset取何值,与门的输出都为0,受控的扫描单元执行复位操作,从而加密信息被清除。另外,如果system_reset为0,不管同或门的输出为何值,与门的输出也必为0,因此系统级的复位操作可以正常执行。

3.密钥隔离逻辑

aes轮密钥生成模块的典型结构如附图5所示,它由密钥寄存器和一些组合逻辑组成。密钥寄存器用于存储和输出生成的轮密钥。在原始的轮密钥生成模块中,密钥寄存器中每个存储单元的di通过4选1多路复用器接收四个输入信号:加密密钥(userkey,也就是初始密钥)、前一轮密钥(roundkeyi-1,用于解密)、下一轮密钥(roundkeyi+1,用于加密)和其他输入,如附图6(a)。加密密钥在加密的开始阶段从非易失存储器中加载进来,是生成各个轮密钥的基础。多路复用器有两个地址输入(图6(a)中标记为a1和a2),用于选择当前需要存储的轮密钥。假设{a1,a2}为{0,0}、{0,1}、{1,0}和{1,1}时,分别选择userkey、roundkeyi-1、roundkeyi+1和其他输入。当加密电路通电后,{mode_sel,shift_en}设置为{0,0},芯片进入功能模式。首先,把{a1,a2}设置为{0,0},将初始密钥送入密钥寄存器中。在随后的时钟周期中,把{a1,a2}设置为{1,0},密钥生成器将生成并存储下一轮密钥。解密时,把{a1,a2}设置为{0,1},按相反顺序生成并存储轮密钥。

密钥隔离逻辑插入在轮密钥生成模块中。它通过修改多路复用器的地址输入,使初始密钥在测试阶段被禁用,如附图6(b)所示。mode_sel通过几个逻辑门后协助a1和a2控制多路复用器。当加密电路进入功能模式(mode_sel=0)时,插入的逻辑门不起作用,即{a1,a2}恒等于{a1',a2'}。当mode_sel=1时,{a1,a2}为{0,0}、{0,1}、{1,0}和{1,1}对应的{a1',a2'}分别为{1,1}、{0,1}、{1,0}和{1,1},也就是这意味着,在测试模式下无法将初始密钥传递到密钥寄存器中。需要注意的是,如果初始密钥被隔离,则roundkeyi-1和roundkeyi+1不是真正的轮密钥,它们与初始密钥无关,它们仅取决于密钥寄存器中扫描单元的测试数据。

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

1、能够克服边界扫描设计环境下所有可能的基于扫描的攻击,同时未改变测试流程,因此对芯片测试没有任何影响,允许执行所有类型的测试,如固定型故障测试和时延故障测试等。

2、本发明提出的安全测试结构,没有增加额外的输入、输出信号,也不需要额外的测试准备时间,能够对芯片进行自动保护,且对电路设计的影响较小。

3、面积开销低。本发明所构思的可测试性设计结构在现有可测试性结构的基础上仅增加了一个触发器和少量的逻辑门,增加的面积开销是非常低的。

附图说明

图1是内部扫描单元和边界扫描单元结构示意图。

图2是本发明提出的安全可测试性设计总体框图。

图3是移位使能逻辑示意图。

图4是带复位功能的扫描链以及增加模式切换复位功能的扫描链示意图。

图5是aes轮密钥生成模块。

图6是原aes芯片的密钥寄存结构和带隔离功能的密钥寄存结构。

具体实施方式

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

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

使用本发明的技术保护芯片时,需要芯片设计阶段插入上述安全控制逻辑。插入安全控制逻辑后,芯片的工作和测试流程如下。

1.在上电后如果模式选择信号和移位使能信号{mode_sel,shift_en}都设置为0时,密码芯片运行在功能模式,初始密钥可以加载到密钥寄存器中以执行加密/解密运算。

2.在上电后如果模式选择信号和移位使能信号{mode_sel,shift_en}设置为{0,1}时,每个扫描单元的shift_en输入依然为0,移位操作无法进行,密码芯片运行在功能模式,初始密钥可以加载到密钥寄存器中以执行加密/解密运算。

3.一旦mode_sel从0变为1,芯片立即复位,即把扫描单元的状态清零。复位操作将删除存储在扫描链中的机密信息。随后,密码芯片工作在测试模式下。测试模式由三个操作相位(移位相位、更新相位和捕获相位)组成,并在这三个操作相位间轮换。shift_en信号用于控制操作相位之间的轮换。在移位相位,shift_en=1,扫描单元处于串行移位模式。此时在每个bsc和isc的时钟输入上施加一定数量的clock时钟脉冲,就可以通过扫描输入引脚将测试向量串行扫描到扫描链中,同时通过扫描输出引脚把前一个测试向量的测试响应移出。一旦测试向量被完全扫描到扫描链内,芯片进入更新相位,每个bsc的updateclock将应用一个时钟脉冲。在这个更新相位,存储在d1(bsc的捕获触发器)中的测试数据被输送到到d2(bsc的更新触发器),同时测试向量通过扫描单元的do应用到组合逻辑。接下来,shift_en变为0,电路进入一个时钟周期的捕获相位。在这个捕获相位,测试响应通过di加载到扫描链中。由于mode_sel=0时初始密钥不能加载进来,因此在捕获相位密钥寄存器捕获的响应与初始密钥无关。这保证了从扫描链中移出的响应不包含机密信息。通过再次将shift_en设置为“1”,先前捕获的测试响应将通过扫描输出端口从扫描链中移出,同时将下一个测试向量移入到扫描链中。

4.在上电后如果mode_sel首先被设为1,密码芯片即刻工作在测试模式,测试模式由移位相位、更新相位和捕获相位组成。具体操作流程与上述3相似。

密码芯片可以自由切换工作模式。一旦收到模式切换请求,芯片立即复位。

基于上述安全可测试性设计方案的详细说明,其工作原理可以概括描述如下:攻击者不能在功能模式下进行移位操作,无法通过把芯片从功能模式切换到测试模式来移出存储在扫描链中的机密信息,也无法在测试模式下获取密钥信息,因此基于扫描的非入侵时攻击实际上是不可能完成的。

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

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