[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN103580858B - Rsa算法私钥元素获取方法及获取装置 - Google Patents

Rsa算法私钥元素获取方法及获取装置 Download PDF

Info

Publication number
CN103580858B
CN103580858B CN201310547494.0A CN201310547494A CN103580858B CN 103580858 B CN103580858 B CN 103580858B CN 201310547494 A CN201310547494 A CN 201310547494A CN 103580858 B CN103580858 B CN 103580858B
Authority
CN
China
Prior art keywords
power consumption
test patterns
value
bit
data
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
Application number
CN201310547494.0A
Other languages
English (en)
Other versions
CN103580858A (zh
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.)
BEIJING HUADA INFOSEC TECHNOLOGY Ltd
CETC 15 Research Institute
Original Assignee
BEIJING HUADA INFOSEC TECHNOLOGY Ltd
CETC 15 Research Institute
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 BEIJING HUADA INFOSEC TECHNOLOGY Ltd, CETC 15 Research Institute filed Critical BEIJING HUADA INFOSEC TECHNOLOGY Ltd
Priority to CN201310547494.0A priority Critical patent/CN103580858B/zh
Publication of CN103580858A publication Critical patent/CN103580858A/zh
Application granted granted Critical
Publication of CN103580858B publication Critical patent/CN103580858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明实施例公开了安全芯片中的RSA算法私钥元素获取方法及RSA算法私钥元素获取装置。所述方法包括:设置测试码;利用测试码获取基准功耗曲线;为测试码设置预设值;对测试码低半部分的最高比特位进行修正;从高到低依次对测试码的低半部分比特位的值进行修正;在除第0比特位之外的其他比特位的值修正完成后,对测试码中的数据进行验证;当测试码中的数据通过验证时,获取测试码中的数据,测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。所述装置包括:设置单元,获取单元,预设单元,第一修正单元,第二修正单元,验证单元,确定单元。本发明提供的方法可以获得安全芯片中的RSA算法私钥元素。

Description

RSA算法私钥元素获取方法及获取装置
技术领域
本发明涉及安全认证领域,尤其涉及安全芯片中的RSA算法私钥元素获取方法及获取装置。
背景技术
RSA算法是一种非对称密码算法。在使用该算法时,首先选择两个素数作为RSA算法的第一私钥元素与第二私钥元素,然后使用这两个私钥元素生成包含公钥和私钥的密钥对。使用密钥对中的公钥对数据进行加密时,只有使用私钥才能对加密后的数据进行解密,同样的,使用密钥对中的私钥对数据进行签名时,只有使用公钥才能对签名后的数据进行认证。
随着技术的发展,RSA算法已经得到广泛应用,出现了各种能够实现RSA算法的安全芯片。基于能够实现RSA算法的安全芯片,各种安全产品也已经普遍应用于金融、通信、社保、交通等各个领域。为了测试智能卡等安全产品的安全性,尤其是安全芯片实现RSA算法过程的安全性,人们使用了各种各样的方法获取安全芯片的RSA算法私钥。如果能够根据已知的公钥或其他信息获取到私钥,那么说明安全芯片实现RSA算法过程是不安全的。
发明人对现有技术研究后发现,安全芯片RSA算法的公钥和私钥都根据作为RSA算法私钥元素的两个素数计算生成,因此获取安全芯片的RSA算法私钥最简单的方法就是获取生成安全芯片的RSA算法私钥的RSA算法私钥元素,进而根据RSA算法私钥元素获取安全芯片的RSA算法私钥。但是现有方法都不能满足获取安全芯片的RSA算法私钥元素的需求。
发明内容
本发明实施例提供了安全芯片中的RSA算法私钥元素获取方法及安全芯片中的RSA算法私钥元素获取装置,以获取安全芯片的RSA算法私钥元素。
一方面,本发明实施例提供了一种安全芯片中的RSA算法私钥元素获取方法,该方法包括:设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;利用所述测试码获取所述被测安全芯片的基准功耗曲线;在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;在所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1];在所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
结合一方面,在一方面的第一种可能的实现方式中,所述利用所述测试码获取所述被测安全芯片的基准功耗曲线包括:将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;使用公钥对所述第一值进行加密生成第一结果;获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线;将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;使用公钥对所述第二值进行加密生成第二结果;获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线;对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
结合一方面的第一种可能的实现方式,在一方面的第二种可能的实现方式中,所述使用所述基准功耗曲线对所述测试码第t-1比特位的值进行修正包括:使用公钥对测试码中的数据进行加密生成第三结果;获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线;从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0。
结合一方面的第一种可能的实现方式,在一方面的第三种可能的实现方式中,所述对所述测试码第i-1比特位的值进行修正包括:在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线;从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1]。
结合一方面的第一种可能的实现方式,在一方面的第四种可能的实现方式中,所述根据所述基准功耗曲线对所述测试码中的数据进行验证,包括:在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线;从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;所述当所述比特值通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素,具体为:如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
另一方面,本发明实施例还提供了一种安全芯片中的RSA算法私钥元素获取装置,该装置包括:设置单元,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;获取单元,用于利用所述利用设置单元设置的所述测试码获取所述被测安全芯片的基准功耗曲线;预设单元,用于在所述获取单元获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;第一修正单元,用于根据所述获取单元获取到的所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;第二修正单元,用于在第一修正单元对所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1];验证单元,用于在第二修正单元对所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;确定单元,用于当所述测试码中的数据通过所述验证单元的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
结合另一方面,在另一方面的第一种可能的实现方式中,所述获取单元包括:第一值设置子单元,用于将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;第一加密子单元,用于使用公钥对所述第一值设置子单元设置的所述第一值进行加密生成第一结果;第一获取子单元,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;第二值设置子单元,用于在所述第一获取子单元获取到所述第一功耗曲线后,将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;第二加密子单元,用于使用公钥对所述第二值设置子单元设置的所述第二值进行加密生成第二结果;第二获取子单元,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线;曲线获取子单元,用于对所述第一获取子单元获取的所述第一功耗曲线与所述第二获取子单元获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
结合另一方面的第一种可能的实现方式,在另一方面的第二种可能的实现方式中,所述第一修正单元包括:第三加密子单元,用于使用公钥对测试码中的数据进行加密生成第三结果;第三获取子单元,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线;第一生成子单元,用于从所述第三获取子单元获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第一比较子单元,用于比较所述第一生成子单元获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;第一确定子单元,用于经过所述第一比较子单的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0。
结合另一方面的第一种可能的实现方式,在另一方面的第三种可能的实现方式中,所述第二修正单元包括:第四加密子单元,用于在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];第四获取子单元,用于获取所述第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线;第二生成子单元,用于从所述第四获取子单元获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第二比较子单元,用于比较所述第二生成子单元获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;第二确定子单元,用于经过所述第二比较子单元的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1]。
结合另一方面的第一种可能的实现方式,在另一方面的第四种可能的实现方式中,所述验证单元包括:第五加密子单元,用于在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;第五获取子单元,用于获取所述第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线;第三生成子单元,用于从所述第五获取子单元获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)modP运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第三比较子单元,用于比较所述第三生成子单元获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;所述确定单元,用于经过所述第三比较子单元的比较,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
与现有技术相比,本发明实施例提供的方法及装置,可以通过对测试码中预设的数据的进行逐位修正,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明安全芯片中的RSA算法私钥元素获取方法一个实施例的流程图;
图2为本发明安全芯片中的RSA算法私钥元素获取方法另一个实施例的流程图;
图3为本发明安全芯片中的RSA算法私钥元素获取装置的一个实施例框图;
图4为本发明安全芯片中的RSA算法私钥元素获取装置获取单元的一个实施例框图;
图5为本发明安全芯片中的RSA算法私钥元素获取装置第一修正单元的一个实施例框图;
图6为本发明安全芯片中的RSA算法私钥元素获取装置第二修正单元的一个实施例框图;
图7为本发明安全芯片中的RSA算法私钥元素获取装置验证单元的一个实施例框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明安全芯片中的RSA算法私钥元素获取方法一个实施例的流程图,该实施例包括如下步骤:
步骤101,设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成。
要获取安全芯片,即所述被测安全芯片的RSA算法私钥元素,首先需要根据所述被测安全芯片的RSA公钥模的比特位长设置一个测试码,该测试码可以用M来表示。由于在实际使用中RSA公钥模的比特长通常为偶数,M可以由比特位长相等的高半部分及低半部分组成,M的高半部分可以用MH表示,低半部分可以用ML表示,即M=MH||ML。M的每一比特位的值可以根据需要进行设置或修改,对M中的数据进行设置或修改即为对保存在存储空间中的数据进行设置或修改。
RSA公钥模的比特位长可以2t来表示。当RSA公钥模的比特位长为2t时,MH与ML的比特位长均为t。MH的各个比特位从高到低可以标记为2t-1、2t-2、…、t,ML的各个比特位从高到低可以标记为t-1、t-2、…、0。
步骤102,利用所述测试码获取所述被测安全芯片的基准功耗曲线。
被测安全芯片对输入数据进行处理的过程可以用以下表达式表示:CRT(SP,SQ)(((SP-SQ)*Qinv)mod P)*Q+SQ,其中,P为被测安全芯片的第一私钥元素,Q为被测安全芯片的第二私钥元素,即,P与Q为预先选择两个素数;Qinv为被测安全芯片的第五私钥元素,即,Qinv为Q关于P的逆;SP为第一中间数据,SQ为第二中间数据。从上述表达式可知被测安全芯片在对数据进行签名或解密处理时,被测芯片对输入数据的处理时需要计算(SP-SQ)mod P。
根据RSA算法的原理可知,SP=MPDP,SQ=MQDQ,其中,DP为e关于P-1的逆,即被测安全芯片的第三私钥元素,DQ为e关于Q-1的逆,即被测安全芯片的第四私钥元素,e为公钥数据,e与密钥长度n共同组成公钥。MP=C mod P,MQ=C mod Q,其中,C为输入到芯片中的数据,即待加密或待签名数据。
进一步分析可知,
SP=(C mod P)DP
=((Me mod N)mod P)DP
=Me*DP mod P
=M mod P
SQ=(C mod Q)DQ
=((Me mod N)mod Q)DQ
=Me*DQ mod Q
=M mod Q
因此,(SP-SQ)mod P=(M mod P-M mod Q)mod P。
以安全芯片在进行数据加密或签名时采用1024位RSA为例,第一私钥元素P与第二私钥元素Q的取值区间为[1,2512-1];当P>Q时,私钥元素的取值区间可以分为三部分,区间一:[1,Q)、区间二:[Q,P)、区间三:[P,2512-1]。
由于,(SP-SQ)mod P=(M mod P-M mod Q)mod P,
可知当M中的数据落到区间一或区间二时,
(SP-SQ)mod P≥0,
此时计算(SP-SQ)mod P,被测安全芯片只需要执行一次减法运算;
当测试码M中的数据M的值落到区间三时,
(SP-SQ)mod P<0,
此时计算(SP-SQ)mod P,被测安全芯片需要执行一次减法,一次加法运算。
被测安全芯片只执行一次减法运算与执行一次减法并执行一次加法,所需的时间、功耗等会有很大差异,而这一差异可以在功耗曲线上体现出来。其中,功耗曲线可以使用能量分析仪器等设备或方法获取。
通过为测试码M设置不同的值并对被测安全芯片进行测试,可以获取被测安全芯片获取执行一次减法运算的处理过程对应的第一基准功耗曲线及执行一次减法并执行一次加法的处理过程对应的第二基准功耗曲线。
具体来说,首先将高半部分MH的所有比特位的值设置为0,低半部分ML的所有比特位的值设置为1,从而生成第一值M1。使用已知的公钥对M1进行加密,生成第一结果C1。把C1输入被攻击芯片进行签名或解密处理,获取所述被测安全芯片对C1进行处理的处理过程对应的第一功耗曲线Tarce1。然后,将MH的所有比特位的值设置为0,ML的第1比特位与第0比特位的值设置为1,ML其余所有比特位的值都设置为0,从而生成第二值M2。使用已知的公钥对M2进行加密,生成第二结果C2。把C2输入被攻击芯片进行签名或解密处理,获取所述被测安全芯片对C2进行处理的处理过程对应的第二功耗曲线Tarce2。
将Tarce1与Tarce2进行对比,根据分析出被测安全芯片只执行一次减法的第一基准功耗曲线TarceA及执行一次减法并执行一次加法的第二基准功耗曲线TarceB。根据芯片的不同,可以采用不同的标准确定TarceA与TarceB,例如,可以根据功耗曲线的特征,确定Tarce1及Tarce2中特定部分作为备选功耗曲线,然后以时间标准,执行时间相对较短的一个备选功耗曲线确定为线TarceA,执行时间相对较长的一个备选功耗曲线确定为TarceB;或者也可以由技术人员根据经验从Tarce1与Tarce2中间选取出TarceA与TarceB。
步骤103,在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1。
在获取到TarceA及TarceB之后,将MH的所有比特位的值设置为0,ML的所有比特位的值设置为1,此时M中的数据可以记为M3。
步骤104,根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正。
在对第t-1比特位,即ML的最高比特位的值进行设置时,首先使用已知的公钥对M中当前的数据M3,进行加密生成第三结果C3;把C3输入被攻击芯片进行签名或解密处理。获取被测安全芯片对C3进行处理的处理过程对应的第三功耗曲线Tarce3;在获取到Tarce3之后,从Tarce3中获取被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线作为第一对比曲线Tarce(t-1),其中Tarce(t-1)可以是Tarce3的一部分,技术人员可以根据功耗曲线的特征确定Tarce3的某部分为Tarce(t-1),具体的确定方法在此就不再赘述。比较Tarce(t-1)与TarceA在功耗上是否一致;当Tarce(t-1)与TarceA在功耗上一致时,将ML第t-1比特位的值设置为1,或者,当Tarce(t-1)与TarceA在功耗上不一致时,将ML第t-1比特位的值设置为0。
步骤105,在所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1]。
在第t-1比特位,即ML的最高比特位的值修正完成后,按照从高比特位到低比特位的顺序,逐比特位设置第t-2比特位到第1比特位每一个比特位的值。
具体来说,如果i属于[2,t-1],在对第i-1比特位的值进行设置时,首先获取对ML第i比特位的值进行设置后所述测试码M中的数据M(i);使用已知的公钥对M(i)进行加密生成第四结果C(i);将C(i)输入所述被测安全芯片进行签名或解密处理,获取所述被测安全芯片对C(i)进行处理的处理过程对应的第四功耗曲线Tarce4;从Tarce4中获取第二对比曲线Tarce(i),其中Tarce(i)为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线;比较Tarce(i)与TarceA在功耗上是否一致;当Tarce(i)与TarceA在功耗上一致时,将ML第i-1比特位的值设置为1,或者,当Tarce(i)与TarceA在功耗上不一致时,将ML第i-1比特位的值设置为0。
步骤106,在所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证。
在按照从高到低的顺序将测试码M第t-2比特位到第1比特位的值修正完成后,即ML除第0比特位外的其他比特位的值均修正完成后,获取M中的数据M4;使用已知的公钥对M4进行加密生成第五结果C4;获取所述被测安全芯片对C4进行处理过程的第五功耗曲线Tarce5;从Tarce5中获取第三对比曲线Tarce(0),Tarce(0)为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线;比较Tarce(0)与TarceB在功耗上是否一致。
步骤107,当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
当所述第三对比曲线Tarce(0)与所述第二基准功耗曲线TarceB在功耗上一致时,可以认为低半部分ML的比特值通过验证,此时所述测试码M中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
从上述实施例可以看出,采用本实施例提供的方法,可以通过对测试码中预设的数据进行逐比特位修正,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。该私钥元素即为生成RSA算法密钥的一个素数,通过该素数可以很容易的获取到另一个素数及其他的私钥元素,即,通过该私钥元素可以很容易获取到其他的私钥元素。
参见图2,为本发明安全芯片中的RSA算法私钥元素获取方法另一个实施例的流程图,该实施例详细说明了获取RSA算法私钥元素的过程。
步骤201,设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
步骤202,将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;
步骤203,使用公钥对所述第一值进行加密生成第一结果;
步骤204,获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线;
步骤205,将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;
步骤206,使用公钥对所述第二值进行加密生成第二结果;
步骤207,获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线;
步骤208,对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线;
步骤209,在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;
步骤210,使用公钥对测试码中的数据进行加密生成第三结果;
步骤211,获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线;
步骤212,从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
步骤213,比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;
步骤214,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0;
步骤215,在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];
步骤216,获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线;
步骤217,从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
步骤218,比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;
步骤219,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1];
步骤220,在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;
步骤221,获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线;
步骤222,从从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
步骤223,比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;
步骤224,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
从上述实施例可以看出,采用实施例提供的方法,通过对测试码中预设的数据逐比特位进行修正改,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法的一个私钥元素。
与本发明安全芯片中的RSA算法私钥元素获取方法相对应,本发明还提供了安全芯片中的RSA算法私钥元素获取装置。
参见图3,为本发明安全芯片中的RSA算法私钥元素获取装置一个实施例框图。
该装置包括:设置单元301,获取单元302,预设单元303,第一修正单元304,第二修正单元305,验证单元306,确定单元307。
其中,所述设置单元301,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
所述获取单元302,用于利用所述利用设置单元301设置的所述测试码获取所述被测安全芯片的基准功耗曲线;
图4为本发明安全芯片中的RSA算法私钥元素获取装置的获取单元的一个实施例框图。获取单元302可以包括:第一值设置子单元401,第一加密子单元402,第一获取子单元403,第二值设置子单元404,第二加密子单元405,第二获取子单元406,曲线获取子单元407。
第一值设置子单元401,用于将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;第一加密子单元402,用于使用公钥对所述第一值设置子单元401设置的所述第一值进行加密生成第一结果;第一获取子单元403,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元402生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;第二值设置子单元404,用于在所述第一获取子单元403获取到所述第一功耗曲线后,将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;第二加密子单元405,用于使用公钥对所述第二值设置子单元404设置的所述第二值进行加密生成第二结果;第二获取子单元406,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元405生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线;曲线获取子单元407,用于对所述第一获取子单元403获取的所述第一功耗曲线与所述第二获取子单元406获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线。
所述预设单元303,用于在所述获取单元302获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;
所述第一修正单元304,用于根据所述获取单元303获取到的所述测试码中的数据及所述获取单元302获取到的所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;
图5为本发明安全芯片中的RSA算法私钥元素获取装置的第一修正单元的一个实施例框图。第一修正单元可以包括:第三加密子单元501,第三获取子单元502,第一生成子单元503,第一比较子单元504,第一确定子单元505。
第三加密子单元501,用于使用公钥对测试码中的数据进行加密生成第三结果;第三获取子单元502,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元501生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线;第一生成子单元503,用于从所述第三获取子单元502获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第一比较子单元504,用于比较所述第一生成子单元503获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;第一确定子单元505,用于经过所述第一比较子单元504的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0。
所述第二修正单元305,用于在第一修正单元304对所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述获取单元302获取到的所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1];
图6为本发明安全芯片中的RSA算法私钥元素获取装置的第二修正单元的一个实施例框图。该第二修正单元包括:第四加密子单元601,第四获取子单元602,第二生成子单元603,第二比较子单元604,第二确定子单元605。
第四加密子单元601,用于在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];第四获取子单元602,用于获取所述第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元601生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线;第二生成子单元603,用于从所述第四获取子单元602获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第二比较子单元604,用于比较所述第二生成子单元603获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;第二确定子单元605,用于经过所述第二比较子单元604的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1]。
所述验证单元306,用于在第二修正单元305对所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述所述获取单元302获取到的基准功耗曲线对所述测试码中的数据进行验证;
图7为本发明安全芯片中的RSA算法私钥元素获取装置的验证单元的一个实施例框图。该验证单元包括:第五加密子单元701,第五获取子单元702,第三生成子单元703,第三比较子单元704。
第五加密子单元701,用于在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;第五获取子单元702,用于获取所述第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元701生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线;第三生成子单元703,用于从所述第五获取子单元702获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;第三比较子单元704,用于比较所述第三生成子单元703获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致。
所述确定单元307,用于当所述测试码中的数据通过所述验证单元306的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
所述当验证单元306包含上述子单元时,所述确定单元307,具体用于当经过所述第三比较子单元704的比较,所述第三对比曲线与所述第二基准功耗曲线在功耗上一致时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素。
从上述实施例可以看出,采用本实施例提供的装置,可以通过对测试码中的数据进行修改,使测试码中的数据不断逼近安全芯片的RSA算法私钥元素,最终使测试码中的数据等于被测安全芯片的RSA算法私钥元素,从而获得安全芯片的RSA算法私钥元素。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种安全芯片中的RSA算法私钥元素获取方法,其特征在于,所述方法包括:
设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
利用所述测试码获取所述被测安全芯片的基准功耗曲线;
在获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;
根据所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;
在所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1];
在所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;
当所述测试码中的数据通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素;
其中,所述利用所述测试码获取所述被测安全芯片的基准功耗曲线包括:
将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;
使用公钥对所述第一值进行加密生成第一结果;
获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一结果为输入进行处理的处理过程对应的功耗曲线;
将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;
使用公钥对所述第二值进行加密生成第二结果;
获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二结果为输入进行处理的处理过程对应的功耗曲线;
对所述第一功耗曲线与所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的处理过程对应的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的处理过程对应的第二基准功耗曲线;
其中,所述使用所述基准功耗曲线对所述测试码第t-1比特位的值进行修正包括:
使用公钥对测试码中的数据进行加密生成第三结果;
获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三结果为输入进行处理的处理过程对应的功耗曲线;
从所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
比较所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;
如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0;
其中,所述对所述测试码第i-1比特位的值进行修正包括:
在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];
获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四结果为输入进行处理的处理过程对应的功耗曲线;
从所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
比较所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;
如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1];
其中,所述根据所述基准功耗曲线对所述测试码中的数据进行验证,包括:
在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;
获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五结果为输入进行处理的处理过程对应的功耗曲线;
从所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
比较所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;
所述当所述比特值通过验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素,具体为:
如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素;
其中,所述第一中间数据和所述第二中间数据具体为:根据RSA算法的原理可知,SP=MPDP,SQ=MQDQ,其中,DP为e关于P-1的逆,即被测安全芯片的第三私钥元素,DQ为e关于Q-1的逆,即被测安全芯片的第四私钥元素,e为公钥数据,e与密钥长度n共同组成公钥,MP=C mod P,MQ=C mod Q,其中,C为输入到芯片中的数据,即待加密或待签名数据。
2.一种安全芯片中的RSA算法私钥元素获取装置,其特征在于,所述装置包括:
设置单元,用于设置测试码,所述测试码的比特位长等于被测安全芯片的RSA公钥模的比特位长,所述测试码由比特位长均为t的高半部分和低半部分组成;
获取单元,用于利用所述设置单元设置的所述测试码获取所述被测安全芯片的基准功耗曲线;
预设单元,用于在所述获取单元获取到所述基准功耗曲线之后,将所述测试码的高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1;
第一修正单元,用于根据所述获取单元获取到的所述测试码中的数据及所述基准功耗曲线,对所述测试码第t-1比特位的值进行修正;
第二修正单元,用于在第一修正单元对所述第t-1比特位的值修正完成后,根据对所述测试码第i比特位的值修正后所述测试码中的数据及所述基准功耗曲线,对所述测试码第i-1比特位的值进行修正,其中i属于[2,t-1];
验证单元,用于在第二修正单元对所述低半部分除第0比特位外的其他比特位的值修正完成后,根据所述基准功耗曲线对所述测试码中的数据进行验证;
确定单元,用于当所述测试码中的数据通过所述验证单元的验证时,获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素;
其中,所述获取单元包括:
第一值设置子单元,用于将所述测试码高半部分所有比特位的值设置为0,低半部分所有比特位的值设置为1,生成第一值;
第一加密子单元,用于使用公钥对所述第一值设置子单元设置的所述第一值进行加密生成第一结果;
第一获取子单元,用于获取第一功耗曲线,所述第一功耗曲线为所述被测安全芯片以所述第一加密子单元生成的所述第一结果为输入进行处理的处理过程对应的功耗曲线;
第二值设置子单元,用于在所述第一获取子单元获取到所述第一功耗曲线后,将所述测试码的第0比特位及第1比特位的值设置为1,其余比特位的值设置为0,生成第二值;
第二加密子单元,用于使用公钥对所述第二值设置子单元设置的所述第二值进行加密生成第二结果;
第二获取子单元,用于获取第二功耗曲线,所述第二功耗曲线为所述被测安全芯片以所述第二加密子单元生成的所述第二结果为输入进行处理的处理过程对应的功耗曲线;
曲线获取子单元,用于对所述第一获取子单元获取的所述第一功耗曲线与所述第二获取子单元获取的所述第二功耗曲线进行分析,得出安全芯片只执行一次减法运算的第一基准功耗曲线,及所述被测安全芯片执行一次减法并执行一次加法运算的第二基准功耗曲线;
其中,所述第一修正单元包括:
第三加密子单元,用于使用公钥对测试码中的数据进行加密生成第三结果;
第三获取子单元,用于获取第三功耗曲线,所述第三功耗曲线为所述被测安全芯片以所述第三加密子单元生成的所述第三结果为输入进行处理的处理过程对应的功耗曲线;
第一生成子单元,用于从所述第三获取子单元获取的所述第三功耗曲线中获取第一对比曲线,所述第一对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
第一比较子单元,用于比较所述第一生成子单元获取的所述第一对比曲线与所述第一基准功耗曲线在功耗上是否一致;
第一确定子单元,用于经过所述第一比较子单的比较,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述测试码第t-1比特位的值设置为1,或者,如果所述第一对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述测试码第t-1比特位的值设置为0;
其中,所述第二修正单元包括:
第四加密子单元,在第i比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第四结果,其中i属于[2,t-1];
第四获取子单元,用于获取第四功耗曲线,所述第四功耗曲线为所述被测安全芯片以所述第四加密子单元生成的所述第四结果为输入进行处理的处理过程对应的功耗曲线;
第二生成子单元,用于从所述第四获取子单元获取的所述第四功耗曲线中获取第二对比曲线,所述第二对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
第二比较子单元,用于比较所述第二生成子单元获取的所述第二对比曲线与所述第一基准功耗曲线在功耗上是否一致;
第二确定子单元,用于经过所述第二比较子单元的比较,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上一致,则将所述低半部分第i-1比特位的值设置为1,或者,如果所述第二对比曲线与所述第一基准功耗曲线在功耗上不一致,则将所述低半部分第i-1比特位的值设置为0,其中i属于[2,t-1];
其中,所述验证单元包括:
第五加密子单元,用于在第1比特位的值设置完成后,使用公钥对所述测试码中的数据进行加密生成第五结果;
第五获取子单元,用于获取第五功耗曲线,所述第五功耗曲线为所述被测安全芯片以所述第五加密子单元生成的所述第五结果为输入进行处理的处理过程对应的功耗曲线;
第三生成子单元,用于从所述第五获取子单元获取的所述第五功耗曲线中获取第三对比曲线,所述第三对比曲线为被测安全芯片执行(SP-SQ)mod P运算的处理过程对应的功耗曲线,其中SP为第一中间数据,SQ为第二中间数据,P为第一私钥元素;
第三比较子单元,用于比较所述第三生成子单元获取的所述第三对比曲线与所述第二基准功耗曲线在功耗上是否一致;
所述确定单元,用于经过所述第三比较子单元的比较,如果所述第三对比曲线与所述第二基准功耗曲线在功耗上一致,则获取所述测试码中的数据,所述测试码中的数据即为所述被测安全芯片中的一个RSA算法私钥元素;
其中,所述第一中间数据和所述第二中间数据具体为:根据RSA算法的原理可知,SP=MPDP,SQ=MQDQ,其中,DP为e关于P-1的逆,即被测安全芯片的第三私钥元素,DQ为e关于Q-1的逆,即被测安全芯片的第四私钥元素,e为公钥数据,e与密钥长度n共同组成公钥,MP=C mod P,MQ=C mod Q,其中,C为输入到芯片中的数据,即待加密或待签名数据。
CN201310547494.0A 2013-11-06 2013-11-06 Rsa算法私钥元素获取方法及获取装置 Active CN103580858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310547494.0A CN103580858B (zh) 2013-11-06 2013-11-06 Rsa算法私钥元素获取方法及获取装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310547494.0A CN103580858B (zh) 2013-11-06 2013-11-06 Rsa算法私钥元素获取方法及获取装置

Publications (2)

Publication Number Publication Date
CN103580858A CN103580858A (zh) 2014-02-12
CN103580858B true CN103580858B (zh) 2017-01-04

Family

ID=50051854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310547494.0A Active CN103580858B (zh) 2013-11-06 2013-11-06 Rsa算法私钥元素获取方法及获取装置

Country Status (1)

Country Link
CN (1) CN103580858B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106357406A (zh) * 2016-11-02 2017-01-25 北京宏思电子技术有限责任公司 一种基于spa和零值判断高效获得私钥的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1699160A1 (en) * 2003-12-26 2006-09-06 Matsushita Electric Industries Co., Ltd. Prime calculation device, method, and key issuing system
CN101494537A (zh) * 2009-02-27 2009-07-29 深圳先进技术研究院 密码安全芯片侧信道安全程度量化评测方法
CN101908111A (zh) * 2010-07-26 2010-12-08 武汉大学 一种利用dpa曲线极性进行密钥提取的方法及系统
CN102437912A (zh) * 2012-01-06 2012-05-02 厦门博鼎智文传媒科技有限公司 一种基于混沌算法的n重rsa加密算法的数字版权保护方法
CN103326861A (zh) * 2013-06-04 2013-09-25 北京华大信安科技有限公司 一种对数据进行rsa安全签名的方法、装置及安全芯片

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1699160A1 (en) * 2003-12-26 2006-09-06 Matsushita Electric Industries Co., Ltd. Prime calculation device, method, and key issuing system
CN101494537A (zh) * 2009-02-27 2009-07-29 深圳先进技术研究院 密码安全芯片侧信道安全程度量化评测方法
CN101908111A (zh) * 2010-07-26 2010-12-08 武汉大学 一种利用dpa曲线极性进行密钥提取的方法及系统
CN102437912A (zh) * 2012-01-06 2012-05-02 厦门博鼎智文传媒科技有限公司 一种基于混沌算法的n重rsa加密算法的数字版权保护方法
CN103326861A (zh) * 2013-06-04 2013-09-25 北京华大信安科技有限公司 一种对数据进行rsa安全签名的方法、装置及安全芯片

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《功耗分析攻击研究及抗功耗分析攻击密码芯片设计》;苗全;《中国博士学位论文全文数据库 信息科技辑》;20130515(第5期);全文 *

Also Published As

Publication number Publication date
CN103580858A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
US20180034634A1 (en) Method and system for determining desired size of private randomness using tsallis entropy
US9503267B2 (en) Generating digital signatures
CA2792267C (en) Verifying implicit certificates and digital signatures
CN107038383A (zh) 一种数据处理的方法和设备
US20180034636A1 (en) Method and system for creating public randomness
CN109818730A (zh) 盲签名的获取方法、装置和服务器
CN109245903A (zh) 双方协同生成sm2算法的签名方法、装置及存储介质
CN105956921A (zh) 一种银行卡号自选方法及装置
CN110505061A (zh) 一种数字签名算法及系统
KR101633148B1 (ko) 페어링 연산 장치, 페어링 연산 방법, 및 페어링 연산 프로그램을 기록한 기록 매체
CN113158176A (zh) 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN107104788B (zh) 终端及其不可抵赖的加密签名方法和装置
CN114760052B (zh) 银行物联网平台密钥生成方法、装置、电子设备及介质
CN103580858B (zh) Rsa算法私钥元素获取方法及获取装置
CN110990846B (zh) 信息存储方法、设备及计算机可读存储介质
CN104767622B (zh) 加密方法及装置
CN108021815A (zh) 图像加密方法、装置及电子设备
CN112906059B (zh) 代理签名和验证方法、装置、系统及存储介质
US10084599B2 (en) Decryption device, method, and circuit
CN103401681A (zh) 取模方法、取模装置及芯片
CN103441843B (zh) Rsa算法私钥元素获取方法及获取装置
CN107070648A (zh) 一种密钥保护方法及pki系统
Liu et al. A parallel encryption algorithm for dual-core processor based on chaotic map
CN102546160A (zh) 用于椭圆曲线密码防御差分功耗攻击的方法
CN111859409A (zh) 用于财务系统的数据处理方法以及装置、设备、存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210803

Address after: 100015 4th and 5th floors, block B, building 21, No. 2, Wanhong West Street, dongzhimenwai, Chaoyang District, Beijing

Patentee after: BEIJING HUADA INFOSEC TECHNOLOGY, Ltd.

Patentee after: CETC (Beijing) information evaluation and Certification Co.,Ltd.

Address before: 100015 4th and 5th floors, block B, building 21, No. 2, Wanhong West Street, dongzhimenwai, Chaoyang District, Beijing

Patentee before: BEIJING HUADA INFOSEC TECHNOLOGY, Ltd.

Patentee before: NO.15 INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY Group Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240316

Address after: 100015 4th and 5th floors, block B, building 21, No. 2, Wanhong West Street, dongzhimenwai, Chaoyang District, Beijing

Patentee after: BEIJING HUADA INFOSEC TECHNOLOGY, Ltd.

Country or region after: China

Patentee after: NO.15 INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY Group Corp.

Address before: 100015 4th and 5th floors, block B, building 21, No. 2, Wanhong West Street, dongzhimenwai, Chaoyang District, Beijing

Patentee before: BEIJING HUADA INFOSEC TECHNOLOGY, Ltd.

Country or region before: China

Patentee before: CETC (Beijing) information evaluation and Certification Co.,Ltd.