CN213028070U - 一种防dpa攻击的待测电路安全仿真分析装置 - Google Patents
一种防dpa攻击的待测电路安全仿真分析装置 Download PDFInfo
- Publication number
- CN213028070U CN213028070U CN202022417852.4U CN202022417852U CN213028070U CN 213028070 U CN213028070 U CN 213028070U CN 202022417852 U CN202022417852 U CN 202022417852U CN 213028070 U CN213028070 U CN 213028070U
- Authority
- CN
- China
- Prior art keywords
- key
- information
- power consumption
- unit
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本实用新型提供了一种防DPA攻击的待测电路安全仿真分析装置,所述装置包括:关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;仿真电路单元,用于接收测试激励信息进行多次仿真测试;关键信号监控单元,用于在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;差分功耗分析单元,用于获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息。通过上述方案,在芯片设计阶段,可以模拟待测电路的安全仿真测试,且能够自动完成差分功耗攻击分析。
Description
技术领域
本实用新型涉及芯片电路设计领域,特别涉及一种防DPA攻击的待测电路安全仿真分析装置。
背景技术
SSD数据存储已经逐渐成为消费设备数据存储和云存储的主要存储介质。对于SSD数据存储来说,数据纠错的意义十分重大,特别是个人关键数据和政府机构相关的数据。SSD主控芯片作为SSD存储设备的大脑,其安全性能直接决定SSD硬盘整体最终的安全性能。
侧信道攻击是主要的黑客攻击手段,在侧信道攻击中,DPA(Differential poweranalysis,差分功耗攻击)又是最常用的的一种。DPA是相较于SPA而言更为高级的功耗分析手段,其允许攻击者通过对多次密码学操作所收集到数据进行统计分析计算出在密码学运算中的中间值。黑客通过分析待测电路在运行关键信息时的差分功耗信息,就可以推断出待测电路运行的关键信息内容。目前技术上有很多防御差分功耗攻击的方法,但这些方法都是要在芯片电路完全设计出来之后再进行详细的验证。
实用新型内容
为此,需要提供一种防DPA攻击的待测电路安全仿真分析的技术方案,用以解决在芯片设计过程中无法针对差分功耗攻击进行仿真防御的问题。
为实现上述目的,本实用新型第一方面提供了一种防DPA攻击的待测电路安全仿真分析装置,所述装置包括:
关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;
仿真电路单元,用于接收测试激励信息进行多次仿真测试;所述激励信息包括所述关键信号;
关键信号监控单元,用于在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;
差分功耗分析单元,用于获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息;
所述第一功耗信息为本次仿真测试时关键信号在变化时间戳信息对应的功耗信息,所述第二功耗信息为上一次仿真测试时关键信号在变化时间戳信息对应的功耗信息。
进一步地,所述装置包括:
功耗计算单元,用于计算待测电路在每次仿真过程中的功耗数据,并将所述功耗数据存储于功耗数据存储单元中;
差分功耗分析单元,用于本次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元中获取第一功耗信息,以及根据上一次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元中获取第二功耗信息。
进一步地,所述关键信号监控单元包括标记插入单元;
所述标记插入单元用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等。
进一步地,所述装置还包括:
随机数产生单元,用于产生随机数;
仿真激励生成单元,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元。
进一步地,所述装置还包括:
逻辑综合单元,用于对待测电路进行逻辑综合运算,得到网表信息;
功耗计算单元,用于根据所述网表信息计算待测电路在整个仿真过程中的功耗仿真数据。
进一步地,关键信号包括多个变化类型;所述变化类型根据两次仿真测试时关键信号变化时的值进行确定;
差分功耗分析单元,用于判断关键信号在某一变化类型的功耗差值与其他变化类型的功耗差值的差异是否大于预设误差,若是则判定关键信号在该变化类型上存在相关性。
进一步地,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元,用于产生所述测试密钥信息;
密钥记录单元,用于存储所述测试密钥信息;
差分功耗分析单元,用于获取所述测试密钥信息,并判断各测试密钥信息对应的功耗差值是否相关。
进一步地,所述密钥产生单元包括:
源数据存储单元,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元,用于获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元,用于存储层级密钥信息和用户标识信息;
根密钥运算单元,用于获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元,用于获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
进一步地,所述层级信息存储单元还用于存储握手请求信息和握手响应信息;
所述密钥产生单元包括:
握手解密运算电路,用于采用所述测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息;
握手加密运算电路,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息;
握手信息校验电路,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验,将所述测试密钥信息存储于所述密钥记录单元中。
本申请的第二方面还提供了一种防DPA攻击的待测电路安全仿真分析方法,所述方法应用于如本申请第一方面所述的装置,所述方法包括以下步骤:
关键信息存储单元存储关键信号和关键信号对应的路径信息;
仿真电路单元接收测试激励信息进行多次仿真测试;所述激励信息包括所述关键信号;
关键信号监控单元在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;
差分功耗分析单元获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息;
所述第一功耗信息为本次仿真测试时关键信号在变化时间戳信息对应的功耗信息,所述第二功耗信息为上一次仿真测试时关键信号在变化时间戳信息对应的功耗信息。
区别于现有技术,上述技术方案所述的防DPA攻击的待测电路安全仿真分析方法和装置,所述装置包括:关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;仿真电路单元,用于接收测试激励信息进行多次仿真测试;关键信号监控单元,用于在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;差分功耗分析单元,用于获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息;通过上述方案,在芯片设计阶段,就可以模拟待测电路的安全仿真测试,且能够自动完成差分功耗攻击分析。
附图说明
图1为本实用新型一实施例涉及的防DPA攻击的待测电路安全仿真分析装置的示意图;
图2为本实用新型另一实施例涉及的防DPA攻击的待测电路安全仿真分析装置的示意图;
图3为本实用新型一实施例涉及的密钥产生单元的结构示意图;
图4为本实用新型另一实施例涉及的密钥产生单元的结构示意图;
图5为本实用新型一实施例涉及的防DPA攻击的待测电路安全仿真分析方法的流程图;
图6为本实用新型另一实施例涉及的防DPA攻击的待测电路安全仿真分析方法的流程图;
图7为本实用新型一实施例涉及的绘图单元绘制的图表示意图。
附图标记说明:
101、关键信息存储单元;
102、仿真电路单元;
103、关键信号监控单元;201、标记插入单元;
104、差分功耗分析单元;
105、随机数产生单元;
106、仿真激励生成单元;
107、绘图单元;
108、密钥产生单元;
109、密钥记录单元。
110、功耗计算单元;
111、功耗数据存储单元;
112、变化时间存储单元;
113、待测电路;
114、逻辑综合单元;
115、网表信息;
301、源数据存储单元;
302、源数据解密单元;
303、算法信息存储单元;
304、层级信息存储单元;
305、根密钥运算单元;
306、层级解密运算单元;3061、一级解密运算单元;3062、二级解密运算单元;3063、三级解密运算单元;
307、握手解密运算电路;3071、一级握手解密运算电路;3072、二级握手解密运算电路;3073、三级握手解密运算电路;
308、握手加密运算电路;3081、一级握手加密运算电路;3082、二级握手加密运算电路;3083、三级握手加密运算电路;
309、握手信息校验电路;
310、密钥选择单元;
311、算法选择单元;3111、一级算法选择单元;3112、二级算法选择单元;3113、三级算法选择单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
如图1所示,本实用新型第一方面提供了一种防DPA攻击的待测电路安全仿真分析装置,所述装置包括:
关键信息存储单元101,用于存储关键信号和关键信号对应的路径信息。
所述关键信号是指待安全监测的数据,对于计算机而言一般是一串由“0”或“1”组成的机器代码,可以是密钥信息,也可以是重要性较强的安全数据。所述路径信息是指所述关键信号的可执行路径的集合,通过选择适当的测试用例可以及时检测出关键信号的变化情况,进而对关键信号的变化情况进行收集和分析。
在本实施方式中,关键信号和关键信号对应的路径信息可以通过以下方式获得:在仿真测试开始之前,先对待测电路(如待测的主控芯片)完成一次RTL测试设计,并把RTL设计的待测试电路作为输入文件让仿真分析平台开始工作,以及将RTL设计中的关键信号和这些信号对应的路径信息写入关键信息存储单元101中。
仿真电路单元102,用于接收测试激励信息进行多次仿真测试;所述测试激励信息包括所述关键信号。
所述测试激励信息是指测试用例,测试用例是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。所述仿真电路单元102可以通过仿真电路工具来实现,如VCS仿真工具和modelsim仿真工具。
关键信号监控单元103,用于在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息。
当关键信号按照对应的路径信息执行时,如果其数值发生变化(如从“0”变成“1”或者从“1”变成“0”),此时就记录当前的变化时间戳信息,后期通过筛选关键信号在所述变化时间戳信息上的功耗进行分析,就可以分析关键信号在不同仿真测试时在数值发生变化时的功耗差值是否存在的关联性,进而判断关键信号当前是否存在被差分功耗攻击的可能性。
差分功耗分析单元104,用于获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息。所述提示信息可以包括声音提示信息、图像提示信息、光线提示信息、视频提示信息中的一种或多种。
所述第一功耗信息为本次仿真测试时关键信号在变化时间戳信息对应的功耗信息,所述第二功耗信息为上一次仿真测试时关键信号在变化时间戳信息对应的功耗信息。
优选的,计算功耗差值的两次时间戳信息是指关键信息在对应的仿真测试中相同变化次数下的时间戳信息。例如,在本次仿真测试时某一关键信号发生了两次变化,在上一次仿真测试时该关键信号也发生了两次变化,则在计算功耗差值时,会计算关键信号在本次仿真测试过程中第一次发生变化的时间戳信息对应的功耗值与关键信号在上一次仿真测试过程中第一次发生变化的时间戳信息对应的功耗值之间的差值。
当然,在另一些实施例中,计算功耗差值的时间戳信息也可以是指不同变化次数的时间戳信息,例如可以是本次仿真测试过程中第一次发生变化的时间戳信息对应的功耗值与关键信号在上一次仿真测试过程中第二次发生变化的时间戳信息对应的功耗值之间的差值,亦或是本次仿真测试过程中第二次发生变化的时间戳信息对应的功耗值与关键信号在上一次仿真测试过程中第一次发生变化的时间戳信息对应的功耗值之间的差值。具体根据实际需要进行配置,此处不再展开赘述。
在判断各个关键信号变化类型的功耗差值之间的关联性时,可以通过一下方式来进行:例如当某一关键信号的变化类型的功耗差值明显高于或低于其他变化类型时,则可以判定关键信号在该变化类型上的功耗差值存在相关性,即关键信号在仿真过程中存在被差分功耗攻击(通过差分功耗差异来检测关键数据的一种手段)的可能性。所述装置会对这一变化类型的关键信号及其对应的功耗值、功耗差值统一予以记录,以供技术人员进一步分析。
通过上述方案,在芯片设计的早期阶段,就可以模拟芯片的安全仿真测试,具体是通过各种测试用例来对待测电路(如主控芯片)的性能进行检测,主要包括关键信号变化时的差分功耗检测,从而对于黑客采用功耗攻击方式进行有效预警,大幅提高了分析效率。
如图2所示,在某些实施例中,所述装置包括:
功耗计算单元110,用于计算待测电路在每次仿真过程中的功耗数据,并将所述功耗数据存储于功耗数据存储单元111中;差分功耗分析单元104,用于本次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元111中获取第一功耗信息,以及根据上一次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元111中获取第二功耗信息。简言之,功耗计算单元110先计算好在仿真测试过程中待测电路在各个时间点的功耗数据并进行存储,随时准备被差分功耗分析单元104提取调用,从而有效提高了计算效率。
为了使得分功耗分析单元104获取功耗信息更加方便,在本实施方式中,所述装置还包括变化时间存储单元112,用于存储每次仿真过程中关键信号变化时的变化时间戳信息。优选的,变化时间存储单元112不仅用于存储变化时间戳信息,还用于存储变化时间戳信息对应的仿真次数以及在该仿真过程中的变化次数等。
如图2所示,在某些实施例中,所述关键信号监控单元103包括标记插入单元201;所述标记插入单元201用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等。
在实际应用过程中,关键信号监控单元103会根据关键信号当前的位置,在电路仿真的验证平台(即前文提到的“仿真电路单元”)中加入关键信号的监控组件,比如针对路径为path_x的关键信号a,监控组件可以被配置为:
wait(path_x.a==1’b1)$display_time;
这样就可以让路径为path_x中的关键信号a在值为1时,打印当前的仿真时间。当然路径信息中的判断条件也可以改成(path_x.a==0’b1)$display_time,则表示当关键信号a的值为0时,打印当前的仿真时间。
而后标记插入单元201负责对关键信号进行时间标记插入,具体组件配置如下:
wait(path_x.a==1’b1)set flag_a=1’b1;
这样就可以让路径为path_x的a在值为1时把标识信号a标记置为1,即所述标记信号的值与所述关键信号的值实时相等。待测试激励信息都遍历完成后,通过搜索调取所有标记信号的值,就可以清晰地获知各关键信号的值的变化情况。
在某些实施例中,所述装置还包括:
随机数产生单元105,用于产生随机数。优选的,随机数产生单元每隔一定时间产生一个随机数,产生的随机数是随机的,这样可以使得仿真激励生成单元生成的激励也完全随机。
仿真激励生成单元106,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元102。随机数作为影响测试激励信息生成的影响因子,可以保证测试激励信息生成的随机性,从而仿真模拟各个应用场景下主控芯片的运行过程。为了保证测试激励信息能够尽可能地覆盖所有可能发生的情况,因而在本实施例中,随机数产生单元105所产生的随机数数量也足够大(超过预设数量)。
在某些实施例中,所述装置还包括:逻辑综合单元114,用于对待测电路113进行逻辑综合运算,得到网表信息115;功耗计算单元110,用于根据所述网表信息115计算待测电路在整个仿真过程中的功耗仿真数据。
所述逻辑综合(Logic Synthesis)是指将寄存器传输级(RTL,Register TransferLevel)的hdl代码转换为与工艺相关的门级网表(Gate Level Netlist)的过程。逻辑综合单元114可以通过DC综合工具来实现,在仿真电路单元开始工作后,DC综合工具对待测试电路的RTL代码进行DC(Design Compiler)综合,生成网表信息115。所述网表信息115包括但不限于:网表文件、SDF(标准延时文件)、SVF文件(包含RTL到网表的映射信息)等。
所述功耗计算单元110还用于接收DC综合产生的网表文件、SDF文件、SVF文件,以及RTL仿真波形和foundry代工厂的标准库单元信息,并基于SVF文件中存储的RTL到网表的映射信息,将RTL的仿真波形节点映射到网表文件上,从而产生了网表的仿真波形,再加入SDF文件中的延时信息和foundry代工厂的标准库单元功耗信息,得到整个仿真过程的功耗仿真数据,然后把功耗数据存储到功耗数据存储单元中。
在某些实施例中,所述装置还包括:绘图单元107,用于根据各关键信号变化类型对应的功耗差值生成可视化图表。这样,测试人员通过生成的图表就可以很直观地看出当前各关键信号变化类型对应的差值功耗是否存在关联性,并在各关键信号某一变化类型的功耗差值信息存在关联性的时候进一步分析当前待测电路存在着被差分功耗攻击的可能性,从而有效提升测试分析效率。
在某些实施例中,关键信号包括多个变化类型;所述变化类型根据两次仿真测试时关键信号变化时的值进行确定;差分功耗分析单元,用于判断关键信号在某一变化类型的功耗差值与其他变化类型的功耗差值的差异是否大于预设误差,若是则判定关键信号在该变化类型上存在相关性;
关键信号在每一次仿真过程中可能出现多个变化值,如包括“0”和“1”两个变化值。例如所述关键信号为测试密钥信息,所述测试密钥信息为8个比特位的数值,各个比特位在第一次仿真测试和第二次仿真测试过程中某一次数值变化时(如为第一次变化时)对应的功耗信息值如表1和表2所示:
密钥值 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
功耗(mW) | 3.9 | 8 | 3 | 8.5 | 7.8 | 3.2 | 2.5 | 9 |
表1-测试密钥信息各个比特位在第一次仿真测试过程中数值变化时对应的功耗信息表
密钥值 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
功耗(mW) | 8.6 | 8.1 | 2.9 | 3 | 8 | 3 | 2.7 | 8.5 |
表2-测试密钥信息各个比特位在第二次仿真测试过程中数值变化时对应的功耗信息表
差分功耗分析单元根据表1和表2中的功耗数据,计算得到的关键信号在各个变化类型上的功耗差值如表3所示:
密钥变化 | 0->1 | 1->1 | 0->0 | 1->0 | 1->1 | 0->0 | 0->0 | 1->1 |
差分功耗(mW) | 4.7 | 0.1 | -0.1 | -5.5 | 0.2 | -0.2 | 0.2 | -0.5 |
表3-测试密钥信息各个比特位在两次仿真测试过程中对应的功耗差值表
从表3中可以看出,当密钥信息的比特位的数值为0到1变化或者1到0变化时,如表3中的第1位和第4位的测试密钥信息对应的密钥变化类型,其对应的功耗差值的变化幅度要明显高于其他变化类型(如1到1、0到0等)的功耗差值,即可以判定密钥信息在比特位从0和1之间的变化类型(即0变到1、或1变到0)对应的功耗差值信息上存在关联,测试人员可以进一步分析当前主控芯片存在差分功耗攻击的可能性。
例如预设误差可以设置为关键信号在不同仿真测试时某一变化类型上对应的功耗差值的平均值与其他变化类型的功耗差值的平均值的比例为30%,以表3中的数据为例,表3中的密钥值在0和1之间的变化类型上,多次出现功耗差值在4mW左右的情况,而其他变化类型的密钥值对应的功耗差值平均只有16mW,两者之间的比值出现3400%的区别,即远大于预设误差的情况,因而可以认定当关键信号在0和1之间变化的这一变化类型上存在明显的相关性。当然,预设误差也可以根据实际需要进行设定,如设定为两个不同变化类型的功耗差值之间的差异在2mW以内,或者两者之间的比例在50%以下等等。
为了使得测试人员能够更加直观地获知仿真结果,如图7所示,根据表1中记录的本次仿真过程中密钥信息的每个Bit值和相应这些Bit的功耗信息,生成一个折线变化图,图7中的横轴表示关键信号的变化类型(如密钥信息各个比特位的密钥值的变化),纵轴为对应的功耗差值。从图7中可以很直观地看到密钥值的在不同变化类型上的功耗差值是否存在线性先关,如果存在相关性,说明当前待测电路在进行运算过程中很可能被黑客发现规律从而破解安全信息,测试人员可以进一步优化相关设计以提升芯片整体的安全性能。
在某些实施例中,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元108,用于产生所述测试密钥信息;
密钥记录单元109,用于存储所述测试密钥信息;
差分功耗分析单元104,用于获取所述测试密钥信息,并判断各测试密钥信息在不同变化类型上对应的功耗差值是否相关。
密钥信息作为数据加解密的工具,是芯片安全仿真的关键一环。因而在本实施方式中,除了对一些关键数据进行监控之外,对于密钥信息的变化也进行了重点监控,保证密钥存在被功耗攻击时测试人员能够及时人员。具体做法是对于各测试密钥信息的功耗信息也进行监测,并在判定某一类型的密钥信息的功耗信息存在关联时,输出提示信息。所述提示信息包括声音提示信息、图像提示信息、光线提示信息、视频提示信息中的一种或多种。
为了进一步芯片在运算过程使用的密钥信息的安全性,本申请设计了专门的密钥产生单元108来生成运算所需的密钥信息。如图3所示,本申请涉及的密钥产生单元108包括:
源数据存储单元301,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法。在本实施方式中,所述源数据存储单元301为OTP存储单元(即一次性可编程单元),这样可以有效防止源数据被篡改。为了防止黑客从源数据存储单元301中直接获得源数据,因而在本申请中是先对源数据进行加密再存储至OTP存储单元中,加密采用的初始密钥可以被存储于其他存储单元中,以提升源数据存储的安全性。所述层级加解密算法是后续进行数据加解密时所选择的算法,具体可以包括aes算法、tdes算法、sm4算法中的任意一种或多种。
源数据解密单元302,用于获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元303中。
层级信息存储单元304,用于存储层级密钥信息和用户标识信息。
根密钥运算单元305,用于获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息。由于根密钥信息是通过解密后的源密钥对所述用户标识信息进行哈希运算得到,可以保证源密钥和生成的根密钥的位数保持一致,同时保证芯片在接收不同用户登录后,所采用的密钥均是不同的,进一步提升了安全性。所述用户标识信息为区分不同用户的ID,例如可以是一串字符串。
层级解密运算单元306,用于获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。这样,测试密钥信息产生过程中的解密算法来自于算法信息存储单元303中的层级密钥加解密算法,并通过算法选择单元311进行筛选。解密的对象为层级密钥信息,解密的密钥为根密钥信息,三者分别来自于不同的单元,从而进一步提升了生成的测试密钥信息的安全性。
为了防止测试密钥信息在生成过程中被截获篡改,在本实施方式中,所述层级信息存储单元还用于存储握手请求信息和握手响应信息,所述密钥产生单元108包括:
握手解密运算电路307,用于采用所述测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息。测试密钥信息自身在传输过程中容易被截获或篡改,但是先用测试密钥信息对所述测试密钥信息自身进行解密后,黑客反向破解的难度就成指数级增加,因而本申请在进行数据校验前先让测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息。
握手加密运算电路308,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息。握手请求信息可以预先存储于握手信息存储单元304中,握手请求信息是指待验证的信息,其通过握手加密密钥信息进行加密后可以得到握手加密信息。
握手信息校验电路309,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验,将所述测试密钥信息存储于所述密钥记录单元中;否则校验不通过,不将所述测试密钥信息存储于所述密钥记录单元中。所述握手响应信息是指预先存储于握手信息存储单元304中、且是握手请求信息经过加密后得到的校验标准信息。通过比对所述握手响应信息和所述握手加密信息,就可以推知当前测试密钥信息是否被篡改,若两者匹配则可以输出测试密钥信息。
如图4所示,为了在不同用户使用待测芯片时能够使用不同权限的功能,因而在本实施方式中,对于不同用户使用所述待测芯片时的密钥信息也可以设置不同等级,即密钥产生单元可以根据用户的安全等级产生相应层级的待测密钥信息,层级越高,则待测密钥信息的安全性也就越高。
以密钥等级为三个安全等级为例,所述装置包括密钥选择单元310。所述解密运算单元包括一级解密运算单元3061、二级解密运算单元3062、三级解密运算单元3063。所述握手解密运算电路包括一级握手解密运算电路3071、二级握手解密运算电路3072、三级握手解密运算电路3073。所述握手加密运算电路包括一级握手加密运算电路3081、二级握手加密运算电路3082、三级握手加密运算电路3083。算法信息存储单元303中设置有多种加解密算法,包括一级加解密算法、二级加解密算法和三级加解密算法,并依次通过一级算法选择单元3111、二级算法选择单元3112、三级算法选择单元3113进行选择。所述层级密钥信息包括第一层源密钥、第二层源密钥和第三层源密钥。
图4所述的密钥产生单元108的工作原理如下:密钥产生单元108获取当前用户等级,并通过密钥选择单元310输出与所述用户等级相匹配的测试密钥至所述密钥记录单元109,假设用户等级有三级,则密钥选择单元310依次选择一级密钥、二级密钥和三级密钥进行输出,三级密钥的安全等级大于二级密钥,二级密钥的安全等级大于一级密钥。
一级密钥的产生过程如下:
源数据解密单元302获取所述源数据存储单元301中加密后的源密钥和层级加解密算法进行解密,得到解密后的源密钥和层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元305,将所述解密后的层级密钥加解密算法存储于算法信息存储单元303中。根密钥运算单元获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息。
而后一级解密运算单元3061接收层级信息存储单元304的第一层源密钥,一级算法选择单元3111选择一级密钥加解密算法至一级解密运算单元3061,以使得一级解密运算单元3061采用一级密钥加解密算法应用所述根密钥信息对所述第一层源密钥进行解密,得到一级密钥。如果当前用户的安全等级为一级,则密钥选择单元310可以选择所述一级密钥输出。
在输出之前,为了防止一级密钥在传输过程中被篡改,需要对生成的一级密钥进行校验,具体是先通过一级握手解密运算电路3071使用一级密钥对一级密钥自身做一次加密,得到一级握手加密密钥信息。而后通过一级握手加密运算电路3081接收所述层级信息存储单元304传输的第一层握手请求数据,并采用所述一级握手加密密钥信息对所述第一层握手请求数据进行加密,得到第一层握手加密信息。而后接收所述层级信息存储单元304传输的第一层握手响应数据,将所述第一层握手响应数据与所述第一层握手加密信息进行比较,若两者匹配说明一级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
二级密钥的产生过程如下:
二级密钥的产生过程与一级密钥类似,区别在于一级密钥作为二级密钥产生的输入参数(相当于一级密钥产生时输入的根密钥),具体是二级解密运算单元3062接收层级信息存储单元304的第二层源密钥,二级算法选择单元3112选择二级密钥加解密算法至二级解密运算单元3062,以使得二级解密运算单元3062采用二级密钥加解密算法应用所述一级密钥对所述第二层源密钥进行解密,得到二级密钥。如果当前用户的安全等级为二级,则密钥选择单元310可以选择所述二级密钥输出。
在输出之前,为了防止二级密钥在传输过程中被篡改,需要对生成的二级密钥进行校验,具体是先通过二级握手解密运算电路3072使用二级密钥对二级密钥自身做一次加密,得到二级握手加密密钥信息。而后通过二级握手加密运算电路3082接收所述层级信息存储单元304传输的第二层握手请求数据,并采用所述二级握手加密密钥信息对所述第二层握手请求数据进行加密,得到第二层握手加密信息。而后接收所述层级信息存储单元304传输的第二层握手响应数据,将所述第二层握手响应数据与所述第二层握手加密信息进行比较,若两者匹配说明二级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
三级密钥的产生过程如下:
三级密钥的产生过程与二级密钥类似,区别在于二级密钥作为三级密钥产生的输入参数(相当于二级密钥产生时输入的一级密钥),具体是三级解密运算单元3063接收层级信息存储单元304的第三层源密钥,三级算法选择单元3113选择三级密钥加解密算法至三级解密运算单元3062,以使得三级解密运算单元3063采用三级密钥加解密算法应用所述二级密钥对所述第三层源密钥进行解密,得到三级密钥。如果当前用户的安全等级为三级,则密钥选择单元310可以选择所述三级密钥输出。
在输出之前,为了防止三级密钥在传输过程中被篡改,需要对生成的三级密钥进行校验,具体是先通过三级握手解密运算电路3073使用三级密钥对三级密钥自身做一次加密,得到三级握手加密密钥信息。而后通过三级握手加密运算电路3083接收所述层级信息存储单元304传输的第三层握手请求数据,并采用所述三级握手加密密钥信息对所述第三层握手请求数据进行加密,得到第三层握手加密信息。而后接收所述层级信息存储单元304传输的第三层握手响应数据,将所述第三层握手响应数据与所述第三层握手加密信息进行比较,若两者匹配说明三级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
当然,在另一些实施例中,所述用户等级的数量还可以为其他数值,如两个安全等级或四个以上的安全等级,相对应地,所述测试密钥信息的层级也可以为其他数量,具体根据实际需要进行设置。当测试密钥信息的层级为其他数量时,其产生的方式可以参考图4所示的电路应用过程,此处不再赘述。
如图5所示,一种防DPA攻击的待测电路安全仿真分析方法,其特征在于,所述方法应用于本申请第一方面所述的装置,所述方法包括以下步骤:
首先进入步骤S501关键信息存储单元存储关键信号和关键信号对应的路径信息;
而后进入步骤S502仿真电路单元接收测试激励信息进行多次仿真测试;所述激励信息包括所述关键信号;
而后进入步骤S503关键信号监控单元在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;
而后进入步骤S504差分功耗分析单元获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息。
在某些实施例中,所述关键信号包括测试密钥信息,所述测试密钥信息由密钥产生单元生成,所述密钥生成单元包括源数据存储单元、源数据解密单元、层级信息存储单元、根密钥运算单元和层级运算解密单元;
如图6所示,所述方法包括以下步骤:
首先进入步骤S601源数据存储单元存储加密后的源数据,所述源数据包括源密钥和层级加解密算法。
而后可以进入步骤S602源数据解密单元获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中。
与步骤S601和步骤S602相并行地,可以进入步骤S603层级信息存储单元存储层级密钥信息和用户标识信息;
步骤S602和步骤S603后可以进入步骤S604根密钥运算单元获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息。
步骤S604之后可以进入步骤S605层级解密运算单元获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本实用新型的专利保护范围。因此,基于本实用新型的创新理念,对本文所述实施例进行的变更和修改,或利用本实用新型说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本实用新型的专利保护范围之内。
Claims (9)
1.一种防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述装置包括:
关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;
仿真电路单元,用于接收测试激励信息进行多次仿真测试;所述激励信息包括所述关键信号;
关键信号监控单元,用于在每一次仿真测试时,根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录变化时间戳信息;
差分功耗分析单元,用于获取每一关键信号对应的第一功耗信息和第二功耗信息,并计算所述第一功耗信息和第二功耗信息的功耗差值,分析各关键信号的功耗差值是否存在关联,若存在关联则发出提示信息;
所述第一功耗信息为本次仿真测试时关键信号在变化时间戳信息对应的功耗信息,所述第二功耗信息为上一次仿真测试时关键信号在变化时间戳信息对应的功耗信息。
2.如权利要求1所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述装置包括:
功耗计算单元,用于计算待测电路在每次仿真过程中的功耗数据;
功耗数据存储,用于存储功耗计算单元计算得到的功耗数据;
差分功耗分析单元,用于本次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元中获取第一功耗信息,以及根据上一次仿真测试时关键信号在变化时间戳信息从所述功耗数据存储单元中获取第二功耗信息。
3.如权利要求1所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述关键信号监控单元包括标记插入单元;
所述标记插入单元用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等。
4.如权利要求1所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述装置还包括:
随机数产生单元,用于产生随机数;
仿真激励生成单元,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元。
5.如权利要求4所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述装置还包括:
逻辑综合单元,用于对待测电路进行逻辑综合运算,得到网表信息;
功耗计算单元,用于根据所述网表信息计算待测电路在整个仿真过程中的功耗仿真数据。
6.如权利要求1所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,关键信号包括多个变化类型;所述变化类型根据两次仿真测试时关键信号变化时的值进行确定;
差分功耗分析单元,用于判断关键信号在某一变化类型的功耗差值与其他变化类型的功耗差值的差异是否大于预设误差,若是则判定关键信号在该变化类型上存在相关性。
7.如权利要求1所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元,用于产生所述测试密钥信息;
密钥记录单元,用于存储所述测试密钥信息;
差分功耗分析单元,用于获取所述测试密钥信息,并判断各测试密钥信息对应的功耗差值是否相关。
8.如权利要求7所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述密钥产生单元包括:
源数据存储单元,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元,用于获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元,用于存储层级密钥信息和用户标识信息;
根密钥运算单元,用于获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元,用于获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
9.如权利要求8所述的防DPA攻击的待测电路安全仿真分析装置,其特征在于,所述层级信息存储单元还用于存储握手请求信息和握手响应信息;
所述密钥产生单元包括:
握手解密运算电路,用于采用所述测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息;
握手加密运算电路,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息;
握手信息校验电路,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验,将所述测试密钥信息存储于所述密钥记录单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022417852.4U CN213028070U (zh) | 2020-10-27 | 2020-10-27 | 一种防dpa攻击的待测电路安全仿真分析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202022417852.4U CN213028070U (zh) | 2020-10-27 | 2020-10-27 | 一种防dpa攻击的待测电路安全仿真分析装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN213028070U true CN213028070U (zh) | 2021-04-20 |
Family
ID=75481541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202022417852.4U Active CN213028070U (zh) | 2020-10-27 | 2020-10-27 | 一种防dpa攻击的待测电路安全仿真分析装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN213028070U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134685A (zh) * | 2020-10-27 | 2020-12-25 | 深圳安捷丽新技术有限公司 | 一种防dpa攻击的待测电路安全仿真分析方法和装置 |
-
2020
- 2020-10-27 CN CN202022417852.4U patent/CN213028070U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134685A (zh) * | 2020-10-27 | 2020-12-25 | 深圳安捷丽新技术有限公司 | 一种防dpa攻击的待测电路安全仿真分析方法和装置 |
CN112134685B (zh) * | 2020-10-27 | 2024-02-13 | 深圳安捷丽新技术有限公司 | 一种防dpa攻击的待测电路安全仿真分析方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chatzikonstantinou et al. | Evaluation of cryptography usage in android applications | |
CN108199832B (zh) | 一种cloc认证加密算法抵御差分故障攻击的检测方法 | |
CN108055120B (zh) | 一种检测aes-otr算法抵御差分故障攻击的方法 | |
CN110011794B (zh) | 密码机密钥属性的测试方法 | |
US7984305B2 (en) | Encryption processing apparatus and encryption processing method for setting a mixed encryption processing sequence | |
CN112115657A (zh) | 一种防单一时间攻击的芯片安全仿真分析方法和装置 | |
CN213028070U (zh) | 一种防dpa攻击的待测电路安全仿真分析装置 | |
CN112134685B (zh) | 一种防dpa攻击的待测电路安全仿真分析方法和装置 | |
CN213547530U (zh) | 一种防spa攻击的待测电路安全仿真分析装置 | |
Hazarika et al. | A novel partial image encryption using chaotic logistic map | |
JP2019192101A (ja) | 脆弱性情報生成装置および脆弱性評価装置 | |
CN112152780B (zh) | 一种防sema攻击的待测电路安全仿真分析方法和装置 | |
CN112114248A (zh) | 一种防差分时间攻击的芯片安全仿真分析方法和装置 | |
CN106650504B (zh) | 一种针对Web页面数据的摘要提取方法及检测方法 | |
WO2016063512A1 (ja) | Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体 | |
CN112532374A (zh) | 一种检测silc认证加密算法抵御差分故障攻击的方法 | |
CN104935783A (zh) | 一种安全的主动式图像篡改检测方法及装置 | |
CN112104447B (zh) | 一种防spa攻击的待测电路安全仿真分析方法和装置 | |
CN213276647U (zh) | 一种防时间攻击的安全仿真分析装置 | |
CN112559236A (zh) | 加密运算处理器芯片的故障报文检测方法及装置 | |
CN112104448B (zh) | 一种防dema攻击的待测电路安全仿真分析方法和装置 | |
Craiger et al. | Law enforcement and digital evidence | |
CN113156295B (zh) | 一种适用于电力安全芯片响应时间的测试方法及系统 | |
Zhou et al. | Leakage detection with Kolmogorov-Smirnov test | |
CN112511291A (zh) | 一种检测ocb认证加密算法抵御差分故障攻击的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: No.302, no.6, zone 2, Fuhai Industrial Zone, Fuyong community, Fuyong street, Bao'an District, Shenzhen City, Guangdong Province Patentee after: Shenzhen anjilite New Technology Co.,Ltd. Address before: No.302, no.6, zone 2, Fuhai Industrial Zone, Fuyong community, Fuyong street, Bao'an District, Shenzhen City, Guangdong Province Patentee before: Shenzhen anjili New Technology Co.,Ltd. |