芯片加密设计的泄漏定位系统及方法与流程

文档序号:14452769阅读:150来源:国知局

本发明是关于芯片设计领域。本发明特别是关于一种芯片加密设计的泄露定位系统及方法。



背景技术:

现如今,加密设备的功能和重要性已被许多应用所接受。由于加密算法的硬件载体较软件形式具有更高的安全性、高效性等,已被多个行业指定为必备的安全防护平台和加密形式,硬件载体包括密码芯片、智能卡等。

传统意义上,加密设备的安全性由所采用的密码算法、认证方式以及安全协议的数学复杂度决定。然而,对于一个实用性的加密设备,其安全性不仅与采用的密码算法相关,而且还涉及到程序实现和硬件设计等方面。

侧信道分析经过近20年发展,基于功耗、电磁、时间等信息的侧信道分析方法已经成为密码算法软硬件设计的实际威胁。为了能有效防御侧信道攻击,迄今为止出现多种算法级和实现级的侧信道防护方法,如掩码防护和互补逻辑防护等。其中掩码防护方案因其可以从算法级别将加密过程中所有数据随机化,破坏功耗/电磁信号与敏感数据间的关联性,从而实现算法级别的可证明安全防护,成为现有侧信道防护方法中被最广泛使用的一种侧信道防护方法。

随着高阶侧信道攻击技术的发展,掩码方案自提出以来,从一阶对抗逐渐发展至高阶对抗,通过增加分析的时间和数据复杂度实现更高级别的安全性。现有可证明安全的高阶或任意阶掩码方案主要基于ishai,sahai和wagner等人2003年提出的ishai-sahai-wagner(isw)证明框架。基于此框架,可证明安全的高阶掩码方案不断被提出,isw可证明框架保证了高阶掩码方案在算法级别的安全性,但不能保证方案在实际环境下的安全性。许多研究工作分析掩码方案在设计实现环节可能存在的泄露,主要包括mangards等人2005年提出的glitches和toggle-count。toggle-count必须依赖于后仿的网表和相同的芯片元件库,因此glitches是建立掩码方案实现的功耗与toggle-count之间相关性的其中因素,glitches在硬件中对可证明安全掩码方案的安全性具有不可忽视的威胁。

专利名称为“密码安全芯片侧信道安全程度量化评测方法”,申请号:cn200910105663.9。发明涉及一种密码安全芯片侧信道安全程度量化评测方法。该密码安全芯片侧信道安全程度量化评测方法包括:1,获取至少2个功耗与汉明权重的相关系数;2,计算归一化差值;3,计算密码安全芯片侧信道安全系数。该密码安全芯片侧信道安全程度量化评测方法可以评测密码安全芯片的密钥在侧信道分析攻击下的安全程度。

专利名称为“侧信道攻击的检测和缓解”,申请号:cn201280075361.1。公开了用于防止侧信道攻击的方法、系统和计算机可读存储介质。运行在计算装置上或计算环境内的诸如虚拟机的计算资源可被复制。可监视与该计算资源和复制计算资源相关联的属性以看是否存在差异。所述差异可指示诸如病毒或侧信道攻击的安全事件。可通过用复制计算资源替换计算资源来处理检测到的安全事件。

专利名称为“一种密码实现侧信道安全性快速检测方法”,申请号:cn201510075958.1。公开了一种密码实现侧信道安全性快速检测方法。本方法为:1,计算实际泄露值向量l的函数cdf,以及下标字典dic;2,对每一明文,计算其与每一密钥猜测值k对应的假设能耗p,根据p和k值将该明文的序号归入到一下标分组g中第k+1行第p+1列中;3,对于每一密钥猜测值k,从g中提取集合假设能耗非空的实际泄露值能量迹下标分组元素,然后将对应实际泄露值组成向量,根据dic计算对应的函数cdft;然后根据cdf与cdft的最大差异对应的假设机率确定k的得分;4,将得分最小值对应的k值与加密算法的密钥字节数值比较,判断该设备上实现该加密算法是否安全。本发明可快速检测设备上实现所测加密算法的安全性。

上述技术方案中的评测方法局限于汉明重泄露模型,或者作为插件监控计算机资源是否安全,并不是为芯片安全性设计服务的。且评测的结果只有安全与不安全,未能给予设计者安全性设计指导。

对于可证明安全的高阶掩码,其理论安全性并不能保证其实现级安全性,因此,对于添加防护的芯片设计对其实现进行测试是十分必要的。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

现有的芯片设计上的测试存在以下几个问题:1,芯片测试要在下板之后进行,若发现设计存在问题需要重新进行设计与下板,芯片设计者不能够在芯片设计环节得到安全性信息以及泄露点;2,缺少对高阶掩码防护的设计进行的测试系统。

为了解决上述问题,本发明提供一种芯片加密设计的泄漏定位系统及方法。

