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

文档序号:9202519阅读:610来源:国知局
一种密钥抗功耗攻击的方法
【技术领域】
[0001] 本发明设及信息安全技术领域,具体地说,设及一种密钥抗功耗攻击的方法。
【背景技术】
[0002] 功耗攻击是一种利用密码算法计算过程中设备的功耗泄漏来得到密钥的侧信道 攻击方式。如图1所示,密码巧片的功耗与算法操作的指令和数据密切相关,该也就为功耗 攻击提供了可能。功耗攻击主要包括两类功耗分析,即简单功耗分析(SPA)和差分功耗分 析值PA)。在SPA过程中,攻击者通过观察加密过程的功耗曲线,推断出不同时间对应的操 作,从而提取部分或全部密钥。在DPA过程中,攻击者则主要利用功耗与中间变量的关系分 析恢复密钥。
[0003] 1985年,N.Koblitz和V.Miller各自独立地提出楠圆曲线密码体制巧CC)。相比 传统公钥加密算法,ECC具有安全性高、计算速度快、存储空间小、带宽要求低、计算参数少 W及签名短小等诸多优点,其在限制资源的系统中尤为突出。
[0004] 2010年12月17日,为满足电子认证服务系统等应用需求,国家密码管理局发布了 SM2楠圆曲线公钥密码算法。目前,SM2算法多应用于智能卡巧片中,功耗攻击具有较小的 密钥捜索空间和较高的分析效率,对智能卡巧片安全性构成很大的威胁。随着SM2算法在 国内金融领域的推广应用,研究SM2算法巧片实现时的抗功耗攻击能力,对提高我国金融 领域的安全有着重要的意义。

【发明内容】

[0005] 为解决上述问题,本发明提供了一种密钥抗功耗攻击的方法,所述方法包括:
[0006] 利用预设原子块来进行标量乘中的倍点和/或点加操作,其中,所述预设原子块 包括模乘操作、加法操作和减法操作。
[0007] 根据本发明的一个实施例,所述预设原子块包括一次模乘操作、一次加法操作和 一次减法操作。
[0008] 根据本发明的一个实施例,所述预设原子块为:
[0009]
[0010] 其中,r为预设原子块,表示寄存器下标矩阵中第P行第q列的元素,R表示 寄存器。
[0011] 根据本发明的一个实施例,
[0012] 当进行标量乘操作的点P为固定点时,所述预设原子块的寄存器下标矩阵的维数 为 19X9;
[0013] 当进行标量乘操作的点P为非固定点时,所述预设原子块的寄存器下标矩阵的维 数为24X9。
[0014] 根据本发明的一个实施例,进行密钥相关操作的过程中,在进行标量乘操作的步 骤包括:
[0015] 根据前一循环的变量a和变量P,计算当前循环的变量P ;
[0016] 根据变量bi和当前循环的变量P,计算当前循环的变量a;
[0017] 根据当前循环的变量P和寄存器下标矩阵,执行预设原子块中的操作;
[0018] 根据当前循环的变量i和变量a计算下一循环的变量i;
[0019] 判断下一循环的变量i是否大于或等于0,如果是,则重复W上过程,否则根据预 设原子块的执行结果得到标量乘操作结果。
[0020] 根据本发明的一个实施例,在进行标量乘操作的过程中,当进行标量乘操作的点P 为固定点时,根据如下表达式计算当前循环的变量P和变量a;
[0021]
[0022]
[0023] 其中,bi表示整数b所对应的二进制数的第i位的值。
[0024] 根据本发明的一个实施例,在进行标量乘操作的过程中,当进行标量乘操作的点P 为非固定点时,根据如下表达式计算当前循环的变量P和变量a:
[00 巧]
[0026]
[0027] 其中,bi表示整数b所对应的二进制数的第i位的值。
[0028] 根据本发明的一个实施例,当进行标量乘操作的点P为非固定点时,进行标量乘 操作的过程包括:
[0029] 根据前一循环的变量a和变量P,计算当前循环的变量P ;
[0030] 根据变量bi和当前循环的变量P,计算当前循环的变量a;
[0031] 如果变量j处于第一预设范围内,则循环执行:
[0032] 根据当前循环的变量P和寄存器下标矩阵,执行预设原子块中的操作;
[0033] 将变量j加1并进入下一循环;
[0034] 根据当前循环的变量i和变量a计算下一循环的变量i;
[003引判断下一循环的变量i是否大于或等于0,如果是,则重复W上过程,否则根据预 设原子块的操作结果得到标量乘操作结果。
[0036] 根据本发明的一个实施例,在进行标量乘操作的过程中,当进行标量乘操作的点P 为非固定点时,根据如下表达式计算当前循环的变量P和变量a:
[0037]
[0038] a^hi. (pdiv\ (1) + (^的
[0039] 其中,bi表示整数b所对应的二进制数的第i位的值。
[0040] 根据本发明的一个实施例,在生成数字签名的过程中,所述方法根据如下表达式 生成数字签名中的变量S:
[0041] S = [(l+dj-i ?化甘)-r]modn
[004引其中,dA用户A的私钥,r表示已知变量,k表示随机数,n表示基点的阶。
[0043] 根据本发明的一个实施例,如果生成的S等于0,则重新产生新的随机数,并基于 所述新的随机数生成S。
[0044] 根据本发明的一个实施例,生成数字签名中的变量r的步骤包括:
[0045]将待签名消息M与第一杂凑值Za拼接,结合密码杂凑函数HY生成变量e;
[0046] 根据随机数X确定楠圆曲线上基点G的k倍点;
[0047] 根据变量e和基点G的k倍点,生成数字签名中的变量r。
[0048] 本发明所提供的密钥抗功耗攻击方法将原子算法概念与SM2的特殊性相结合,优 化了点加操作W及倍点操作的流程,通过引入相应变量来控制标量乘的内部循环,把标量 乘转换为模乘-加-减为一组的原子块循环。
[0049] 相比已有的原子算法,本发明所提供的方法使得每个原子块操作节省了一次求反 过程,并将寄存器下标矩阵由26X10阶优化为19X9或24X9阶。该样也就大大节省了标 量乘所需要的运算量,不仅保证了密钥的安全性,还提高了SM2算法的运算速度。
[0050] 同时,本发明所提供的方法在生成变量S时所采用的表达式并不再含有易受攻击 的乘法器r?dA,因此也就能够进一步提高密钥的抗功耗攻击性。此外,本发明所提供的方 法在生成变量S时只含有一次求逆和一次模乘,相较于原始算法中生成S的过程,本方法减 少了一次模乘,该样不仅实现了抗功耗攻击,还提高了操作速度。
[0051] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书W及附图中所特别指出的结构来实现和获得。
【附图说明】
[0052] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要的附图做简单的介绍:
[0053] 图1是现有的SM2功耗攻击的示意图;
[0054] 图2是现有的标量乘
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1