Rsa算法私钥元素获取方法及获取装置制造方法

文档序号:7775734阅读:272来源:国知局
Rsa算法私钥元素获取方法及获取装置制造方法
【专利摘要】本发明实施例公开了安全芯片中的RSA算法私钥元素获取方法及RSA算法私钥元素获取装置。所述方法包括:设置测试码;利用测试码获取基准功耗曲线;为测试码设置预设值;对测试码低半部分的最高比特位进行修正;从高到低依次对测试码的低半部分比特位的值进行修正;在除第0比特位之外的其他比特位的值修正完成后,对测试码中的数据进行验证;当测试码中的数据通过验证时,获取测试码中的数据,测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。所述装置包括:设置单元,获取单元,预设单元,第一修正单元,第二修正单元,验证单元,确定单元。本发明提供的方法可以获得安全芯片中的RSA算法私钥元素。
【专利说明】RSA算法私钥元素获取方法及获取装置
【技术领域】
[0001]本发明涉及安全认证领域,尤其涉及安全芯片中的RSA算法私钥元素获取方法及获取装置。
【背景技术】
[0002]RSA算法是一种非对称密码算法。在使用该算法时,首先选择两个素数作为RSA算法的第一私钥元素与第二私钥元素,然后使用这两个私钥元素生成包含公钥和私钥的密钥对。使用密钥对中的公钥对数据进行加密时,只有使用私钥才能对加密后的数据进行解密,同样的,使用密钥对中的私钥对数据进行签名时,只有使用公钥才能对签名后的数据进行认证。
[0003]随着技术的发展,RSA算法已经得到广泛应用,出现了各种能够实现RSA算法的安全芯片。基于能够实现RSA算法的安全芯片,各种安全产品也已经普遍应用于金融、通信、社保、交通等各个领域。为了测试智能卡等安全产品的安全性,尤其是安全芯片实现RSA算法过程的安全性,人们使用了各种各样的方法获取安全芯片的RSA算法私钥。如果能够根据已知的公钥或其他信息获取到私钥,那么说明安全芯片实现RSA算法过程是不安全的。
[0004]发明人对现有技术研究后发现,安全芯片RSA算法的公钥和私钥都根据作为RSA算法私钥元素的两个素数计算生成,因此获取安全芯片的RSA算法私钥最简单的方法就是获取生成安全芯片的RSA算法私钥的RSA算法私钥元素,进而根据RSA算法私钥元素获取安全芯片的RSA算法私钥。但是现有方法都不能满足获取安全芯片的RSA算法私钥元素的需求。

【发明内容】

[0005]本发明实施例提供了安全芯片中的RSA算法私钥元素获取方法及安全芯片中的RSA算法私钥元素获取装置,以获取安全芯片的RSA算法私钥元素。
[0006]一方面,本发明实施例提供了一种安全芯片中的RSA算法私钥元素获取方法,该方法包括:设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;利用所述测试码获取所述被测安全芯片的基准功耗曲线;在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I ;根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-Ι比特位的值进行修正;在所述第t-Ι比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i_l比特位的值进行修正,其中i属于[2,t-Ι];在所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0007]结合一方面,在一方面的第一种可能的实现方式中,所述利用所述测试码获取所述被测安全芯片的基准功耗曲线包括:将所述测试码高半部分所有比特位的值设置为O,低半部分所有比特位的值设置为1,生成第一值;使用公钥对所述第一值进行加密生成第一结果;获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线;将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为O,生成第二值;使用公钥对所述第二值进行加密生成第二结果;获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线;对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
[0008]结合一方面的第一种可能的实现方式,在一方面的第二种可能的实现方式中,所述使用所述基准功耗曲线对所述测试码第t-Ι比特位的值进行修正包括:使用公钥对测试码中的数据进行加密生成第三结果;获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线;从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)Hiod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-Ι比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为O。
[0009]结合一方面的第一种可能的实现方式,在一方面的第三种可能的实现方式中,所述对所述测试码第1-Ι比特位的值进行修正包括:在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-Ι];获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线;从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第1-Ι比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第i_l比特位的值设置为0,其中i属于[2,t-Ι]。
[0010]结合一方面的第一种可能的实现方式,在一方面的第四种可能的实现方式中,所述根据所述基准功耗曲线对所述测试码中的数据进行验证,包括:在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线;从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执S(SP-SQ)Hiod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;所述当所述比特值通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素,具体为:如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0011]另一方面,本发明实施例还提供了一种安全芯片中的RSA算法私钥元素获取装置,该装置包括:设置单元,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;获取单元,用于利用所述利用设置单元设置的所述测试码获取所述被测安全芯片的基准功耗曲线;预设单元,用于在所述获取单元获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I ;第一修正单元,用于根据所述获取单元获取到的所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;第二修正单元,用于在第一修正单元对所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i_l比特位的值进行修正,其中i属于[2,t-Ι];验证单元,用于在第二修正单元对所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;确定单元,用于当所述测试码中的数据通过所述验证单元的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0012]结合另一方面,在另一方面的第一种可能的实现方式中,所述获取单元包括:第一值设置子单元,用于将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;第一加密子单元,用于使用公钥对所述第一值设置子单元设置的所述第一值进行加密生成第一结果;第一获取子单元,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;第二值设置子单元,用于在所述第一获取子单元获取到所述第一功耗曲线后,将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为0,生成第二值;第二加密子单元,用于使用公钥对所述第二值设置子单元设置的所述第二值进行加密生成第二结果;第二获取子单元,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线;曲线获取子单元,用于对所述第一获取子单元获取的所述第一功耗曲线与所述第二获取子单元获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
[0013]结合另一方面的第一种可能的实现方式,在另一方面的第二种可能的实现方式中,所述第一修正单元包括:第三加密子单元,用于使用公钥对测试码中的数据进行加密生成第三结果;第三获取子单元,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线;第一生成子单元,用于从所述第三获取子单元获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第一比较子单元,用于比较所述第一生成子单元获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;第一确定子单元,用于经过所述第一比较子单的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-Ι比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-Ι比特位的值设置为O。
[0014]结合另一方面的第一种可能的实现方式,在另一方面的第三种可能的实现方式中,所述第二修正单元包括:第四加密子单元,用于在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-Ι];第四获取子单元,用于获取所述第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线;第二生成子单元,用于从所述第四获取子单元获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第二比较子单元,用于比较所述第二生成子单元获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;第二确定子单元,用于经过所述第二比较子单元的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i_l比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第i_l比特位的值设置为0,其中i属于[2,t-1]。
[0015]结合另一方面的第一种可能的实现方式,在另一方面的第四种可能的实现方式中,所述验证单元包括:第五加密子单元,用于在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;第五获取子单元,用于获取所述第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线;第三生成子单元,用于从所述第五获取子单元获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ) modP运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第三比较子单元,用于比较所述第三生成子单元获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;所述确定单元,用于经过所述第三比较子单元的比较,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0016]与现有技术相比,本发明实施例提供的方法及装置,可以通过对测试码中预设的数据的进行逐位修正,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。
【专利附图】

【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。[0018]图1为本发明安全芯片中的RSA算法私钥元素获取方法一个实施例的流程图;
[0019]图2为本发明安全芯片中的RSA算法私钥元素获取方法另一个实施例的流程图;
[0020]图3为本发明安全芯片中的RSA算法私钥元素获取装置的一个实施例框图;
[0021]图4为本发明安全芯片中的RSA算法私钥元素获取装置获取单元的一个实施例框图;
[0022]图5为本发明安全芯片中的RSA算法私钥元素获取装置第一修正单元的一个实施例框图;
[0023]图6为本发明安全芯片中的RSA算法私钥元素获取装置第二修正单元的一个实施例框图;
[0024]图7为本发明安全芯片中的RSA算法私钥元素获取装置验证单元的一个实施例框图。
【具体实施方式】
[0025]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]参见图1,为本发明 安全芯片中的RSA算法私钥元素获取方法一个实施例的流程图,该实施例包括如下步骤:
[0027]步骤101,设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成。
[0028]要获取安全芯片,即所述被测安全芯片的RSA算法私钥元素,首先需要根据所述被测安全芯片的RSA公钥模的比特位长设置一个测试码,该测试码可以用M来表示。由于在实际使用中RSA公钥模的比特长通常为偶数,M可以由比特位长相等的高半部分及低半部分组成,M的高半部分可以用MH表示,低半部分可以用ML表示,即M=MH I |ML。M的每一比特位的值可以根据需要进行设置或修改,对M中的数据进行设置或修改即为对保存在存储空间中的数据进行设置或修改。
[0029]RSA公钥模的比特位长可以2t来表示。当RSA公钥模的比特位长为2t时,MH与ML的比特位长均为t。MH的各个比特位从高到低可以标记为2t-l、2t-2、…、t,ML的各个比特位从高到低可以标记为t-l、t_2、…、O。
[0030]步骤102,利用所述测试码获取所述被测安全芯片的基准功耗曲线。
[0031]被测安全芯片对输入数据进行处理的过程可以用以下表达式表示:CRT (SP, SQ) = (( (SP-SQ) *Qinv)mod P)*Q+SQ,其中,P为被测安全芯片的第一私钥元素,Q为被测安全芯片的第二私钥元素,即,P与Q为预先选择两个素数;Qinv为被测安全芯片的第五私钥元素,即,Qinv为Q关于P的逆;SP为第一中间数据,SQ为第二中间数据。从上述表达式可知被测安全芯片在对数据进行签名或解密处理时,被测芯片对输入数据的处理时需要计算(SP-SQ) mod Po
[0032]根据RSA算法的原理可知,SP=MPdp, SQ=MQdq,其中,DP为e关于P_1的逆,即被测安全芯片的第三私钥元素,DQ为e关于Q-1的逆,即被测安全芯片的第四私钥元素,e为公钥数据,e与密钥长度η共同组成公钥。MP=C mod P, MQ=C mod Q,其中,C为输入到芯片中的数据,即待加密或待签名数据。
[0033]进一步分析可知,
[0034]SP=(C mod P)DP
[0035]=( (Me mod N) mod P)DP
[0036]=Me*DP mod P
[0037]=M mod P
[0038]SQ= (C mod Q)DQ
[0039]=( (Me mod N) mod Q)DQ
[0040]=Me*DQ mod Q
[0041]=M mod Q
[0042]因此,(SP-SQ)mod P= (M mod P-M mod Q)mod P。
[0043]以安全芯片在进行数据加密或签名时采用1024位RSA为例,第一私钥元素P与第二私钥元素Q的取值区间为[1,2512-1] ;iP>Q时,私钥元素的取值区间可以分为三部分,区间一:[1,Q)、区间二:[Q,P)、区间三:[P,2512-1]。
[0044]由于,(SP-SQ) mod P= (M mod P-M mod Q)mod P,
[0045]可知当M中的数据落到区间一或区间二时,
[0046](SP-SQ) mod P ≥ 0,
[0047]此时计算(SP-SQ) mod P,被测安全芯片只需要执行一次减法运算;
[0048]当测试码M中的数据M的值落到区间三时,
[0049](SP-SQ) mod P〈0,
[0050]此时计算(SP-SQ) mod P,被测安全芯片需要执行一次减法,一次加法运算。
[0051]被测安全芯片只执行一次减法运算与执行一次减法并执行一次加法,所需的时间、功耗等会有很大差异,而这一差异可以在功耗曲线上体现出来。其中,功耗曲线可以使用能量分析仪器等设备或方法获取。
[0052]通过为测试码M设置不同的值并对被测安全芯片进行测试,可以获取被测安全芯片获取执行一次减法运算的处理过程对应的第一基准功耗曲线及执行一次减法并执行一次加法的处理过程对应的第二基准功耗曲线。
[0053]具体来说,首先将高半部分MH的所有比特位的值设置为0,低半部分ML的所有比特位的值设置为1,从而生成第一值Ml。使用已知的公钥对Ml进行加密,生成第一结果Cl。把Cl输入被攻击芯片进行签名或解密处理,获取所述被测安全芯片对Cl进行处理的处理过程对应的第一功耗曲线Tarcel。然后,将MH的所有比特位的值设置为0,ML的第I比特位与第O比特位的值设置为1,ML其余所有比特位的值都设置为0,从而生成第二值M2。使用已知的公钥对M2进行加密,生成第二结果C2。把C2输入被攻击芯片进行签名或解密处理,获取所述被测安全芯片对C2进行处理的处理过程对应的第二功耗曲线Tarce2。
[0054]将Tarcel与Tarce2进行对比,根据分析出被测安全芯片只执行一次减法的第一基准功耗曲线TarceA及执行一次减法并执行一次加法的第二基准功耗曲线TarceB。根据芯片的不同,可以采用不同的标准确定TarceA与TarceB,例如,可以根据功耗曲线的特征,确定Tarcel及Tarce2中特定部分作为备选功耗曲线,然后以时间标准,执行时间相对较短的一个备选功耗曲线确定为线TarceA,执行时间相对较长的一个备选功耗曲线确定为TarceB ;或者也可以由技术人员根据经验从Tarcel与Tarce2中间选取出TarceA与TarceB0
[0055]步骤103,在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I。
[0056]在获取到TarceA及TarceB之后,将MH的所有比特位的值设置为0,ML的所有比特位的值设置为1,此时M中的数据可以记为M3。
[0057]步骤104,根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-Ι比特位的值进行修正。
[0058]在对第t-Ι比特位,即ML的最高比特位的值进行设置时,首先使用已知的公钥对M中当前的数据M3,进行加密生成第三结果C3 ;把C3输入被攻击芯片进行签名或解密处理。获取被测安全芯片对C3进行处理的处理过程对应的第三功耗曲线Tarce3 ;在获取到Tarce3之后,从Tarce3中获取被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线作为第一对比曲线Tarce(t-l),其中Tarce(t-l)可以是Tarce3的一部分,技术人员可以根据功耗曲线的特征确定Tarce3的某部分为Tarce (t_l),具体的确定方法在此就不再赘述。比较Tarce (t_l)与TarceA在功耗上是否一致;当Tarce (t_l)与TarceA在功耗上一致时,将ML第t-Ι比特位的值设置为I,或者,当Tarce (t-Ι)与TarceA在功耗上不一致时,将ML第t-Ι比特位的值设置为O。
[0059]步骤105,在所述第t-Ι比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基·准功耗曲线,对所述测试码第i_l比特位的值进行修正,其中i属于[2,t-1]。
[0060]在第t-Ι比特位,即ML的最高比特位的值修正完成后,按照从高比特位到低比特位的顺序,逐比特位设置第t-2比特位到第I比特位每一个比特位的值。
[0061]具体来说,如果i属于[2,卜1],在对第卜1比特位的值进行设置时,首先获取对ML第i比特位的值进行设置后所述测试码M中的数据M(i);使用已知的公钥对M(i)进行加密生成第四结果C(i) ^fC(i)输入所述被测安全芯片进行签名或解密处理,获取所述被测安全芯片对C(i)进行处理的处理过程对应的第四功耗曲线Tarce4 ;从Tarce4中获取第二对比曲线Tarce (i),其中Tarce (i)为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线;比较Tarce (i)与TarceA在功耗上是否一致;当Tarce (i)与TarceA在功耗上一致时,将ML第1-Ι比特位的值设置为I,或者,当Tarce (i)与TarceA在功耗上不一致时,将ML第1-Ι比特位的值设置为O。
[0062]步骤106,在所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证。
[0063]在按照从高到低的顺序将测试码M第t_2比特位到第I比特位的值修正完成后,即ML除第O比特位外的其他比特位的值均修正完成后,获取M中的数据M4 ;使用已知的公钥对M4进行加密生成第五结果C4 ;获取所述被测安全芯片对C4进行处理过程的第五功耗曲线Tarce5 ;WTarce5中获取第三对比曲线Tarce (O),Tarce (O)为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线;比较Tarce (O)与TarceB在功耗上是否一致。[0064]步骤107,当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0065]当所述第三对比曲线Tarce (O)与所述第二基准功耗曲线TarceB在功耗上一致时,可以认为低半部分ML的比特值通过验证,此时所述测试码M中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0066]从上述实施例可以看出,采用本实施例提供的方法,可以通过对测试码中预设的数据进行逐比特位修正,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。该私钥元素即为生成RSA算法密钥的一个素数,通过该素数可以很容易的获取到另一个素数及其他的私钥元素,即,通过该私钥元素可以很容易获取到其他的私钥元素。
[0067]参见图2,为本发明安全芯片中的RSA算法私钥元素获取方法另一个实施例的流程图,该实施例详细说明了获取RSA算法私钥元素的过程。
[0068]步骤201,设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
[0069]步骤202,将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I,生成第一值;
[0070]步骤203,使用公钥对所述第一值进行加密生成第一结果;
[0071]步骤204,获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线;
[0072]步骤205,将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为0,生成第二值;
[0073]步骤206,使用公钥对所述第二值进行加密生成第二结果;
[0074]步骤207,获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线;
[0075]步骤208,对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线;
[0076]步骤209,在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I ;
[0077]步骤210,使用公钥对测试码中的数据进行加密生成第三结果;
[0078]步骤211,获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线;
[0079]步骤212,从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
[0080]步骤213,比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;
[0081]步骤214,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-ι比特位的值设置为O ;
[0082]步骤215,在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-Ι];
[0083]步骤216,获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线;
[0084]步骤217,从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
[0085]步骤218,比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;
[0086]步骤219,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第1-ι比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第1-Ι比特位的值设置为0,其中i属于[2,t-ι];
[0087]步骤220,在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;
[0088]步骤221,获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线;
[0089]步骤222,从从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
[0090]步骤223,比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;
[0091]步骤224,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0092]从上述实施例可以看出,采用实施例提供的方法,通过对测试码中预设的数据逐比特位进行修正改,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。
[0093]与本发明安全芯片中的RSA算法私钥元素获取方法相对应,本发明还提供了安全芯片中的RSA算法私钥元素获取装置。
[0094]参见图3,为本发明安全芯片中的RSA算法私钥元素获取装置一个实施例框图。
[0095]该装置包括:设置单元301,获取单元302,预设单元303,第一修正单元304,第二修正单元305,验证单元306,确定单元307。
[0096]其中,所述设置单元301,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
[0097]所述获取单元302,用于利用所述利用设置单元301设置的所述测试码获取所述被测安全芯片的基准功耗曲线;
[0098]图4为本发明安全芯片中的RSA算法私钥元素获取装置的获取单元的一个实施例框图。获取单元302可以包括:第一值设置子单元401,第一加密子单元402,第一获取子单元403,第二值设置子单元404,第二加密子单元405,第二获取子单元406,曲线获取子单元407。
[0099]第一值设置子单元401,用于将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;第一加密子单元402,用于使用公钥对所述第一值设置子单元401设置的所述第一值进行加密生成第一结果;第一获取子单元403,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元402生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;第二值设置子单元404,用于在所述第一获取子单元403获取到所述第一功耗曲线后,将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为0,生成第二值;第二加密子单元405,用于使用公钥对所述第二值设置子单元404设置的所述第二值进行加密生成第二结果;第二获取子单元406,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元405生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线;曲线获取子单元407,用于对所述第一获取子单元403获取的所述第一功耗曲线与所述第二获取子单元406获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
[0100]所述预设单元303,用于在所述获取单元302获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I ;
[0101]所述第一修正单元304,用于根据所述获取单元303获取到的所述测试码中的数据及所述获取单元302获取到的所述基准功耗曲线,对所述测试码第t-Ι比特位的值进行修正;
[0102]图5为本发明安全芯片中的RSA算法私钥元素获取装置的第一修正单元的一个实施例框图。第一修正单元可以包括:第三加密子单元501,第三获取子单元502,第一生成子单元503,第一比较子单元504,第一确定子单元505。
[0103]第三加密子单元501,用于使用公钥对测试码中的数据进行加密生成第三结果;第三获取子单元502,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元501生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线;第一生成子单元503,用于从所述第三获取子单元502获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第一比较子单元504,用于比较所述第一生成子单元503获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;第一确定子单元505,用于经过所述第一比较子单元504的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-Ι比特位的值设置为O。
[0104]所述第二修正单元305,用于在第一修正单元304对所述第t_l比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述获取单元302获取到的所述基准功耗曲线,对所述测试码第1-Ι比特位的值进行修正,其中i属于[2,t-Ι];[0105]图6为本发明安全芯片中的RSA算法私钥元素获取装置的第二修正单元的一个实施例框图。该第二修正单元包括:第四加密子单元601,第四获取子单元602,第二生成子单元603,第二比较子单元604,第二确定子单元605。
[0106]第四加密子单元601,用于在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-Ι];第四获取子单元602,用于获取所述第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元601生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线;第二生成子单元603,用于从所述第四获取子单元602获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第二比较子单元604,用于比较所述第二生成子单元603获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;第二确定子单元605,用于经过所述第二比较子单元604的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第1-Ι比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第i_l比特位的值设置为0,其中i属于[2,t-1]。
[0107]所述验证单元306,用于在第二修正单元305对所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述所述获取单元302获取到的基准功耗曲线对所述测试码中的数据进行验证;
[0108]图7为本发明安全芯片中的RSA算法私钥元素获取装置的验证单元的一个实施例框图。该验证单元包括:第五加密子单元701,第五获取子单元702,第三生成子单元703,第三比较子单元704。
[0109]第五加密子单元701,用于在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;第五获取子单元702,用于获取所述第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元701生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线;第三生成子单元703,用于从所述第五获取子单元702获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第三比较子单元704,用于比较所述第三生成子单元703获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致。
[0110]所述确定单元307,用于当所述测试码中的数据通过所述验证单元306的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0111]所述当验证单元306包含上述子单元时,所述确定单元307,具体用于当经过所述第三比较子单元704的比较,所述第三对比曲线与所述第二基准功耗曲线在功耗上一致时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
[0112]从上述实施例可以看出,采用本实施例提供的装置,可以通过对测试码中的数据进行修改,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法私钥元素。[0113]本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0114]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0115]以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安全芯片中的RSA算法私钥元素获取方法,其特征在于,所述方法包括: 设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成; 利用所述测试码获取所述被测安全芯片的基准功耗曲线; 在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为O,低半部分所有比特位的值设置为I ; 根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-Ι比特位的值进行修正; 在所述第t-Ι比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i_l比特位的值进行修正,其中i属于[2, t-Ι]; 在所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证; 当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
2.如权利要求1所述的方法,其特征在于,所述利用所述测试码获取所述被测安全芯片的基准功耗曲线包括: 将所述测试码高半部分所有比特位的值设置为O,低半部分所有比特位的值设置为1,生成第一值; 使用公钥对所述第一值进行加密`生成第一结果; 获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线; 将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为O,生成第二值; 使用公钥对所述第二值进行加密生成第二结果; 获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线; 对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的处理过程对应的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的处理过程对应的第二基准功耗曲线。
3.如权利要求2所述的方法,其特征在于,所述使用所述基准功耗曲线对所述测试码第t-1比特位的值进行修正包括: 使用公钥对测试码中的数据进行加密生成第三结果; 获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线; 从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-ι比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-ι比特位的值设置为O。
4.如权利要求2所述的方法,其特征在于,所述对所述测试码第1-Ι比特位的值进行修正包括: 在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-l]; 获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线; 从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致; 如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第1-Ι比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第1-Ι比特位的值设置为0,其中i属于[2,t-ι]。
5.如权利要求2所述的方法,其特征在于,所述根据所述基准功耗曲线对所述测试码中的数据进行验证,包括: 在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果; 获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线; 从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ) mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致; 所述当所述比特值通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素,具体为: 如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
6.一种安全芯片中的RSA算法私钥元素获取装置,其特征在于,所述装置包括: 设置单元,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成; 获取单元,用于利用所述设置单元设置的所述测试码获取所述被测安全芯片的基准功耗曲线; 预设单元,用于在所述获取单元获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为I ; 第一修正单元,用于根据所述获取单元获取到的所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-Ι比特位的值进行修正;第二修正单元,用于在第一修正单元对所述第t-Ι比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第1-Ι比特位的值进行修正,其中i属于[2,t-Ι]; 验证单元,用于在第二修正单元对所述低半部分除第O比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证; 确定单元,用于当所述测试码中的数据通过所述验证单元的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
7.如权利要求6所述的装置,其特征在于,所述获取单元包括: 第一值设置子单元,用于将所述测试码高半部分所有比特位的值设置为O,低半部分所有比特位的值设置为1,生成第一值; 第一加密子单元,用于使用公钥对所述第一值设置子单元设置的所述第一值进行加密生成第一结果;第一获取子单元,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;第二值设置子单元,用于在所述第一获取子单元获取到所述第一功耗曲线后,将所述测试码的第O比特位及第I比特位的值设置为1,其余比特位的值设置为O,生成第二值;第二加密子单元,用于使用公钥对所述第二值设置子单元设置的所述第二值进行加密生成第二结果; 第二获取子单元,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线; 曲线获取子单元,用于对所述第一获取子单元获取的所述第一功耗曲线与所述第二获取子单元获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
8.如权利要求7所述的装置,其特征在于,所述第一修正单元包括: 第三加密子单元,用于使用公钥对测试码中的数据进行加密生成第三结果; 第三获取子单元,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线; 第一生成子单元,用于从所述第三获取子单元获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 第一比较子单元,用于比较所述第一生成子单元获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致; 第一确定子单元,用于经过所述第一比较子单的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-Ι比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为O。
9.如权利要求7所述的装置,其特征在于,所述第二修正单元包括: 第四加密子单元,在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-Ι]; 第四获取子单元,用于获取所述第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线.第二生成子单元,用于从所述第四获取子单元获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 第二比较子单元,用于比较所述第二生成子单元获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致; 第二确定子单元,用于经过所述第二比较子单元的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第1-Ι比特位的值设置为1,或者,如果所述第四功耗曲线与所述第一对比曲线在功耗上不一致,则将所述低半部分第i_l比特位的值设置为0,其中i属于[2,t-Ι]。
10.如权利要求7所述的装置,其特征在于,所述验证单元包括: 第五加密子单元,用于在第I比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果; 第五获取子单元,用于获取所述第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线.第三生成子单元,用于从所述第五获取子单元获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素; 第三比较子单元,用于比较所述第三生成子单元获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致; 所述确定单元,用于经过所述第三比较子单元的比较,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
【文档编号】H04L9/30GK103580858SQ201310547494
【公开日】2014年2月12日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】王亚伟, 谢蒂, 王冠华, 汪朝晖, 李国俊 申请人:北京华大信安科技有限公司, 中国电子科技集团公司第十五研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1