为实现上述目的,本发明提供了一种芯片加密设计的泄漏定位系统,其用于加密芯片设计的泄漏定位。该泄漏定位系统包括:解析模块、分析模块以及反馈模块。解析模块通过解析rtl文件和网表文件,获得实际硬件电路的层次结构和运算单元信息。分析模块与解析模块电性连接,所述分析模块根据所述实际硬件电路的层次结构和运算单元信息分析出泄露点精确位置,并计算出泄漏点定位成功率。反馈模块与解析模块和所述分析模块均电性连接,所述反馈模块将所述泄露点精确位置与rtl文件和网表文件进行比对,在rtl文件和网表文件中标注出泄漏点。

优选地,上述技术方案中,解析模块包括rtl解析模块、网表解析模块以及仿真解析模块。rtl解析模块用于解析所述rtl文件的设计源码,得到rtl设计的层次结构与运算单元。网表解析模块与所述rtl解析模块电性连接,用于解析所述rtl的综合与布局布线后的网表文件。仿真解析模块与所述网表解析模块电性连接,所述仿真解析模块通过仿真软件来对所述网表文件进行仿真,得到所述实际硬件电路的层次结构与运算单元信息,并传递给所述分析模块。

优选地,上述技术方案中,分析模块包括复杂度评估模块、泄漏点粗略定位模块、泄漏点精确定位模块以及定位成功率模块。复杂度评估模块根据密钥数据确定泄露阶数,确定仿真曲线数量,并将该仿真曲线数量传递到所述仿真软件。泄漏点粗略定位模块与所述复杂度评估模块以及所述解析模块均电性连接,通过所述实际硬件电路的层次结构与运算单元信息得到泄露点候选集合。泄漏点精确定位模块与所述泄露点粗略定位模块电性连接,其用于得到精确泄漏点集合。定位成功率模块与所述泄露点精确定位模块电性连接,用于计算所述泄漏点定位的成功率。

优选地,上述技术方案中,泄漏点精确定位模块被配置成用于:从泄漏点候选集合中选择每个可能泄漏点;对可能泄漏点的信号变化信息进行差分能量分析和数据相关性分析以及数据互信息分析,所述差分能量分析和所述数据相关性分析以及所述数据互信息分析任一种分析方法所分析的结果中产生峰值则该点为泄漏点。为实现上述目的,本发明还提供了一种芯片加密设计的泄漏定位方法。其包括解析步骤、分析步骤以及反馈步骤。解析步骤是通过解析rtl文件和网表文件,获得实际硬件电路的层次结构和运算单元信息。分析步骤是根据所述实际硬件电路的层次结构和运算单元信息分析出泄露点精确位置,并计算出泄漏点定位成功率。反馈步骤是将所述泄露点精确位置与所述rtl文件和所述网表文件进行比对,在所述rtl文件和所述网表文件中标注出泄漏点。

优选地,上述技术方案中,解析步骤包括rtl解析、网表解析以及仿真解析。rtl解析用于解析rtl文件的设计源码,得到rtl设计的层次结构与运算单元;网表解析,用于解析rtl的综合与布局布线后的网表文件;以及仿真解析,其通过仿真软件来对所述网表文件进行仿真,得到所述实际硬件电路的层次结构与运算单元信息。

优选地,上述技术方案中,分析步骤包括复杂度评估、泄漏点粗略定位、泄漏点精确定位以及定位成功率计算。复杂度评估是根据密钥数据确定泄露阶数,确定仿真曲线数量,并将该仿真曲线数量传递到所述仿真软件。泄漏点粗略定位是通过所述实际硬件电路的层次结构与运算单元信息得到泄露点候选集合;泄漏点精确定位其用于得到精确泄漏点集合;以及定位成功率计算,其用于计算所述泄漏点定位的成功率。

优选地,上述技术方案中,所述泄漏点精确定位步骤包括:从所述泄漏点候选集合中选择每个可能泄漏点;对可能泄漏点的信号变化信息进行差分能量分析和数据相关性分析以及数据互信息分析,所述差分能量分析和所述数据相关性分析以及所述数据互信息分析任一种分析方法所分析的结果中产生峰值则该点为泄漏点。与现有技术相比,本发明具有如下有益效果:

1,设计者可以在芯片加密设计环节进行泄漏点检测从而完善设计,而不

用等到下板之后。方便,成本低,反馈及时,可靠性更强。

2,对高阶掩码加密设计的安全性可以进行实际测试,而不只是停留在理论证明其安全的阶段,可靠性更强。

附图说明

图1是根据本发明的具体实施方式所绘制的总体框架图。

图2是根据本发明的具体实施方式所绘制的各模块功能示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

为了帮助芯片加密设计者在设计过程中就能够进行安全性测试和获得泄露位置从而更好的完善设计,本发明研发一个针对芯片加密设计的泄露定位系统,可对多种芯片设计进行泄漏点检测,具备方便,成本低,及时反馈等特点。所述芯片设计为fpga设计或asic设计。本发明提供如图1至图2的电路模块框架图,图1是根据本发明具体实施方式所绘制的总体框架图。如图1所示,芯片加密设计的泄漏定位系统包括解析模块11、分析模块12及反馈模块13。

图2是总体框架图中所示各模块功能示意图。图2所示:解析模块包含三个子模块:设计解析模块(rtl)21a,网表解析模块(netlist)21b和仿真解析模块(vcd)21c。此技术方案中rtl是指寄存器传输级电路;netlist指的是网表;vcd指的是一种基于ascii码的文件格式,用于记录由eda仿真工具产生的信号信息。设计解析模块(rtl)21a用于解析rtl的设计源码,得到rtl硬件电路设计的层次结构与运算单元,所述运算单元为所述rtl硬件电路设计的基本组成成分,如查找表,寄存器等,所述运算单元对电路输入进行运算处理,所述rtl硬件电路设计的层次结构指不同运算单元之间的连接关系,传递不同运算单元的输入输出数据;网表解析模块(netlist)21b主要解析rtl的综合与布局布线后的网表文件,得到最贴近实际电路的层次结构与运算单元信息;仿真解析模块(vcd)21c通过相关仿真软件如isim软件,modelsim软件对解析后的网表文件进行仿真,对仿真结果文件进行解析,获得实际硬件电路的层次结构和运算单元信息,传递给分析模块。

分析模块包括复杂度评估模块22a、泄漏点粗略定位模块22b、泄漏点精确定位模块22c和定位成功率模块22d。

1,设计者上传加密算法中的密钥数据(密钥字节长度,子密钥个数,时钟周期等)至复杂度评估模块22a进行数学建模,泄露阶数确定以及仿真所需曲线量预测,为仿真软件选择合适的曲线量,以减小分析过程的复杂度。当泄漏点产生高阶泄漏时,通常需要更多的曲线量来确定泄漏点,曲线量与泄露阶数呈正相关;

2,泄漏点粗略定位模块22b是根据解析的实际硬件电路的层次结构和运算单元信息得到逻辑门之间连接关系,确定泄露点候选集合,如果某一逻辑门产生泄漏,则与该逻辑门相连的其他逻辑门也可能存在泄漏,根据上述信息可初步对泄漏点可能存在的位置进行判断,得到泄露点候选集合;

3,泄漏精确定位模块22c集成了快速傅立叶变换,相位对齐等曲线预处理方法,以及差分能量分析、数据相关性分析、数据互信息分析作为可选分析方法,经过以下三个步骤对泄漏点候选集合进行精确判断:a.从泄露点候选集合中选择每个可能泄漏点,b.对可能泄漏点的信号变化信息进行差分能量分析和数据相关性分析以及数据互信息分析,所述差分能量分析和所述数据相关性分析以及所述数据互信息分析任一种分析方法所分析的结果中产生峰值则该点为泄漏点,最终得到精确泄漏点集合;

4,定位成功率22d模块计算出系统分析的泄漏点定位成功率。

反馈模块23主要根据分析模块22的分析结果,建立分析模块22与解析模块21的接口,为设计者显示rtl泄漏23a和netlist泄露23b所在,可对应至解析模块21的相应文件,将解析文件结果中标记出泄漏点。

本技术方案还提供了采用以上芯片加密设计的泄露定位系统的高阶掩码防护泄漏点定位方法,包括如下步骤:

步骤1,将待测试的芯片各阶段设计文件接入解析模块21的相应子模块。

步骤2,设计者根据原始硬件电路设计确定秘钥字节长度,子密钥个数,时钟周期等系统参数,将系统参数提供至分析模块22,分析模块22进行复杂度分析评估。复杂度分析评估包括:a.泄漏阶数确定b.所需曲线数量预测c.数学建模。

步骤3,根据所需曲线数量选择仿真数量,通过仿真软件进行仿真,仿真结果文件接入解析模块21,确定可能产生的泄漏点候选集合,缩小定位范围。

步骤4,判断精确泄漏点,主要包括以下三个步骤:a.从泄露点候选集合中选择每个可能泄漏点,b.对可能泄漏点的信号变化信息进行差分能量分析和数据相关性分析以及数据互信息分析,所述差分能量分析和所述数据相关性分析以及所述数据互信息分析任一种分析方法所分析的结果中产生峰值则该点为泄漏点。

步骤5,反馈模块23接收到精确泄漏点数据,与设计各阶段的文件进行比对,标记并存储泄漏点的产生来源,并反馈至设计者。

本测试系统可以对多种设计文件进行泄漏点定位,具有通用性的特点,并且操作便利,同时芯片设计者的测试成本大大降低。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

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