CN105095739B - 电子加密装置的测试方法、系统 - Google Patents
电子加密装置的测试方法、系统 Download PDFInfo
- Publication number
- CN105095739B CN105095739B CN201410204410.8A CN201410204410A CN105095739B CN 105095739 B CN105095739 B CN 105095739B CN 201410204410 A CN201410204410 A CN 201410204410A CN 105095739 B CN105095739 B CN 105095739B
- Authority
- CN
- China
- Prior art keywords
- electronic
- fault
- power consumption
- encryption device
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种电子加密装置的测试方法、系统,该测试方法包括:使电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取执行第一加解密运算的第一运算总个数;使电子加密装置执行第二加解密运算,同时向电子加密装置注入故障使电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对第二功耗模拟信号进行模数转换,以获取执行第二加解密运算的第二运算总个数;如果第二运算总个数大于第一运算总个数,则数据位为0;获取密钥的所有未知数据位分别为1或0,以获取密钥的测试值;确认测试值为密钥的真实值。本发明提出了一种同时采用SPA和DFA攻击方式以测试电子加密装置安全性的方法。
Description
技术领域
本发明涉及集成电路的安全技术领域,特别涉及一种电子加密装置的测试方法、系统。
背景技术
随着信息安全技术的发展,各种安全产品越来越普及,包括金融IC卡、社保卡、用于网上银行的USBKey、加密U盘等,这些安全产品都利用电子加密装置来实现其安全功能。随着电子加密装置在金融等领域的推广应用,电子加密装置的安全性变得越来越重要,迫切需要对电子加密装置的安全特性进行研究和测评。
为达到对电子加密装置进行安全性测评的目的,对攻击方法和攻击设备的研究是必不可少的。目前,SPA(Simple power analysis,简单功耗分析)和DFA(DifferentialFault Analysis,差分功耗分析)的分析方法都被用来对电子加密装置进行安全性分析和评测,以便测试电子加密装置中的密码模块是否会遭受这两种攻击并泄漏密钥。
为了增强安全性,电子加密装置通常具有一些防御措施以抵抗SPA和DFA攻击。
以RSA解密算法为例,可以理解地,RSA解密算法为包括模乘运算和模方运算的循环运算,在循环体的单个运算步骤中,当密钥的数据位为1时,会比当密钥的数据位为0时,多出一次模乘运算操作。在RSA加解密过程中,采用功耗采集器采集模乘运算和模方运算分别对应的功耗,进而可以判断出该密钥的数据位对应为1或0。对于有防SPA攻击的电子密码装置,通常难以区分模乘和模方操作,SPA攻击便不能成功。
而对于单独的DFA攻击,其方式可以为:在RSA解密运算过程中,注入故障使密钥的某个数据位进行翻转,如果则说明该密钥的数据位是1;如果则说明该密钥的数据位是0(其中,为密钥的某个数据位翻转后的结果,M为密钥的数据位不进行翻转的结果,i为密钥的数据位索引,C为密文)。对于有防DFA攻击的电子密码装置,通常会设置结果比对步骤,即会检测该结果是否为注入故障的结果,如果与正常运算结果不匹配,会自动销毁加解密后的运算结果。
但是,对于电子加密装置,即使能够分别抵御SPA和DFA攻击,也无法确保其能够抵御以其它方式进行的SPA和DFA攻击。也就是说,现有的SPA和DFA攻击测试方法不能对已经采取了相应防御措施的电子加密装置开展深入的安全分析和评测,存在局限性。
发明内容
本发明提供一种电子加密装置的测试方法、系统,以解决现有技术中单独采用SPA或DFA的攻击方式对电子加密装置测试的方法无法保证电子加密装置的安全性的技术问题。
为解决上述技术问题,本发明提供一种电子加密装置的测试方法,该测试方法包括:使电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取执行第一加解密运算的第一运算总个数;使电子加密装置执行第二加解密运算,同时向电子加密装置注入故障使电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对第二功耗模拟信号进行模数转换,以获取执行第二加解密运算的第二运算总个数;如果判断第二运算总个数大于第一运算总个数,则数据位为0;反之,则数据位为1;获取密钥的所有未知数据位分别为1或0,以获取密钥的测试值;确认测试值为密钥的真实值;
其中,以RSA或ECC密码算法进行加解密运算。
其中,使电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取执行第一加解密运算的第一运算总个数的步骤之前还包括步骤:控制注入故障的注入参数和时刻、采集功耗模拟信号的采集参数和时刻以及模数转换的转换参数和时刻。
其中,“使电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取执行第一加解密运算的第一运算总个数”的步骤和“使电子加密装置执行第二加解密运算,同时向所述电子加密装置注入故障使所述电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对所述第二功耗模拟信号进行模数转换,以获取执行所述第二加解密运算的第二运算总个数”的步骤之间还包括步骤:调整故障注入信号的发射位置。
其中,向电子加密装置注入故障,使密钥的数据位翻转的步骤具体包括:以非接触方式向电子加密装置注入故障。
为解决上述技术问题,本发明提供一种电子加密装置的测试系统,该测试系统包括故障注入器、功耗采集器、波形转换器以及具有通信接口的电子终端;故障注入器用于向电子加密装置注入故障注入信号,使电子加密装置的密钥的数据位翻转;功耗采集器用于分别采集电子加密装置在不注入故障时执行第一加解密运算的第一功耗模拟信号和注入故障时执行第二加解密运算的第二功耗模拟信号,并将第一功耗模拟信号和第二功耗模拟信号分别发送给波形转换器;波形转换器用于将第一功耗模拟信号转换成第一数字信号和第二功耗模拟信号转换成第二数字信号;电子终端包括第一通信接口,第一通信接口用于与波形转换器连接以接收第一数字信号和第二数字信号,电子终端基于第一数字信号获取执行第一加解密运算的第一运算总个数和第二数字信号获取执行第二加解密运算的第二运算总个数,如果判断第二运算总个数大于第一运算总个数,则数据位为0,反之,则数据位为1,电子终端获取密钥的所有未知数据位以获取密钥的测试值并确认测试值为密钥的真实值。
其中,电子终端还包括第二通信接口,电子加密装置进一步包括通信模块,通信模块以接收第二通信接口向电子加密装置发送的待加/解密数据。
其中,电子终端还包括第三通信接口,测试系统进一步包括控制器,控制器的输入端用于与电子终端的第三通信接口连接,以接收电子终端下发的控制指令;控制器的第一输出端用于与故障注入器的输入端连接,向故障注入器发送第一控制指令以控制故障注入信号的参数和注入时刻;控制器的第二输出端用于与功耗采集器的输入端连接,向功耗采集器发送第二控制指令以控制功耗采集参数和采集时刻;控制器的第三输出端用于与波形转换器的输入端连接,向波形转换器发送第三控制指令以控制波形转换的参数和转换时刻。
其中,测试系统还包括定位器,定位器用于将故障注入器固定在其上,定位器带动故障注入器移动,以使故障注入器向电子加密装置的不同位置注入故障。
其中,电子终端还包括第四通信接口,定位器的输入端用于与第四通信接口连接,以接收定位器的位置设定参数。
本发明提供的电子加密装置的测试方法、系统,采用同时以SPA和DFA攻击的测试方法,可用于攻击对SPA或DFA单独攻击采取防御措施的电子加密装置,从而实现验证电子加密装置的安全性能的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明电子加密装置的测试方法的一实施例的流程示意图;
图2是本发明电子加密装置的测试系统的一实施例的结构示意图;
图3是图2所示的故障注入器的结构示意图;
图4是图2所示的功耗采集器的结构示意图;
图5是图2所示的波形转换器的结构示意图;
图6是图2所示的定位器的结构示意图;
图7是本发明电子加密装置的测试系统的一应用例的工作流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明电子加密装置的测试方法的一实施例的流程示意图。如图1所示,该测试方法包括如下步骤:
S11:使电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取执行第一加解密运算的第一运算总个数。
其中,电子加密装置为密码芯片或其他形式的具有密码算法功能的电子产品。进行第一加解密运算的待加/解密数据可以从设置在电子加密装置的存储器中获取,也可以通过在电子加密装置上设置通信模块,通过有线或无线通信方式从外部设备获取。
该第一加解密运算的密码算法类型为RSA(来自三位开发者的名字,Ron Rivest、Adi Shamir以及Len Adleman)密码算法或ECC(Elliptic Curves Cryptography的缩写,椭圆曲线密码编码学)密码算法。
测试时,第一加解密运算的算法类型以电子加密装置所支持的密码算法类型为依据。如果电子加密装置仅支持RSA或ECC密码算法中的一种,则采用电子加密装置支持的密码算法进行测试。如果电子加密装置同时支持RSA和ECC两种密码算法,则可以在电子加密装置本身设置算法类型选择模块以选择密码算法的类型,也可通过上述通信模块传输数据以设定密码算法的类型。
功耗模拟信号可以为电流、实时功率、辐射的电磁信号中的任一种。
以RSA解密算法为例,通过采集电子加密装置在执行RSA解密运算过程中的功耗模拟信号,将该模拟信号进行模数转换后,获取RSA解密运算对应的模方运算和模乘运算的总个数。
当然,也可以采用其他类型的加解密算法。如采用RSA加密算法,则该步骤的运算总个数同样也为模方运算和模乘运算的总个数。如采用ECC加密算法或ECC解密算法,则上述步骤的运算总个数为点加和倍点的运算总个数。
S12:使电子加密装置执行第二加解密运算,同时向电子加密装置注入故障,使电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对第二功耗模拟信号进行模数转换,以获取执行第二加解密运算的第二运算总个数。
其中,以非接触方式向电子加密装置注入故障,优选地,采用光故障注入攻击或电磁脉冲注入攻击。如果密钥的数据位为1,则该数据位将被翻转为0,如果密钥的数据位为0,则该数据位将被翻转为1。
第二加解密运算的算法类型与第一加解密运算的算法类型相同,并且第二加解密运算和第一加解密运算所采用的密钥相同,而第二加解密运算的待加/解密数据可以与第一加解密运算的待加/解密数据可以不同。此外,采集第二功耗模拟信号,并对第二功耗模拟信号进行模数转换,以获取第二加解密运算的第二运算总个数的方法与步骤S11中的采集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取第一加解密运算的第一运算总个数的方法相同,在此不作赘述。
可以理解地,为达到向电子加密装置注入故障使电子加密装置的密钥的数据位翻转的目的,需要多次调整故障注入信号的发射位置,重复执行该步骤,直到该步骤的第二运算总个数与步骤S11获取的第一运算总个数不同,才认为故障注入成功。
S13:如果判断第二运算总个数大于第一运算总个数,则数据位为0;反之,则数据位为1。
其中,将注入故障后的第二运算总个数记作N,未注入故障时的第一运算总个数记作S。如果N>S,则该数据位对应为0;如果N<S,则该数据位对应为1。
以RSA解密算法为例,在未向电子加密装置注入故障时,将其进行解密运算整个过程中获取的模方运算和模乘运算的运算总个数记作t。在向电子加密装置注入故障使密钥的数据位翻转后,如果再次进行解密运算获取的模方运算和模乘运算的运算总个数为t+1,则密钥的数据位从0翻转到1,也即密钥的数据位对应的原始值为0;如果再次进行解密运算获取的模方运算和模乘运算的总个数为t-1,则密钥的数据位从1翻转为0,也即密钥的数据位对应的原始值为1。
该步骤的理论依据为:以RSA解密算法为例,对于一个k比特长度的密钥,其解密运算M=Cd mod N(其中,M表示明文,C表示密文,d表示私钥,N为两个大素数的乘积)的一般实现方式为:
M=1
for i=k downto0do
M=(M*M)mod N
if(di==1)then
M=(M*C)mod N
endif
endfor
return M
从中可以看出,RSA解密算法包括模方运算M=(M*M)mod N和模乘运算M=(M*C)mod N,且当密钥位di为1时,会多执行一次模乘运算操作。由此可知,当密钥的某个数据位从1变为0时,则执行上述RSA解密运算所包括的模乘和模方运算的总个数会减少1,反之,当密钥的某个数据位从0变为1时,则执行上述RSA解密运算所包括的模乘和模方运算的运算总个数会增加1。由此反推,可以得出本步骤的判断依据。
采用RSA加密算法或ECC加/解密算法的理论依据的推导过程与上述RSA解密算法的推导过程近似,在本领域技术人员的理解范围之内,此处不作详细阐述。
S14:获取密钥的所有未知数据位为1或0,以获取密钥的测试值。
其中,将密钥的所有数据位分别记作(0,1,2,……,i),通过上述步骤S12~S13,对密钥的数据位从0到i都获取到其数值为0或1。若获取到全部数据位的数值,则可以得出密钥的测试值。
也可根据测试人员对密钥的真实值的掌握程度,比如已获知一部分密钥,则无需对密钥的所有数据位进行翻转以测试,只需要获取未知部分的密钥即可。
S15:确认测试值为密钥的真实值。
其中,将上述密钥的测试值记作Kt,将密钥的真实值记作Kr,随机产生一组待加/解密数据,通过相同的加解密算法对该一组待加/解密数据进行加解密,如果以Kt和Kr分别作为密钥对该一组待加/解密数据加解密后分别生成的结果一致,则表明上述步骤S11~S14获取的测试值Kt为密钥的真实值。为增强测试的准确性,也可以采用多组待加/解密数据进行验证。
当然,也可以采用其他方式确认密钥的测试值是否为真实值,比如,先通过与本实施例的RSA解密算法对应的RSA加密算法加密若干组数据,这若干组数据的原始值记作(D1、D2、D3…),加密后变成(E1、E2、E3…),然后采用该密钥的测试值对加密后的数据(E1、E2、E3…)进行RSA解密,以获取解密后的数据(F1、F2、F3…)。如果解密后的数据(F1、F2、F3…)与(D1、D2、D3…)一致,则表明密钥的测试值为真实值。
优选地,为了实现上述步骤的自动化操作,在步骤S11之前设置步骤,以控制故障注入的注入参数和时刻、功耗模拟信号的采集参数和时刻以及模数转换的转换参数和时刻。
本实施例的测试方法在成功攻击电子加密装置的密钥时,表明该电子加密装置存在不安全隐患。通过该测试方法获取密钥,仅需获取加解密运算中的运算总个数,而无需区分运算类型,且无需获取注入故障信号后的运算结果。因此,该测试方法对于对SPA或DFA单独攻击采取防御措施的电子加密装置,也可以达到获取密钥的目的,从而实现对电子加密装置的安全性能进行测试。
此外,该测试方法中的第一加解密运算和第二加解密运算的待加/解密数据可以不同,相较于采用DFA方式攻击的测试方法需要限制多次加解密运算的待加/解密数据为相同值,本测试方法中,多次加解密运算的待加/解密数据可以为随机数据,因而测试条件更宽松,方便测试。
请参阅图2,图2是本发明电子加密装置的测试系统的一实施例的结构示意图。如图2所示,该电子加密装置的测试系统包括电子加密装置20、电子终端21、通信模块22、故障注入器23、功耗采集器24、波形转换器25以及控制器26。
电子加密装置20为密码芯片或其他形式的具有加解密运算功能的电子加密装置,支持的密码算法为RSA密码算法或ECC密码算法。
电子终端21可以为个人电子计算机,具备多个通信接口与外界设备进行数据传输,通信接口可以采用有线或无线通信方式。例如,可采用计算机上自带的串口或USB接口,或者在计算机上加装扩展卡以拓展串口或USB接口个数。如图2所示,电子终端21具有四个通信接口,分别为第一通信接口211、第二通信接口212、第三通信接口213及第四通信接口214。
通信模块22为有线或无线通信模块,如串口模块、USB模块、ISO7816模块、GPRS通信模块、蓝牙通信模块、红外通信模块,以能够实现电子终端21和电子加密装置20之间的通信为目的。优选地,通信模块22为串口模块或USB模块,以节省成本。
优选地,电子加密装置20上设置有电平转换电路和稳压集成电路(图未示),以将通信模块22设置在电子加密装置20上,使电子加密装置20具备通信功能。通信模块22用于接收第二通信接口212向电子加密装置20发送的待加/解密数据。
故障注入器23用于向电子加密装置20注入故障注入信号,使电子加密装置20的密钥的数据位翻转。故障注入器23采用非接触方式向电子加密装置注入故障,优选地,采用光故障注入攻击或电磁脉冲注入攻击方式。请参阅图3,图3是图2所示的故障注入器的结构示意图。如图3所示,故障注入器23包括信号发生器231、功率放大器232、耦合器233以及能量与开关控制器234。
故障注入器23的工作原理为:信号发生器231产生故障注入信号,该故障注入信号通过功率放大器232放大,放大后的故障注入信号通过耦合器233变为故障攻击信号。能量与开关控制器234分别与功率放大器232和耦合器233连接,控制功率放大器232的信号放大程度和耦合器233的开关,以达到控制故障注入器23的攻击信号强度和攻击时刻。
功耗采集器24用于采集电子加密装置20在不注入故障时执行第一加解密运算的第一功耗模拟信号和注入故障时执行第二加解密运算的第二功耗模拟信号,并将该第一功耗模拟信号和第二功耗模拟信号分别发送给波形转换器25。功耗采集器24捕捉的物理信号包括电子加密装置20运行产生的电流、实时功率及辐射的电磁信号等。请参阅图4,图4是图2所示的功耗采集器的结构示意图。如图4所示,功耗采集器24包括电流传感器241、放大器242以及增益控制器243。
功耗采集器24的工作原理为:电流传感器241与电子加密装置20电连接,电流传感器241可以探测电子加密装置20的电流,该电流通过放大器242放大后输出。增益控制器243用于控制放大器242的信号放大倍数。
在其他实施例中,也可将电流传感器241换成电磁传感器,以采集电子加密装置20加解密运算过程中产生的电磁信号作为功耗模拟信号。
波形转换器25用于将功耗采集器24采集的第一功耗模拟信号转换成第一数字信号和第二功耗模拟信号转换成第二数字信号,并通过波形转换器25上自带的通信接口将该第一数字信号和该第二数字信号分别发送给电子终端21的第一通信接口211。请参阅图5,图5是图2所示的波形转换器的结构示意图。如图5所示,该波形转换器包括放大器251、模数转换器252、存储器253、处理器254、通信接口255及采样触发模块256。
波形转换器25的工作原理为:放大器251与功耗采集器24电连接,即与功耗采集器24的放大器242的输出端连接,对采集信号再次进行放大,放大后的模拟信号经过模数转换器252转换成数字信号存储在存储器253中,该数字信号被处理器254进行信号处理后,通过通信接口255传输给电子终端21的第一通信接口211。采样触发模块256分别与模数转换器252和存储器253连接,用于控制波形转换器25的采样频率等参数和采样时刻。
电子终端21基于第一通信接口211接收的第一数字信号获取执行第一加解密运算的第一运算总个数和第二数字信号获取执行第二加解密运算的第二运算总个数,如果第二运算总个数大于第一运算总个数,则该数据位为0;反之,则该数据位为1。电子终端21获取密钥的所有未知数据位分别为1或0,以获取密钥的测试值,并确认该测试值为密钥的真实值。
进一步地,该测试系统包括控制器26,控制器26的输入端用于与电子终端21的第三通信接口213连接,以接收电子终端21下发的控制指令。
控制器26的第一输出端261用于与故障注入器23的输入端连接,向故障注入器23发送第一控制指令以控制故障注入信号的参数和注入时刻。优选地,控制器26的第一输出端261用于与能量与开关控制器234的输入端连接,控制耦合器233的开关和功率放大器232的放大系数。
控制器26的第二输出端262用于与功耗采集器24的输入端连接,向功耗采集器24发送第二控制指令以控制功耗采集参数和采集时刻。优选地,控制器26的第二输出端262用于与增益控制器243的输入端连接,向功耗采集器24下发设定的增益控制器243的增益系数。
控制器26的第三输出端263用于与波形转换器25的输入端连接,向波形转换器25发送第三控制指令以控制波形转换的参数和时刻。优选地,控制器26的第三输出端263用于与采样触发模块256的输入端连接,控制波形转换器25的转换频率等参数和转换时刻。
在其他备选实施例中,为节省成本考虑,可省去电子终端21和/或控制器26。比如,在电子加密装置20上设置数据输入模块以产生待加/解密数据,在波形转换器25上设置计数器以计算加解密运算的运算总个数和比较器比较在注入故障和未注入故障的加解密运算的运算总个数。此外,还可以在故障注入器23、功耗采集器24以及波形转换器25的各自设备上设置参数设置模块和控制模块,以控制上述的故障注入信号的注入参数和注入时刻、功耗模拟信号的采集参数和采集时刻以及模数转换的转换参数和转换时刻。
优选地,该测试系统还包括定位器27,定位器27用于将故障注入器23固定于其上,定位器27带动故障注入器23移动,以使故障注入器23向电子加密装置20的不同位置注入故障。定位器27的输入端用于与电子终端21的第四通信接口214连接,以接收定位器27的位置设定参数。
请一并参阅图2和图6,该定位器包括XY双向平移工作台261、X向步进电机262、Y向步进电机263以及电机控制器264。X向步进电机262和Y向步进电机263分别固定在XY双向平移工作台261的互为垂直设置的两个分工作台上,以控制XY双向平移工作台261在同一平面内分别沿水平和垂直方向移动。在XY双向平移工作台261上设置有固定装置(图未示),用于固定故障注入器23。该固定装置可以设置在XY双向平移工作台261的任一分工作台上,这样,在XY双向平移工作台261在同一X方向或Y方向移动时,故障注入器23也会随之移动。可以理解地,注入故障时,故障注入器23在电子加密装置20的上方移动,XY双向平移工作台261与电子加密装置20成平行设置。
电机控制器264用于控制X向步进电机262和Y向步进电机263的启停动作和移动距离。优选地,电机控制器264用于与电子终端21的第四通信接口214连接,以接收电子终端21传输的位置参数控制X向步进电机262和Y向步进电机263的位移,进而控制固定装置的位置。
请参阅图7,图7是本发明电子加密装置的测试系统的一应用例的工作流程示意图。如图7所示,该工作流程包括但不限于如下步骤:
S71:运行并初始化测试系统。
其中,连接好测试系统中的各个仪器设备包括电子终端、控制器、故障注入器、功耗采集器、波形转换器以及定位器的通信接口,将故障注入器安装在定位器上,使故障注入器位于电子加密装置上方的某个位置。开启各设备的电源,在电子终端上运行攻击测试软件,对各个设备进行初始化。
S72:将电子加密装置安装于测试系统。
其中,将电子加密装置装设于定位器的夹持部,并确认电子加密装置分别与通信模块和电子终端连接成功。
S73:从电子终端下发控制指令和待加/解密数据。
其中,从电子终端下发控制指令到控制器,该控制指令用于设定故障注入器、功耗采集器、波形转换器的工作参数和工作的起止时刻,也可以用于设定电子加密装置的加解密算法类型。
待加/解密数据可以以文本文件格式或字符串格式下发,在此不作限定。
S74:攻击测试及密码数据分析。
其中,以RSA解密算法为例。首先在整个运算中不注入故障,在电子终端向电子加密装置下发待加解密数据,电子终端执行第一RSA解密运算,功耗采集器采集第一RSA解密运算过程中的第一功耗模拟信号,并将第一功耗模拟信号以电连接方式传输给模数转换器,模数转换器进行模数转换,并将转换后的数字信号通过第一通信接口传输给电子终端,电子终端获取电子加密装置执行第一RSA解密运算的模方运算和模乘运算的总个数,将执行第一RSA解密运算的运算总个数记为S。
然后,采用相同的密钥对电子加密装置再次进行第二RSA解密运算,在这里需要说明的是,执行第二RSA解密运算和执行第一RSA解密运算的密钥相同,待加密数据可以相同或不相同。在执行第二RSA解密运算的同时采用故障注入器发射故障攻击信号对电子加密装置进行故障攻击是电子加密装置的密钥的数据位翻转,同上述获取第一RSA解密运算的运算总个数S的操作方式相同,功耗采集器采集执行第二RSA解密运算过程中的第二功耗模拟信号,该第二功耗模拟信号经过模数转换器转换成第二数字信号并传输给电子终端,电子终端基于接收的第二数字信号获取执行第二RSA解密运算的模方运算和模乘运算的总个数,将执行第二RSA解密运算的运算总个数记为N。如果N较S发生变化,
则认为故障注入成功,密钥的数据位被翻转;如果N较S未发生变化,则调整定位器的XY向工作台的位置,使故障注入信号的发射位置发生改变,重新进行该步骤测试,直到N的值与S的值不同。
接着,通过比较N和S的值,从而确定密钥的数据位为1或0。具体的确定方法如前所述,在此不作赘述。
获取到密钥的各个未知数据位的数值后,即可获取密钥的测试值。在步骤中,多次执行RSA解密运算的待加/解密数据可以不相同。
S75:验证密钥的测试值是否为真实值。
其中,该步骤的验证方法同前述验证方法,在此不作赘述。如果成功获取电子加密装置的密钥,则表明测试攻击方法成功,该电子加密装置存在不安全隐患,以便研究人员设计保护措施对该电子加密装置进行安全防护。
此外,还可以采用如前所述的其他加解密算法进行测试,在此不作赘述。
在本实施例中,该电子加密装置的测试系统能够自动化操作,且参数的设置方式灵活,提高了测试的效率。
综上所述,本发明提供了一种同时采用SPA和DFA攻击方式测试电子加密装置安全的方法,该测试方法可用于攻击对SPA或DFA单独攻击采取防御措施的电子加密装置。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种电子加密装置的测试方法,其特征在于,包括:
使所述电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对所述第一功耗模拟信号进行模数转换,以获取执行所述第一加解密运算的第一运算总个数;
使所述电子加密装置执行第二加解密运算,同时向所述电子加密装置注入故障使所述电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对所述第二功耗模拟信号进行模数转换,以获取执行所述第二加解密运算的第二运算总个数;
如果判断所述第二运算总个数大于所述第一运算总个数,则所述数据位为0;反之,则所述数据位为1;
获取所述密钥的所有未知数据位分别为1或0,以获取所述密钥的测试值;
确认所述测试值为所述密钥的真实值;
其中,所述向所述电子加密装置注入故障使所述电子加密装置的密钥的数据位翻转,包括:
产生故障注入信号并按照相应放大程度进行放大,并将放大后的故障注入信号转化为故障攻击信号;
根据故障注入的参数及时刻向所述电子加密装置注入故障;
若所述第二运算总个数与所述第一运算总个数不同则停止故障注入,若所述密钥的数据位没有变化则调整故障注入的发射位置继续故障注入。
2.根据权利要求1所述的测试方法,其特征在于,以RSA或ECC密码算法进行所述加解密运算。
3.根据权利要求2所述的测试方法,其特征在于,所述使所述电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对所述第一功耗模拟信号进行模数转换,以获取执行所述第一加解密运算的第一运算总个数的步骤之前还包括步骤:
控制所述注入故障的注入参数和时刻、所述采集功耗模拟信号的采集参数和时刻以及所述模数转换的转换参数和时刻。
4.根据权利要求3所述的测试方法,其特征在于,所述“使所述电子加密装置执行第一加解密运算,采集第一功耗模拟信号,并对所述第一功耗模拟信号进行模数转换,以获取执行所述第一加解密运算的第一运算总个数”的步骤和所述“使所述电子加密装置执行第二加解密运算,同时向所述电子加密装置注入故障使所述电子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对所述第二功耗模拟信号进行模数转换,以获取执行所述第二加解密运算的第二运算总个数”的步骤之间还包括步骤:
调整故障注入信号的发射位置。
5.根据权利要求1-4任意一项所述的测试方法,其特征在于,所述向所述电子加密装置注入故障,使密钥的数据位翻转的步骤具体包括:
以非接触方式向所述电子加密装置注入故障。
6.一种电子加密装置的测试系统,其特征在于,包括故障注入器、功耗采集器、波形转换器以及电子终端;
所述故障注入器用于向所述电子加密装置注入故障注入信号,使所述电子加密装置的密钥的数据位翻转;
所述功耗采集器用于分别采集所述电子加密装置在不注入故障时执行第一加解密运算的第一功耗模拟信号和所述电子加密装置在注入故障时执行第二加解密运算的第二功耗模拟信号,并将所述第一功耗模拟信号和所述第二功耗模拟信号分别发送给所述波形转换器;
所述波形转换器用于将所述第一功耗模拟信号转换成第一数字信号和所述第二功耗模拟信号转换成第二数字信号;
所述电子终端包括第一通信接口,所述第一通信接口用于与所述波形转换器连接以接收所述第一数字信号和所述第二数字信号,所述电子终端基于所述第一数字信号获取执行所述第一加解密运算的第一运算总个数和所述第二数字信号获取执行所述第二加解密运算的第二运算总个数,若所述第二运算总个数较所述第一运算总个数发生变化,故障注入成功,如果判断所述第二运算总个数大于所述第一运算总个数,则所述数据位为0,反之,则所述数据位为1,所述电子终端获取所述密钥的所有未知数据位以获取所述密钥的测试值并确认所述测试值为所述密钥的真实值;
其中,所述故障注入器包括:信号发生器、功率放大器、耦合器及能量与开关控制器;所述信号发生器产生故障注入信号,所述故障注入信号通过功率放大器放大,再通过耦合器变为故障攻击信号,能量与开关控制器控制功率放大器的信号放大程度和耦合器的开关,以达到控制故障注入器的攻击信号强度和攻击时刻;
所述测试系统还包括定位器,所述定位器用于将故障注入器固定在所述电子加密装置上,所述定位器带动所述故障注入器移动,以使所述故障注入器从不同位置向所述电子加密装置注入故障。
7.根据权利要求6所述的测试系统,其特征在于,所述电子终端还包括第二通信接口,所述电子加密装置进一步包括通信模块,所述通信模块用于接收所述第二通信接口向电子加密装置发送的待加/解密数据。
8.根据权利要求7所述的测试系统,其特征在于,所述电子终端还包括第三通信接口,所述测试系统进一步包括控制器,所述控制器的输入端用于与所述第三通信接口连接,以接收所述电子终端下发的控制指令;
所述控制器的第一输出端用于与所述故障注入器的输入端连接,向所述故障注入器发送第一控制指令以控制所述故障注入信号的参数和注入时刻;
所述控制器的第二输出端用于与所述功耗采集器的输入端连接,向所述功耗采集器发送第二控制指令以控制功耗采集参数和采集时刻;
所述控制器的第三输出端用于与所述波形转换器的输入端连接,向所述波形转换器发送第三控制指令以控制波形转换的参数和转换时刻。
9.根据权利要求6所述的测试系统,其特征在于,所述电子终端还包括第四通信接口,所述定位器的输入端用于与所述第四通信接口连接,以接收所述定位器的位置设定参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410204410.8A CN105095739B (zh) | 2014-05-14 | 2014-05-14 | 电子加密装置的测试方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410204410.8A CN105095739B (zh) | 2014-05-14 | 2014-05-14 | 电子加密装置的测试方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095739A CN105095739A (zh) | 2015-11-25 |
CN105095739B true CN105095739B (zh) | 2021-06-01 |
Family
ID=54576148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410204410.8A Active CN105095739B (zh) | 2014-05-14 | 2014-05-14 | 电子加密装置的测试方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095739B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302431A (zh) * | 2016-04-14 | 2017-10-27 | 深圳市中兴微电子技术有限公司 | 同时实现rsa/ecc加解密算法的装置 |
CN110247929B (zh) * | 2019-06-28 | 2021-06-11 | 兆讯恒达科技股份有限公司 | 一种椭圆加密算法协处理器防注入式攻击的方法 |
CN115389971A (zh) * | 2022-08-23 | 2022-11-25 | 国网福建省电力有限公司 | 加密处理的配电终端单相接地集约化综合测试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560929A (zh) * | 2013-10-29 | 2014-02-05 | 武汉大学 | 针对功耗分析的实用型智能卡通用测试系统 |
-
2014
- 2014-05-14 CN CN201410204410.8A patent/CN105095739B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105095739A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dehbaoui et al. | Injection of transient faults using electromagnetic pulses Practical results on a cryptographic system | |
CN107102919A (zh) | 测试电路对侧信道分析的抵抗力的方法 | |
US9250671B2 (en) | Cryptographic logic circuit with resistance to differential power analysis | |
CN105095739B (zh) | 电子加密装置的测试方法、系统 | |
CN103297243B (zh) | 一种多功能智能密钥设备的工作方法 | |
CN103529286B (zh) | 通用式加密设备功耗捕获系统及方法 | |
CN103560877B (zh) | 攻击密钥的方法及装置 | |
CN104063642A (zh) | 一种基于压力传感器的智能终端安全认证方法及装置 | |
Gamaarachchi et al. | Power analysis based side channel attack | |
CN202584139U (zh) | 一种密码芯片功耗分析物理实验平台 | |
Sim et al. | Measurement and analysis of the compromising electromagnetic emanations from USB keyboard | |
CN103530566B (zh) | 一种检测诱导错误攻击下安全芯片安全性能的系统 | |
CN103560929A (zh) | 针对功耗分析的实用型智能卡通用测试系统 | |
Aljuffri et al. | Applying thermal side-channel attacks on asymmetric cryptography | |
CN101753301A (zh) | 指纹式动态密码身份认证设备及其实现方法 | |
CN203840359U (zh) | 电子加密装置和电子设备 | |
KR101029539B1 (ko) | 부채널 검증 방법 및 그 장치 | |
US20150349948A1 (en) | Side channel analysis system and side channel analysis method using the same | |
Korak et al. | Attacking an AES-enabled NFC tag: Implications from design to a real-world scenario | |
Hutle et al. | Resilience against physical attacks | |
CN105183146B (zh) | 一种待解锁装置的解锁方法及系统 | |
CN109558759B (zh) | 一种用于非接触式智能卡电磁攻击的模拟信号调理电路 | |
Moukarzel et al. | μLeech: A side-channel evaluation platform for IoT | |
KR20170103324A (ko) | 부채널 분석 장치 및 방법 | |
CN101639881A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |