一种加密芯片安全性能测试方法和装置制造方法

文档序号:7805239阅读:113来源:国知局
一种加密芯片安全性能测试方法和装置制造方法
【专利摘要】本发明适用于测试领域,提供了一种加密芯片安全性能测试方法和装置,该方法包括:根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数;查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器并插入扫描链;使被攻击芯片工作在测试模式下,由扫描输出所述被攻击参数的扫描输出结果确定加密芯片的安全性。本发明实施例由于采用扫描链插入到与被攻击参数相关的敏感寄存器,从而能够获取被攻击参数的变化,从而更加直观的判断是否产生有效的错误,有效提高加密芯片安全性的测试效率。
【专利说明】一种加密芯片安全性能测试方法和装置
【技术领域】
[0001]本发明属于测试领域,尤其涉及一种加密芯片安全性能测试方法和装置。
【背景技术】
[0002]随着通信技术的发展,信息安全也显得越来越重要。虽然芯片中有复杂的加解密算法和密钥保护机制,但是,芯片仍然容易受到诱导错误攻击,从而造成芯片中的数据内容的泄露。
[0003]为避免芯片受到诱导错误攻击时的数据泄露,比如私钥的泄露,需要对安全芯片内的加密电路的安全性和稳定性进行测试。其中,错误注入攻击就是一种广泛使用的、用来评估加密芯片的容错能力以及、故障对加密芯片影响的安全性能测试方法。
[0004]加密芯片的错误注入攻击原理是:通过人为的注入一定的错误,根据错误传输机理和加解密的结果分析出密钥信息的方法。其中,常见的用于注入的诱导错误包括:电压和时钟突变错误、激光诱导错误、X射线和离子束注入错误。
[0005]然而,由于现在的错误注入技术在时间及空间上的不确定性,一方面不能有效的将注入的错误产生的内部变化反映在输出结果,另一方面,在实际应用中,仅凭输出的加解密结果,很难分析判断出产生错误的机制。从而使得现有的加密芯片测试方法的测试效率较低。

【发明内容】

[0006]本发明实施例的目的在于提供一种加密芯片的安全性能测试方法,以解决现有技术的加密芯片的测试过程中,注入的错误所产生的内部变化不能反应在输出结果,仅凭输出加解密结果,很难分析判断产生错误的机制,导致现有加密芯片的测试效率低的问题。
[0007]本发明实施例是这样实现的,一种加密芯片安全性能测试方法,所述方法包括:
[0008]根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数;
[0009]根据所述错误注入攻击的被攻击参数,查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器;
[0010]在计算所述被攻击参数相关的敏感寄存器插入扫描链;
[0011]根据输入的测试向量以及所述错误注入攻击,扫描输出所述被攻击参数的扫描输出结果;
[0012]将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性。
[0013]本发明实施例的另一目的在于提供一种加密芯片安全性能测试装置,所述装置包括:
[0014]被攻击参数确定单元,根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数;
[0015]敏感寄存器查找单元,用于根据所述错误注入攻击的被攻击参数,查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器;
[0016]扫描链插入单元,用于在计算所述被攻击参数相关的敏感寄存器插入扫描链;
[0017]结果输出单元,用于根据输入的测试向量以及所述错误注入攻击,扫描输出所述被攻击参数的扫描输出结果;
[0018]安全性确定单元,用于将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性。
[0019]在本发明实施例中,根据芯片的加密算法确定注入的错误攻击的被攻击参数,并根据所述被攻击参数,查找在计算所述被攻击参数所使用的相关的寄存器,称之为敏感寄存器,并将敏感寄器中插入到扫描链中,扫描输出被攻击参数因注入的错误攻击而产生的变化结果,并将被攻击参数的输出结果与期望的扫描输出结果比较,确定加密芯片的安全性。本发明实施例由于将敏感寄存器插入到扫描链中,从而能够获取被攻击参数的变化,从而更加直观的判断是否产生有效的错误,有效提高加密芯片安全性的测试效率。
【专利附图】

【附图说明】
[0020]图1是本发明实施例提供的加密芯片安全性能测试方法的实现流程图;
[0021]图2是本发明实施例提供的加密芯片安全性能测试的结构示意图;
[0022]图3是本发明实施例提供的加密芯片安全性能测试装置的结构示意图;
【具体实施方式】
[0023]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0024]本发明实施例所述加密芯片安全性能测试方法,可用于加密芯片设计阶段的安全评估,也可用于加密芯片的实际测试。
[0025]在设计阶段的安全评估过程中,在门级网表中人为引入错误的情况下,通过仿真可以得到错误攻击所产生的针对被攻击参数的扫描输出结果,根据所述结果与期望的扫描输出结果比较,即可得到设计阶段的加密算法是否符合安全性要求。
[0026]在实际测试过程中,可以根据预先在芯片中插入的、位于敏感寄存器处的扫描链,得到被攻击参数的变化结果,根据扫描链的输出结果进行比较分析,可以测出芯片是否符合安全要求。下面结合实施例具体说明。
[0027]如图1示出了本发明实施例提供的加密芯片安全性能测试方法的实现流程,详述如下:
[0028]在步骤SlOl中,根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数。
[0029]具体的,由于本发明实施例可用于加密芯片的设计阶段,也可用于加密芯片的测试阶段,因此,本发明实施例中所述的加密芯片,在芯片的加密设计阶段也可称为对芯片的加密设计(芯片是需要经过设计,并且经过流片生产的成品),在芯片的测试阶段称为加密芯片,为便于描述,统称为加密芯片。
[0030]本发明实施例中所述的芯片加密算法,并不局限于一种加密算法,可以为对称加密算法AES、DES,也可以为非对称加密算法RSA、ECC,当然,还可以为其它类型的算法,如国家商用的密码算法等。
[0031]其中,AES加密算法(其英文全称为Advanced Encryption Standard,中文全称为高级加密标准),基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。
[0032]AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。
[0033]所述DES (英文全称为Data Encryption Algorithm,中文全称为数据加密算法),是一种对称加密算法,是使用最广泛的密钥系统,特别是在保护金融数据的安全。
[0034]DES使用一个56位的密钥以及附加的8位奇偶校验位(每组的第8位作为奇偶校验位),产生最大64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16轮循环,使用异或,置换,代换,移位操作四种基本运算。
[0035]所述RSA,即公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
[0036]在公开密钥密码体制中,加密密钥(即公开密钥)是公开信息,而解密密钥(即秘密密钥)是需要保密的。加密算法和解密算法也都是公开的。虽然秘密密钥是由公开密钥决定的,但却不能根据公开密钥计算出秘密密钥。
[0037]所述ECC (英文全称为Elliptic Curves Cryptography,中文全称为椭圆曲线密码编码学)加密算法,ECC算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。
[0038]所述根据加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数,根据不同的加密算法,所述被攻击参数也不相同,如对于CRT(英文全称为=Chineseremainder theorem,中文全称为:中国剩余定理)RSA加密算法中,只要其中一个幂运算(Sp*SQ)发生错误,就可以成功的推算出密钥。因此,对于RSA-CRT加密算法中的被攻击参数,即可以是SP,也可以是SQ。
[0039]对于其它的加密算法,也可以根据加密算法所对应的错误攻击注入参数,相应的确定被攻击参数。
[0040]在步骤S102中,根据所述错误注入攻击的被攻击参数,查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器。
[0041]具体的,所述注入的错误攻击,可以包括但不局限于重离子错误攻击、激光照射错误攻击、X射线错误攻击等。
[0042]所述查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器,可以根据被攻击参数的表达式,得到与计算所述被攻击参数相关的因子,该相关的因子定义的寄存器存储空间即为敏感寄存器。
[0043]在步骤S103中,在计算所述被攻击参数相关的敏感寄存器插入扫描链。[0044]具体的,根据安全可测性设计工具(DFST,英文全称为Design for SafeTestability),在计算所述被攻击参数相关的敏感寄存器中插入扫描链。
[0045]所述扫描链,(英文全称为:Scan chain)是可测试性设计的一种实现技术。它通过植入移位寄存器,使得测试人员可以从外部控制和观测电路内部触发器的信号值。
[0046]在步骤S104中,根据输入的测试向量以及所述错误注入攻击,扫描输出所述被攻击参数的扫描输出结果。
[0047]所述测试向量,可以使用自动测试向量工具,比如TeraMax,生成测试向量。
[0048]在步骤S105中,将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性。
[0049]所述敏感寄存器,为与被攻击参数的计算相关的寄存器,其它未与被攻击参数计算相关的寄存器,以及密钥寄存器不需要插入扫描链。
[0050]这样做的好处在于,一方面可以避免因扫描链的插入而导致芯片的密钥泄露,另一方面诱导错误注入实验下,在测试模式下通过扫描测试即可快速判断该安全芯片的安全程度。
[0051]其中,将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性步骤包括:
[0052]将被攻击的扫描输出结果与期望的扫描输出结果比较,判断两者是否相同;
[0053]如果相同,则所述加密芯片的安全性通过测试验证;
[0054]如果不相同,则所述加密芯片未能通过安全性测试。
[0055]所述期望的扫描输出结果,即加密芯片在接收测试向量输入时,被攻击参数输出的正常结果。
[0056]下面通过具体的非对称加密算法1024位的CRT-RSA加密算法为例进行具体说明,应当理解,CRT-RSA只是其中一种实施方式,本领域一般技术人员还可以想到其它与此相类似的设计方式,均应在本发明的保护范围。
[0057]设a和b是预先计算好的值,P和q为两个素数,n = p*q, d为私钥参数,且:
【权利要求】
1.一种加密芯片安全性能测试方法,其特征在于,所述方法包括: 根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数; 根据所述错误注入攻击的被攻击参数,查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器; 在计算所述被攻击参数相关的敏感寄存器插入扫描链; 根据输入的测试向量以及所述错误注入攻击,扫描输出所述被攻击参数的扫描输出结果; 将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性。
2.根据权利要求1所述方法,其特征在于,所述加密算法为对称加密算法或者非对称加密算法。
3.根据权利要求1或2所述方法,其特征在于,所述芯片的加密算法为CRT-RSA加密算法,所述根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数包括: 根据CRT-RSA加密的签名表达式:s = a.sp+b.sq(modn),确定所述CRT-RSA加密算法中错误注入攻击的被攻击参数为Sp或Sq,其中,
4.根据权利要求1所述方法,其特征在于,将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性步骤包括: 将被攻击的扫描输出结果与期望的扫描输出结果比较,判断两者是否相同; 如果相同,则所述加密芯片的安全性通过测试验证; 如果不相同,则所述加密芯片未能通过安全性测试。
5.根据权利要求1所述方法,其特征在于,所述在计算所述被攻击参数相关的敏感寄存器插入扫描链步骤具体为: 根据可测性设计工具,将所查找的敏感寄存器插入到扫描链中。(该步骤仅用于对插入扫描链,查找敏感寄存器的过程在其它步骤中有限定)。
6.一种加密芯片安全性能测试装置,其特征在于,所述装置包括: 被攻击参数确定单元,根据所述加密芯片的加密算法,确定加密算法中错误注入攻击的被攻击参数; 敏感寄存器查找单元,用于根据所述错误注入攻击的被攻击参数,查找在所述加密芯片中与计算所述被攻击参数相关的敏感寄存器; 扫描链插入单元,用于在计算所述被攻击参数相关的敏感寄存器插入扫描链; 结果输出单元,用于根据输入的测试向量以及所述错误注入攻击,扫描输出所述被攻击参数的扫描输出结果; 安全性确定单元,用于将被攻击的扫描输出结果与期望的扫描输出结果比较,根据比较结果确定加密芯片的安全性。
7.根据权利要求6所述装置,其特征在于,所述加密算法为对称加密算法或者非对称加密算法。
8.根据权利要求6或7所述装置,其特征在于,所述芯片的加密算法为CRT-RSA加密算法,所述被攻击参数确定单元具体用于: 根据CRT-RSA加密的签名表达式:s = a.sp+b.sq(modn),确定所述CRT-RSA加密算法中错误注入攻击的被攻击参数为Sp或Sq,其中,Sii=In1 {mod P),sq - m'.(modi/),dp =
9.根据权利要求6所述装置,其特征在于,所述安全性确定单元包括: 比较子单元,用于将被攻击的扫描输出结果与期望的扫描输出结果比较,判断两者是否相同; 第一验证子单元,用于如果相同,则所述加密芯片的安全性通过测试验证; 第二验证子单元,用于如果不相同,则所述加密芯片未能通过安全性测试。
10.根据权利要求6所述装置,其特征在于,所述扫描链插入单元具体用于:根据可测性设计工具,将所查找的敏感寄存器插入到扫描链中。
【文档编号】H04L9/00GK103997402SQ201410240453
【公开日】2014年8月20日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】邵翠萍, 李慧云, 徐国卿 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1