CN112115657A - 一种防单一时间攻击的芯片安全仿真分析方法和装置 - Google Patents

一种防单一时间攻击的芯片安全仿真分析方法和装置 Download PDF

Info

Publication number
CN112115657A
CN112115657A CN202011097247.1A CN202011097247A CN112115657A CN 112115657 A CN112115657 A CN 112115657A CN 202011097247 A CN202011097247 A CN 202011097247A CN 112115657 A CN112115657 A CN 112115657A
Authority
CN
China
Prior art keywords
key
information
unit
test
encryption
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.)
Pending
Application number
CN202011097247.1A
Other languages
English (en)
Inventor
廖裕民
范科伟
孙志刚
明淼晶
廖薇
王敬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Anjili New Technology Co ltd
Original Assignee
Shenzhen Anjili New Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Anjili New Technology Co ltd filed Critical Shenzhen Anjili New Technology Co ltd
Priority to CN202011097247.1A priority Critical patent/CN112115657A/zh
Publication of CN112115657A publication Critical patent/CN112115657A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

本发明提供了一种防单一时间攻击的芯片安全仿真分析方法和装置,所述装置包括:关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;仿真电路单元,用于接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;关键信号监控单元,用于根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;运算时间分析单元,用于确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录。通过上述方案,可以模拟芯片的安全仿真测试,且能够自动完成时间攻击分析。

Description

