电子加密装置的测试方法、系统的制作方法_2

文档序号:9376120阅读:来源:国知局
算的第一运算总个数。
[0031] 其中,电子加密装置为密码芯片或其他形式的具有密码算法功能的电子产品。进 行第一加解密运算的待加/解密数据可以从设置在电子加密装置的存储器中获取,也可以 通过在电子加密装置上设置通信模块,通过有线或无线通信方式从外部设备获取。
[0032] 该第一加解密运算的密码算法类型为RSA(来自三位开发者的名字,Ron Rivest、 Adi Shamir 以及 Len Adleman)密码算法或 ECC(Elliptic Curves Cryptography 的缩写, 椭圆曲线密码编码学)密码算法。
[0033] 测试时,第一加解密运算的算法类型以电子加密装置所支持的密码算法类型为依 据。如果电子加密装置仅支持RSA或ECC密码算法中的一种,则采用电子加密装置支持的 密码算法进行测试。如果电子加密装置同时支持RSA和ECC两种密码算法,则可以在电子 加密装置本身设置算法类型选择模块以选择密码算法的类型,也可通过上述通信模块传输 数据以设定密码算法的类型。
[0034] 功耗模拟信号可以为电流、实时功率、福射的电磁信号中的任一种。
[0035] 以RSA解密算法为例,通过采集电子加密装置在执行RSA解密运算过程中的功耗 模拟信号,将该模拟信号进行模数转换后,获取RSA解密运算对应的模方运算和模乘运算 的总个数。
[0036] 当然,也可以采用其他类型的加解密算法。如采用RSA加密算法,则该步骤的运算 总个数同样也为模方运算和模乘运算的总个数。如采用ECC加密算法或ECC解密算法,则 上述步骤的运算总个数为点加和倍点的运算总个数。
[0037] S12 :使电子加密装置执行第二加解密运算,同时向电子加密装置注入故障,使电 子加密装置的密钥的数据位翻转,采集第二功耗模拟信号,并对第二功耗模拟信号进行模 数转换,以获取执行第二加解密运算的第二运算总个数。
[0038] 其中,以非接触方式向电子加密装置注入故障,优选地,采用光故障注入攻击或电 磁脉冲注入攻击。如果密钥的数据位为1,则该数据位将被翻转为〇,如果密钥的数据位为 〇,则该数据位将被翻转为1。
[0039] 第二加解密运算的算法类型与第一加解密运算的算法类型相同,并且第二加解密 运算和第一加解密运算所采用的密钥相同,而第二加解密运算的待加/解密数据可以与第 一加解密运算的待加/解密数据可以不同。此外,采集第二功耗模拟信号,并对第二功耗模 拟信号进行模数转换,以获取第二加解密运算的第二运算总个数的方法与步骤Sll中的采 集第一功耗模拟信号,并对第一功耗模拟信号进行模数转换,以获取第一加解密运算的第 一运算总个数的方法相同,在此不作赘述。
[0040] 可以理解地,为达到向电子加密装置注入故障使电子加密装置的密钥的数据位翻 转的目的,需要多次调整故障注入信号的发射位置,重复执行该步骤,直到该步骤的第二运 算总个数与步骤Sll获取的第一运算总个数不同,才认为故障注入成功。
[0041] S13 :如果判断第二运算总个数大于第一运算总个数,则数据位为0 ;反之,则数据 位为1。
[0042] 其中,将注入故障后的第二运算总个数记作N,未注入故障时的第一运算总个数记 作S。如果N>S,则该数据位对应为0 ;如果N〈S,则该数据位对应为1。
[0043] 以RSA解密算法为例,在未向电子加密装置注入故障时,将其进行解密运算整个 过程中获取的模方运算和模乘运算的运算总个数记作t。在向电子加密装置注入故障使 密钥的数据位翻转后,如果再次进行解密运算获取的模方运算和模乘运算的运算总个数为 t+Ι,则密钥的数据位从0翻转到1,也即密钥的数据位对应的原始值为0 ;如果再次进行解 密运算获取的模方运算和模乘运算的总个数为t-Ι,则密钥的数据位从1翻转为0,也即密 钥的数据位对应的原始值为1。
[0044] 该步骤的理论依据为:以RSA解密算法为例,对于一个k比特长度的密钥,其解密 运算M = Cd mod N(其中,M表示明文,C表示密文,d表示私钥,N为两个大素数的乘积)的 一般实现方式为:
[0045] M=I
[0046] for i = k downtoOdo
[0047] M= (M*M)mod N
[0048] if (cl; = = I) then
[0049] M= (M*C)mod N
[0050] endif
[0051] endfor
[0052] return M
[0053] 从中可以看出,RSA解密算法包括模方运算M = (M*M)mod N和模乘运算M = (M*C) mod N,且当密钥位Cl1为1时,会多执行一次模乘运算操作。由此可知,当密钥的某个数据 位从1变为〇时,则执行上述RSA解密运算所包括的模乘和模方运算的总个数会减少1,反 之,当密钥的某个数据位从0变为1时,则执行上述RSA解密运算所包括的模乘和模方运算 的运算总个数会增加1。由此反推,可以得出本步骤的判断依据。
[0054] 采用RSA加密算法或ECC加/解密算法的理论依据的推导过程与上述RSA解密算 法的推导过程近似,在本领域技术人员的理解范围之内,此处不作详细阐述。
[0055] S14 :获取密钥的所有未知数据位为1或0,以获取密钥的测试值。
[0056] 其中,将密钥的所有数据位分别记作(0,1,2,……,i),通过上述步骤S12~S13, 对密钥的数据位从〇到i都获取到其数值为〇或1。若获取到全部数据位的数值,则可以得 出密钥的测试值。
[0057] 也可根据测试人员对密钥的真实值的掌握程度,比如已获知一部分密钥,则无需 对密钥的所有数据位进行翻转以测试,只需要获取未知部分的密钥即可。
[0058] S15 :确认测试值为密钥的真实值。
[0059] 其中,将上述密钥的测试值记作Kt,将密钥的真实值记作心,随机产生一组待加 /解密数据,通过相同的加解密算法对该一组待加/解密数据进行加解密,如果以K t和心 分别作为密钥对该一组待加/解密数据加解密后分别生成的结果一致,则表明上述步骤 Sll~S14获取的测试值Kt为密钥的真实值。为增强测试的准确性,也可以采用多组待加 /解密数据进行验证。
[0060] 当然,也可以采用其他方式确认密钥的测试值是否为真实值,比如,先通过与本实 施例的RSA解密算法对应的RSA加密算法加密若干组数据,这若干组数据的原始值记作 (D1、D2、D3…),加密后变成(E1、E2、E3···),然后采用该密钥的测试值对加密后的数据(E1、 E2、E3···)进行RSA解密,以获取解密后的数据(F1、F2、F3…)。如果解密后的数据(F1、F2、 F3···)与(D1、D2、D3···) -致,则表明密钥的测试值为真实值。
[0061] 优选地,为了实现上述步骤的自动化操作,在步骤Sll之前设置步骤,以控制故障 注入的注入参数和时刻、功耗模拟信号的采集参数和时刻以及模数转换的转换参数和时 刻。
[0062] 本实施例的测试方法在成功攻击电子加密装置的密钥时,表明该电子加密装置存 在不安全隐患。通过该测试方法获取密钥,仅需获取加解密运算中的运算总个数,而无需区 分运算类型,且无需获取注入故障信号后的运算结果。因此,该测试方法对于对SPA或DFA 单独攻击采取防御措施的电子加密装置,也可以达到获取密钥的目的,从而实现对电子加 密装置的安全性能进行测试。
[0063] 此外,该测试方法中的第一加解密运算和第二加解密运算的待加/解密数据可以 不同,相较于采用DFA方式攻击的测试方法需要限制多次加解密运算的待加/解密数据为 相同值,本测试方法中,多次加解密运算的待加/解密数据可以为随机数据,因而测试条件 更宽松,方便测试。
[0064] 请参阅图2,图2是本发明电子加密装置的测试系统的一实施例的结构示意图。如 图2所示,该电子加密装置的测试系统包括电子加密装置20、电子终端21、通信模块22、故 障注入器23、功耗采集器24、波形转换器25以及控制器26。
[0065] 电子加密装置20为密码芯片或其他形式的具有加解密运算功能的电子加密装 置,支持的密码算法为RSA密码算法或ECC密码算法。
[0066] 电子终端21可以为个人电子计算机,具备多个通信接口与外界设备进行数据传 输,通信接口可以采用有线或无线通信方式。例如,可采用计算机上自带的串口或USB接 口,或者在计算机上加装扩展卡以拓展串口或USB接口个数。如图2所示
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1