一种模幂运算的处理方法、装置及密码设备的制造方法

文档序号:9379942阅读:315来源:国知局
一种模幂运算的处理方法、装置及密码设备的制造方法
【技术领域】
[0001]本发明属于集成电路安全技术领域,尤其涉及一种模幂运算的处理方法、装置及密码设备。
【背景技术】
[0002]目前,各种电子设备上应用的公钥密码实质上主要有两类:第一类是基于大数分解的密码体制,如RSA体制和Rabin-Williams体制;第二类是基于循环群上离散对数问题的密码体制,如ELGamal体制和数字签名算法(Digital Signature Algorithm,DSA)。这两类密码体制都需要计算模幂,即求Zmodn,其中X、e和η都是整数。在这些公钥密码体制中,总有部分模幂中的整数e需要严格保密。例如在RSA体制中,当e为私钥时,需要严格保密。
[0003]现在,密码设备的计算部件是集成电路芯片。集成电路芯片都是由晶体管门电路组成,晶体管门电路在执行不同的程序操作时,电能消耗有所不同,这一变化可以通过示波器观察到。因此,Kocher等人提出了功耗分析攻击法。功耗分析的前提是功耗与设备执行的指令相关,并与处理的操作数的值相关,这样通过监视和记录密码设备的功耗轨迹即可分析出正在执行的指令和寄存器中的数据信息。密码设备正在执行秘密密钥操作时,攻击者有可能推导出秘密密钥。功耗分析主要分为简单功耗分析(Simple Power Analysis, SPA)和差分功耗分析(Differential Power Analysis, DPA)两大类。SPA攻击是一种直接分析功率消耗值的技术,攻击者直观观测功耗轨迹即可分析出密钥。DPA攻击较为复杂,是一种以功耗为基础,再以统计方式推演密钥的攻击技术。由于SPA攻击对攻击环境和设备要求不高,易于实现,被攻击者应用最广,是密码设备的主要安全威胁之一。
[0004]除了 SPA攻击方法,攻击者常用的另一种攻击手段是DFA攻击。DFA攻击者通过使用物理方法(如电磁或激光辐射)干扰密码设备的正常工作,获取错误的输出信息,根据该错误的输出信息分析得到密钥。1997年E.Bihan^PA.Shamir首先提出了 DFA攻击方法,之后研究人员在DFA攻击方向展开了广泛研究。相比其他SPA攻击方法,DFA攻击的效率高且计算量小,比如RSA-CRT的破解只需要注入一个故障,因此DFA攻击已经成为密码设备的严重威胁之一。
[0005]然而,目前防止攻击者进行攻击的技术方案都是单独针对SPA或DFA攻击的,还没有一种可以同时防止这两种攻击的方法。

【发明内容】

[0006]本发明实施例提供了一种模幂运算的处理方法、装置及密码设备,旨在解决现有技术提供的密码设备不能同时防止SPA和DFA攻击的问题。
[0007]—方面,提供一种模幂运算的处理方法,所述方法包括:
[0008]所述模幂运算中包括模方运算和模乘运算,其特征在于,所述方法包括:
[0009]在进行模方运算时,先采用预设的N个乘法算法,对模方运算中的操作数进行处理,得到N个模方中间计算结果,再根据预设的校验条件验证所述N个模方中间计算结果是否满足预设的校验条件,如果满足预设的校验条件,则根据第R个乘法算法和第R个模方中间计算结果计算得到本次模方运算的结果;
[0010]在进行模乘运算时,先采用预设的N个乘法算法,对模乘运算中的第一操作数和第二操作数进行处理,得到N个模乘中间计算结果,再根据预设的校验条件验证所述N个模乘中间计算结果是否满足预设的校验条件,如果满足预设的校验条件,则根据第R个乘法算法和第R个模乘中间计算结果计算得到本次模乘运算的结果;
[0011]将最后一次计算得到的模乘运算的结果或模方运算的结果作为模幂运算的结果;
[0012]其中,N大于等于2,R小于等于N,R大于等于I。
[0013]进一步地,所述N个乘法算法中包括模乘运算;或者
[0014]所述N个乘法算法中包括模乘、模加和/或模减运算。
[0015]进一步地,所述N个乘法算法是N个采用不同运算规则的乘法算法;或
[0016]所述N个乘法算法中包含至少两个采用相同运算规则的乘法算法。
[0017]进一步地,在所述根据预设的校验条件验证所述N个模方中间计算结果是否满足预设的校验条件之后,还包括:
[0018]如果根据预设的校验条件验证所述N个模方中间计算结果不满足预设的校验条件,则进行异常处理;和/或
[0019]在所述根据预设的校验条件验证所述N个模乘中间计算结果是否满足预设的校验条件之后,还包括:
[0020]如果根据预设的校验条件验证所述N个模乘中间计算结果不满足预设的校验条件,则进行异常处理。
[0021]另一方面,提供一种模幂运算的处理装置,所述模幂运算中包括模方运算和模乘运算,其特征在于,所述装置包括:模方运算单元、模乘运算单元和模幂结果获取单元;
[0022]所述模方运算单元包括:
[0023]模方中间结果获取模块,用于采用预设的N个乘法算法,对模方运算中的操作数进行处理,得到N个模方中间计算结果;
[0024]第一校验模块,用于根据预设的校验条件验证所述N个模方中间计算结果是否满足预设的校验条件,如果满足预设的校验条件,则根据第R个乘法算法和第R个模方中间计算结果计算得到本次模方运算的结果;
[0025]所述模乘运算单元包括:
[0026]模乘中间结果获取模块,用于采用预设的N个乘法算法,对模乘运算中的第一操作数和第二操作数进行处理,得到N个模乘中间计算结果;
[0027]第二校验模块,用于根据预设的校验条件验证所述N个模乘中间计算结果是否满足预设的校验条件,如果满足预设的校验条件,则根据第R个乘法算法和第R个模乘中间计算结果计算得到本次模乘运算的结果;
[0028]所述模幂结果获取单元,用于将最后一次所述模方运算单元计算得到的模方运算的结果或最后一次所述模乘运算单元计算得到的模乘运算的结果作为模幂运算的结果;
[0029]其中,N大于等于2,R小于等于N,R大于等于I。
[0030]进一步地,所述N个乘法算法中包括模乘运算;或者
[0031]所述N个乘法算法中包括模乘、模加和/或模减运算。
[0032]进一步地,所述N个乘法算法是N个采用不同运算规则的乘法算法;或
[0033]所述N个乘法算法中包含至少两个采用相同运算规则的乘法算法。
[0034]进一步地,所述模房运算单元还包括:
[0035]第一异常处理模块,用于如果根据预设的校验条件验证所述N个模方中间计算结果不满足预设的校验条件,则进行异常处理;和/或
[0036]所述模乘运算单元还包括:
[0037]第二异常处理模块,用于如果根据预设的校验条件验证所述N个模乘中间计算结果不满足预设的校验条件,则进行异常处理。
[0038]又一方面,提供一种密码设备,所述密码设备包括如上所述的模幂运算的处理装置。
[0039]在本发明实施例,模乘运算和模方运算采用相同的乘法算法,消耗的功耗类似,从而推导不出密钥,可以防止SPA攻击。另外,在模乘运算和模方运算中采用相同的校验条件对两个或两个以上的乘法算法的计算结果进行校验,由于两个或两个以上乘法算法同时出现错误的概率极低,可以防止DFA攻击。
【附图说明】
[0040]图1是本发明实施例一提供的模幂运算的处理方法的实现流程图;
[0041]图2是本发明实施例一提供的N = 2时,模乘运算的结果和模方运算的结果的计算过程示意图;
[0042]图3是本发明实施例二提供的模幂运算的处理装置的结构框图。
【具体实施方式】
[0043]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]在本发明实施例中,考虑模幂运算的基本操作是模乘和模方,模乘运算和模方运算在处理的过程中采用相同的乘法算法、相同的校验条件计算得到模乘运算和模方运算的结果,最后得到模幂运算的结果。
[0045]以下结合具体实施例对本发明的实现进行详细描述:
[0046]实施例一
[0047]图1示出了本发明实施例一提供的模幂运算的处理方法的实现流程,该模幂运算的处理方法在密码设备中执行,其中,模幂运算中包括模乘运算和模方运算,详述如下:
[0048]在步骤SlOl中,在进行模方运算时,先采用预设的N个乘法算法,对模方运算中的操作数进行处理,得到N个模方中间计算结果,再根据预设的校验条件验证所述N个模方中间计算结果是否满足预设的校验条件,如果满足预设的校验条件,则根据第R个乘法算法和第R个模方中间计算结果计算得到本次模方运算的结果。
[0049]在本发明实施例中,密码设备进行模幂运算的基本操作是模乘运算A*B mod η和模方运算A2H1d η。其中,将模乘运算中的A和B分别称为模乘运算的第一操作数和第二操作数,将模方运算中的A称为模方运算的操作数。
[0050]密码设备中包括N个第一乘法模块,每个第一乘法模块中执行一种预设的乘法算法。N为大于等于2的整数,所述N个乘法算法中可以只包括模乘运算,也可以包括模乘、模加和/或模减运算,具体在乘法算法中采用何种运算,在本实施例中不做限制。
[0051]另外,所述N个乘法算法可以是N个
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1