一种防单一时间攻击的芯片安全仿真分析方法和装置
技术领域
本发明涉及芯片电路设计领域,特别涉及一种防单一时间攻击的芯片安全仿真分析方法和装置。
背景技术
SSD数据存储已经逐渐成为消费设备数据存储和云存储的主要存储介质。对于SSD数据存储来说,数据纠错的意义十分重大,特别是个人关键数据和政府机构相关的数据。SSD主控芯片作为SSD存储设备的大脑,其安全性能直接决定SSD硬盘整体最终的安全性能。
侧信道攻击是主要的黑客攻击手段,在侧信道攻击中,时间攻击又是最常用的的一种。黑客通过分析主控芯片在运行关键信息时的运行时间信息推断出芯片运行的内容。目前技术上有很多防御时间攻击的算法和方法,但是都是要等到芯片设计出来之后再进行详细的验证。因此设计一种能够快速的防时间攻击验证仿真平台就显示非常有意义。
发明内容
为此,需要提供一种防单一时间攻击的芯片安全仿真分析的技术方案,用以解决在芯片设计过程中无法针对时间攻击进行仿真防御的问题。
为实现上述目的,本发明第一方面提供了一种防单一时间攻击的芯片安全仿真分析装置,所述装置包括:
关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;
仿真电路单元,用于接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;
关键信号监控单元,用于根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;
运算时间分析单元,用于确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
进一步地,所述关键信号监控单元包括标记插入单元;
所述标记插入单元用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等;
所述运算时间分析单元用于提取所述标记信号,根据各标记信号的时间戳信息确定所述关键信号对应的变化时间区。
进一步地,所述装置还包括:
随机数产生单元,用于产生随机数;
仿真激励生成单元,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元。
进一步地,所述装置还包括:
绘图单元,用于根据各关键信号的运算时间值生成相应图表。
进一步地,关键信号的变化包括多个不同的变化类型;
运算时间分析单元用于计算各相同变化类型的运算时间值的平均值,当某一变化类型的运算时间值的平均值与其他变化类型的运算时间值的平均值的差异大于预设误差时,则判定关键信号在该变化类型的运算时间值存在相关性。
进一步地,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元,用于产生所述测试密钥信息;
密钥记录单元,用于存储所述测试密钥信息;
运算时间分析单元,用于获取所述测试密钥信息,并判断各测试密钥信息的运算时间值是否相关。
进一步地,所述密钥产生单元包括:
源数据存储单元,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元,用于获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元,用于存储层级密钥信息和用户标识信息;
根密钥运算单元,用于获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元,用于获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
进一步地,所述层级信息存储单元还用于存储握手请求信息和握手响应信息;
所述密钥产生单元包括:
握手解密运算电路,用于采用所述测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息;
握手加密运算电路,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息;
握手信息校验电路,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验,将所述测试密钥信息存储于所述密钥记录单元中;否则校验不通过,不将所述测试密钥信息存储于所述密钥记录单元中。
本发明的第二方面还提供了一种防单一时间攻击的芯片安全仿真分析方法,所述方法应用于如权利要求1所述的装置,所述方法包括以下步骤:
关键信息存储单元存储关键信号和关键信号对应的路径信息;
仿真电路单元接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;
关键信号监控单元根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;
运算时间分析单元确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
进一步地,所述关键信号包括测试密钥信息,所述测试密钥信息由密钥产生单元生成,所述密钥生成单元包括源数据存储单元、源数据解密单元、层级信息存储单元、根密钥运算单元和层级运算解密单元;
所述方法包括以下步骤:
源数据存储单元存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元存储层级密钥信息和用户标识信息;
根密钥运算单元获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
区别于现有技术,上述技术方案所述的防单一时间攻击的芯片安全仿真分析方法和装置,所述装置包括:关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;仿真电路单元,用于接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;关键信号监控单元,用于根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;运算时间分析单元,用于确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录。通过上述方案,在芯片设计阶段,就可以模拟芯片的安全仿真测试,且能够自动完成时间攻击分析。
附图说明
图1为本发明一实施例涉及的防单一时间攻击的芯片安全仿真分析装置的示意图;
图2为本发明另一实施例涉及的防单一时间攻击的芯片安全仿真分析装置的示意图;
图3为本发明一实施例涉及的密钥产生单元的结构示意图;
图4为本发明另一实施例涉及的密钥产生单元的结构示意图;
图5为本发明一实施例涉及的防单一时间攻击的芯片安全仿真分析方法的流程图;
图6为本发明另一实施例涉及的防单一时间攻击的芯片安全仿真分析方法的流程图;
图7为本发明一实施例涉及的绘图单元绘制的图表示意图。
附图标记说明:
101、关键信息存储单元;
102、仿真电路单元;
103、关键信号监控单元;201、标记插入单元;
104、运算时间分析单元;
105、随机数产生单元;
106、仿真激励生成单元;
107、绘图单元;
108、密钥产生单元;
301、源数据存储单元;
302、源数据解密单元;
303、算法信息存储单元;
304、层级信息存储单元;
305、根密钥运算单元;
306、层级解密运算单元;3061、一级解密运算单元;3062、二级解密运算单元;3063、三级解密运算单元;
307、握手解密运算电路;3071、一级握手解密运算电路;3072、二级握手解密运算电路;3073、三级握手解密运算电路;
308、握手加密运算电路;3081、一级握手加密运算电路;3082、二级握手加密运算电路;3083、三级握手加密运算电路;
309、握手信息校验电路;
310、密钥选择单元;
311、算法选择单元;3111、一级算法选择单元;3112、二级算法选择单元;3113、三级算法选择单元;
109、密钥记录单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
如图1所示,本发明第一方面提供了一种防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述装置包括:
关键信息存储单元101,用于存储关键信号和关键信号对应的路径信息。所述关键信号是指待安全监测的数据,对于计算机而言一般是一串由“0”或“1”组成的机器代码,可以是密钥信息,也可以是重要性较强的安全数据。所述路径信息是指所述关键信号的可执行路径的集合,通过选择适当的测试用例可以及时检测出关键信号的变化情况,进而进行收集和分析。
在本实施方式中,关键信号和关键信号对应的路径信息可以通过以下方式获得:在仿真测试开始之前,先对待测的主控芯片完成一次RTL测试设计,并把RTL设计的待测试电路作为输入文件让仿真分析平台开始工作,以及将RTL设计中的关键信号和这些信号对应的路径信息写入关键信息存储单元中。
仿真电路单元102,用于接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号。所述测试激励信息是指测试用例,测试用例是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。所述仿真电路单元102可以通过仿真电路工具来实现,如VCS仿真工具和modelsim仿真工具。
关键信号监控单元103,用于根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息。当关键信号按照对应的路径信息执行时,如果其发生变化(如从“0”变成“1”),此时记录当前的时间戳信息,后期通过筛选关键信号变化的时间戳信息进行分析,就可以分析关键信号在各个类型变化上存在的关联性,进而判断关键信号当前是否存在被攻击的可能性。
运算时间分析单元104,用于确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
例如当某一关键信号的变化类型的运算时间值明显高于或低于其他变化类型时,则可以判定关键信号在该变化类型上存在相关性,即关键信号在仿真过程中存在被攻击的可能性,而后会对这一变化类型的运算时间值统一予以记录,以供技术人员进一步分析。
通过上述方案,在芯片设计的早期阶段,就可以模拟芯片的安全仿真测试,具体是通过各种测试用例来对主控芯片的性能进行检测,主要包括关键信号变化的时间检测,从而对于黑客采用时间攻击方式进行有效预警,大幅提高了分析效率。
如图2所示,所述关键信号监控单元103包括标记插入单元201。所述标记插入单元201用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等;所述运算时间分析单元104用于提取所述标记信号,根据各标记信号的时间戳信息确定所述关键信号对应的变化时间区。
在实际应用过程中,关键信号监控单元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)setflag_a=1’b1;
这样就可以让路径为path_x的a在值为1时把标识信号a标记置为1,即所述标记信号的值与所述关键信号的值实时相等。待测试激励信息都遍历完成后,通过搜索调取所有标记信号的值,就可以清晰地获知各关键信号的值的变化情况。
在某些实施例中,所述装置还包括:
随机数产生单元105,用于产生随机数。优选的,随机数产生单元每隔一定时间产生一个随机数,产生的随机数是随机的,这样可以使得仿真激励生成单元生成的激励也完全随机。
仿真激励生成单元106,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元。随机数作为影响测试激励信息生成的影响因子,可以保证测试激励信息生成的随机性,从而仿真模拟各个应用场景下主控芯片的运行过程。为了保证测试激励信息能够尽可能地覆盖所有可能发生的情况,因而在本实施例中,随机数产生单元105所产生的随机数数量也足够大(超过预设数量)。
在某些实施例中,所述装置还包括:绘图单元107,用于根据各关键信号的运算时间值生成相应图表。这样,测试人员通过生成的图表就可以很直观地看出当前各关键信号的运算时间是否存在关联性,并在各关键信号的运算时间存在关联性的时候进一步分析当前电路是否存在着被时间攻击的可能,从而有效提升测试分析效率。
例如关键信息为测试密钥信息,所述测试密钥信息为8个比特位的数值,各个比特位对应的变化时间区的运算时间值如表1所示
密钥值 0 1 0 1 1 0 0 1
时间(ms) 3.9 8 3 8.5 7.8 3.2 2.5 9
表1-各个比特位对应的变化时间区的运算时间值表
从表1中可以看出,当密钥信息的比特位的数值为1时,如表1中的第2位、第4位、第5位和第8位时,其对应的运算时间值要明显高于比特位数值为0时的运算时间,即可以判定密钥信息在比特位变化到1时在运算时间上存在关联,测试人员可以进一步分析当前主控芯片存在时间攻击的可能性。
为了使得测试人员能够更加直观地获知仿真结果,如图7所示,根据表1中记录的本次仿真过程中密钥信息的每个Bit值和相应这些Bit的运算时间,生成一个折线变化图,图7中的横轴表示关键信号值(如密钥信息各个比特位的密钥值),纵轴为对应的运算时间值。从图7中可以很直观地看到密钥值的变化是否和时间发生了线性相关的关系,如果存在相关性,说明当前待测芯片在进行运算过程中很容易被黑客发现规律从而破解安全信息,测试人员可以进一步优化相关设计以提升芯片整体的安全性能。
优选的,关键信号的变化包括多个不同的变化类型。所述运算时间分析单元104用于计算各相同变化类型的运算时间值的平均值,当某一变化类型的运算时间值的平均值与其他变化类型的运算时间值的平均值的差异大于预设误差时,则判定关键信号在该变化类型的运算时间值存在相关性。
例如预设误差可以设置为某一变化类型的运算时间值的平均值与其他变化类型的运算时间值的平均值的比例为30%,以表1中的数据为例,表1中的密钥值为1时,多次出现运算时间在8mS左右的情况,而其他类型的密钥值的平均只有2.6mS,两者之间的比值出现307.6%的区别,即远大于预设误差的情况,因而可以认定当变化类型为1(从其他值变到1)时,关键信号在这一变化类型上存在明显的相关性。当然,预设误差可以根据实际需要进行设定,如设定为两个变化类型的运算时间值之间的差值在2ms内,或者两者之间的比例在50%以下等等。
在某些实施例中,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元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所示,本申请的第二方面还提供了一种防单一时间攻击的芯片安全仿真分析方法,其特征在于,所述方法应用于如本申请第一方面所述的装置,所述方法包括以下步骤:
首先进入步骤S501关键信息存储单元存储关键信号和关键信号对应的路径信息;
而后进入步骤S502仿真电路单元接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;
而后进入步骤S503关键信号监控单元根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;
而后进入步骤S504运算时间分析单元确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
在某些实施例中,所述关键信号包括测试密钥信息,所述测试密钥信息由密钥产生单元生成,所述密钥生成单元包括源数据存储单元、源数据解密单元、层级信息存储单元、根密钥运算单元和层级解密运算单元。
如图6所示,所述方法包括以下步骤:
首先进入步骤S601源数据存储单元存储加密后的源数据,所述源数据包括源密钥和层级加解密算法。
而后可以进入步骤S602源数据解密单元获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中。
与步骤S601和步骤S602相并行地,可以进入步骤S603层级信息存储单元存储层级密钥信息和用户标识信息;
步骤S602和步骤S603后可以进入步骤S604根密钥运算单元获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息。
步骤S604之后可以进入步骤S605层级解密运算单元获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (10)

1.一种防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述装置包括:
关键信息存储单元,用于存储关键信号和关键信号对应的路径信息;
仿真电路单元,用于接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;
关键信号监控单元,用于根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;
运算时间分析单元,用于确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
2.如权利要求1所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述关键信号监控单元包括标记插入单元;
所述标记插入单元用于设置标记信号,并将所述标记信号插入所述关键信号对应的路径信息中,以及在所述标记信号值发生变化时,记录当前时间戳信息;所述标记信号的值与所述关键信号的值实时相等;
所述运算时间分析单元用于提取所述标记信号,根据各标记信号的时间戳信息确定所述关键信号对应的变化时间区。
3.如权利要求1所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述装置还包括:
随机数产生单元,用于产生随机数;
仿真激励生成单元,用于根据所述随机数产生单元产生的随机数生成测试激励信息,并将所述测试激励信息传输给所述仿真电路单元。
4.如权利要求1所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述装置还包括:
绘图单元,用于根据各关键信号的运算时间值生成相应图表。
5.如权利要求1所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,关键信号的变化包括多个不同的变化类型;
运算时间分析单元用于计算各相同变化类型的运算时间值的平均值,当某一变化类型的运算时间值的平均值与其他变化类型的运算时间值的平均值的差异大于预设误差时,则判定关键信号在该变化类型的运算时间值存在相关性。
6.如权利要求1所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述关键信息包括测试密钥信息;所述装置包括:
密钥产生单元,用于产生所述测试密钥信息;
密钥记录单元,用于存储所述测试密钥信息;
运算时间分析单元,用于获取所述测试密钥信息,并判断各测试密钥信息的运算时间值是否相关。
7.如权利要求6所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述密钥产生单元包括:
源数据存储单元,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元,用于获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元,用于存储层级密钥信息和用户标识信息;
根密钥运算单元,用于获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元,用于获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
8.如权利要求6所述的防单一时间攻击的芯片安全仿真分析装置,其特征在于,所述层级信息存储单元还用于存储握手请求信息和握手响应信息;
所述密钥产生单元包括:
握手解密运算电路,用于采用所述测试密钥信息对所述测试密钥信息自身进行解密,得到握手加密密钥信息;
握手加密运算电路,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息;
握手信息校验电路,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验,将所述测试密钥信息存储于所述密钥记录单元中;否则校验不通过,不将所述测试密钥信息存储于所述密钥记录单元中。
9.一种防单一时间攻击的芯片安全仿真分析方法,其特征在于,所述方法应用于如权利要求1所述的装置,所述方法包括以下步骤:
关键信息存储单元存储关键信号和关键信号对应的路径信息;
仿真电路单元接收测试激励信息进行仿真测试;所述测试激励信息包括所述关键信号;
关键信号监控单元根据所述关键信号对应的路径信息监控所述关键信号,并在所述关键信号发生变化时,记录当前时间戳信息;
运算时间分析单元确定所述关键信号对应的变化时间区,以及计算所述变化时间区的运算时间值,并判断各关键信号的运算时间值是否相关,若相关则对具有相关性的各关键信号及其对应的运算时间值予以记录;所述关键信号对应的变化时间区是指当前关键信号发生变化的时间戳信息与上一次该关键信号发生变化的时间戳信息的差值。
10.如权利要求9所述的防单一时间攻击的芯片安全仿真分析方法,其特征在于,所述关键信号包括测试密钥信息,所述测试密钥信息由密钥产生单元生成,所述密钥生成单元包括源数据存储单元、源数据解密单元、层级信息存储单元、根密钥运算单元和层级运算解密单元;
所述方法包括以下步骤:
源数据存储单元存储加密后的源数据,所述源数据包括源密钥和层级加解密算法;
源数据解密单元获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中;
层级信息存储单元存储层级密钥信息和用户标识信息;
根密钥运算单元获取所述用户标识信息和解密后的源密钥,根据所述解密后的源密钥对所述用户标识信息进行哈希运算,得到根密钥信息;
层级运算解密单元获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到所述测试密钥信息。
CN202011097247.1A 2020-10-14 2020-10-14 一种防单一时间攻击的芯片安全仿真分析方法和装置 Pending CN112115657A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011097247.1A CN112115657A (zh) 2020-10-14 2020-10-14 一种防单一时间攻击的芯片安全仿真分析方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011097247.1A CN112115657A (zh) 2020-10-14 2020-10-14 一种防单一时间攻击的芯片安全仿真分析方法和装置

