一种密钥抗功耗攻击的方法_4

文档序号:9202519阅读:来源:国知局
0或r+k 是否等于n,只要满足其中一个条件,则返回步骤S503来重新生成随机数k,并基于该新的 随机数k来重新生成数字签名中的r。
[0131] 在步骤S506中,根据得到的变量r、随机数k和用户A的私钥dA生成数字签名中 的S。现有的采用掩膜来生成S的方法虽然能够将原本确定r成功掩盖,但该方法需要额外 生成随机数,并且还需要增加求逆和模乘过程,该也就使得操作时间过长、资源消耗过大。
[0132] 通过对现有的生成S的方法进行分析,本实施例提供了一种新的生成S的方 法。具体地,本实施例所提供的方法在生成S时,通过对现有的计算S的表达式S= [(1+dAr?化-r?cg]modn进行变形,使得变形后的表达式中不再含有易受攻击的乘法器 r?dA。该样,攻击者也就无法针对r?dA进行差分功耗攻击。
[013引具体地,本实施例中,将乘法因式分解为两部分,利用(1+dA-l)来表示dA,继续因 式分解,利用(l+dAri,(l+dA) 来消去上述因子,最后合并具有相同因子的多项式,从而 得到与原表达式等效的不含乘法器r?dA的变形表达式,即;
[0134]
[0135]本实施例中,还在步骤S507中判断生成的S是否等于0。如果S等于0,则返回步 骤S503重新生成随机数k,并利用新的随机数k来生成r和S。如果S不等于0,则在步骤 S508中将生成的r和S的数据类型转换为字符串,从而得到消息M的签名(r,S)。
[0136] 从上述描述中可W看出,本实施例中,生成S时所采用的表达式并不再含有易受 攻击的乘法器r?dA,因此也就能够进一步提高密钥的抗功耗攻击性。同时,本实施例所提 供的方法在生成S时只含有一次求逆和一次模乘,相较于原始算法中生成S的过程,本方法 减少了一次模乘,该样不仅实现了抗功耗攻击,还提高了操作速度。
[0137]应该理解的是,本发明所公开的实施例不限于该里所公开的处理步骤,而应当延 伸到相关领域的普通技术人员所理解的该些特征的等同替代。还应当理解的是,在此使用 的术语仅用于描述特定实施例的目的,而并不意味着限制。
[013引说明书中提到的"一个实施例"或"实施例"意指结合实施例描述的特定特征、结 构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语"一个 实施例"或"实施例"并不一定均指同一个实施例。
[0139] 为了方便,在此使用的多个项目和/或组成单元可出现在共同列表中。然而,该些 列表应解释为该列表中的每个元素分别识别为单独唯一的成员。因此,在没有反面说明的 情况下,该列表中没有一个成员可仅基于它们出现在共同列表中便被解释为相同列表的任 何其它成员的实际等同物。
[0140] 虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术 人员来说,在不背离本发明的原理和思想的情况下,明显可W在形式上、用法及实施的细节 上作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。
【主权项】
1. 一种密钥抗功耗攻击的方法,其特征在于,所述方法包括: 利用预设原子块来进行标量乘中的倍点和/或点加操作,其中,所述预设原子块包括 模乘操作、加法操作和减法操作。2. 如权利要求1所述的方法,其特征在于,所述预设原子块包括一次模乘操作、一次加 法操作和一次减法操作。3. 如权利要求1或2所述的方法,其特征在于,所述预设原子块为:其中,r为预设原子块,表示寄存器下标矩阵中第p行第q列的元素,R表示寄存 器。4. 如权利要求3所述的方法,其特征在于, 当进行标量乘操作的点P为固定点时,所述预设原子块的寄存器下标矩阵的维数为 19X9 ; 当进行标量乘操作的点P为非固定点时,所述预设原子块的寄存器下标矩阵的维数为 24X9。5. 如权利要求1~4中任一项所述的方法,其特征在于,进行密钥相关操作的过程中, 在进行标量乘操作的步骤包括: 根据前一循环的变量a和变量p,计算当前循环的变量p; 根据变量h和当前循环的变量p,计算当前循环的变量a; 根据当前循环的变量P和寄存器下标矩阵,执行预设原子块中的操作; 根据当前循环的变量i和变量a计算下一循环的变量i; 判断下一循环的变量i是否大于或等于〇,如果是,则重复以上过程,否则根据预设原 子块的执行结果得到标量乘操作结果。6. 如权利要求5所述的方法,其特征在于,在进行标量乘操作的过程中,当进行标量乘 操作的点P为固定点时,根据如下表达式计算当前循环的变量P和变量a:其中,匕表示整数b所对应的二进制数的第i位的值。7. 如权利要求5或6所述的方法,其特征在于,在进行标量乘操作的过程中,当进行标 量乘操作的点P为非固定点时,根据如下表达式计算当前循环的变量P和变量a:其中,匕表示整数b所对应的二进制数的第i位的值。8. 如权利要求1~7中任一项所述的方法,其特征在于,当进行标量乘操作的点P为非 固定点时,进行标量乘操作的过程包括: 根据前一循环的变量a和变量p,计算当前循环的变量p; 根据变量h和当前循环的变量p,计算当前循环的变量a; 如果变量j处于第一预设范围内,则循环执行: 根据当前循环的变量P和寄存器下标矩阵,执行预设原子块中的操作; 将变量j加1并进入下一循环; 根据当前循环的变量i和变量a计算下一循环的变量i; 判断下一循环的变量i是否大于或等于〇,如果是,则重复以上过程,否则根据预设原 子块的操作结果得到标量乘操作结果。9. 如权利要求8所述的方法,其特征在于,在进行标量乘操作的过程中,当进行标量乘 操作的点P为非固定点时,根据如下表达式计算当前循环的变量P和变量a:其中,匕表示整数b所对应的二进制数的第i位的值。10. 如权利要求1~9中任一项所述的方法,其特征在于,在生成数字签名的过程中,所 述方法根据如下表达式生成数字签名中的变量s: s= [ (l+dA)? (k+r) -r]modn 其中,dA用户A的私钥,r表示已知变量,k表示随机数,n表示基点的阶。11. 如权利要求10所述的方法,其特征在于,如果生成的s等于0,则重新产生新的随 机数,并基于所述新的随机数生成s。12. 如权利要求10或11所述的方法,其特征在于,生成数字签名中的变量r的步骤包 括: 将待签名消息M与第一杂凑值ZA拼接,结合密码杂凑函数H7生成变量e; 根据随机数x确定椭圆曲线上基点G的k倍点; 根据变量e和基点G的k倍点,生成数字签名中的变量r。
【专利摘要】本发明公开了一种密钥抗功耗攻击的方法,该方法包括:利用预设原子块来进行标量乘中的倍点和/或点加操作,其中,预设原子块包括模乘操作、加法操作和减法操作。该方法将原子算法概念与公钥密码算法的特殊性相结合,优化了点加操作以及倍点操作的流程,通过引入相应变量来控制标量乘的内部循环,把标量乘转换为模乘-加-减为一组的原子块循环,该方法大大节省了标量乘所需要的运算量,不仅保证了密钥的安全性,还提高了公钥密码算法的运算速度。
【IPC分类】H04L9/06, H04L9/08
【公开号】CN104917608
【申请号】CN201510256515
【发明人】乌力吉, 韩晓薇, 张向民, 王蓓蓓
【申请人】清华大学
【公开日】2015年9月16日
【申请日】2015年5月19日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1