Publications (1)

Publication Number Publication Date
CN112115657A true CN112115657A (zh) 2020-12-22

Family

ID=73793895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011097247.1A Pending CN112115657A (zh) 2020-10-14 2020-10-14 一种防单一时间攻击的芯片安全仿真分析方法和装置

Country Status (1)

Country Link
CN (1) CN112115657A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887085A (zh) * 2021-01-13 2021-06-01 深圳安捷丽新技术有限公司 一种ssd固态硬盘主控芯片安全密钥生成方法、装置和系统
CN116842763A (zh) * 2023-08-31 2023-10-03 国汽(北京)智能网联汽车研究院有限公司 仿真测试方法、装置、电子设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887085A (zh) * 2021-01-13 2021-06-01 深圳安捷丽新技术有限公司 一种ssd固态硬盘主控芯片安全密钥生成方法、装置和系统
CN112887085B (zh) * 2021-01-13 2022-06-24 深圳安捷丽新技术有限公司 一种ssd固态硬盘主控芯片安全密钥生成方法、装置和系统
CN116842763A (zh) * 2023-08-31 2023-10-03 国汽(北京)智能网联汽车研究院有限公司 仿真测试方法、装置、电子设备和存储介质
CN116842763B (zh) * 2023-08-31 2024-01-26 国汽(北京)智能网联汽车研究院有限公司 仿真测试方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
Chatzikonstantinou et al. Evaluation of cryptography usage in android applications
US10462170B1 (en) Systems and methods for log and snort synchronized threat detection
CN112115657A (zh) 一种防单一时间攻击的芯片安全仿真分析方法和装置
CN110011794B (zh) 密码机密钥属性的测试方法
CN108199832B (zh) 一种cloc认证加密算法抵御差分故障攻击的检测方法
WO2016083864A1 (en) Methods for recovering secret data of a cryptographic device and for evaluating the security of such a device
US20120284532A1 (en) Method and system for recovering cryptographic operations and/or secrets
JP7040992B2 (ja) 脆弱性情報生成装置および脆弱性評価装置
Hurley-Smith et al. On the unbearable lightness of FIPS 140–2 randomness tests
JP5413010B2 (ja) 分析装置、分析方法およびプログラム
CN213028070U (zh) 一种防dpa攻击的待测电路安全仿真分析装置
CN213547530U (zh) 一种防spa攻击的待测电路安全仿真分析装置
US10282239B2 (en) Monitoring method
CN112134685B (zh) 一种防dpa攻击的待测电路安全仿真分析方法和装置
CN112114248A (zh) 一种防差分时间攻击的芯片安全仿真分析方法和装置
Mather et al. Pinpointing side-channel information leaks in web applications
CN112152780B (zh) 一种防sema攻击的待测电路安全仿真分析方法和装置
CN213276647U (zh) 一种防时间攻击的安全仿真分析装置
CN112532374A (zh) 一种检测silc认证加密算法抵御差分故障攻击的方法
CN112751823A (zh) 一种外发数据生成方法、外发安全管控方法及系统
CN115828224B (zh) 一种Go语言密码误用自动化检测方法及装置
CN112104447B (zh) 一种防spa攻击的待测电路安全仿真分析方法和装置
CN106650504A (zh) 一种针对Web页面数据的摘要提取方法及检测方法
Craiger et al. Law enforcement and digital evidence
CN112104448B (zh) 一种防dema攻击的待测电路安全仿真分析方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination