一种高效抗差分功耗分析RSA实现方法技术

技术编号:18240404 阅读:30 留言:0更新日期:2018-06-17 05:06
本发明专利技术公开了一种基于高效抗差分功耗分析RSA实现方法,并给出了采用该方法的一个RSA CRT实现方法的实现实例。该方案避免了实现传统盲化方案中复杂的模逆运算,用较易实现的模乘运算取代了模逆运算,在不影响安全性的前提下,能够极大提高RSA运算效率,节省RSA实现的时间和空间。 1

An efficient RSA implementation method for differential power analysis

The invention discloses a RSA implementation method based on highly effective differential power analysis, and gives an example of implementing a RSA CRT implementation method using this method. This scheme avoids the complex model inverse operation in the traditional blind scheme, replacing the model inverse operation with the more easily realized mode multiplication operation. Without affecting the security, it can greatly improve the efficiency of the RSA operation and save the time and space of the RSA implementation. One

【技术实现步骤摘要】
一种高效抗差分功耗分析RSA实现方法
本专利技术涉及信息加密,特别是需要抗差分功耗分析(DPA)的RSA实现方法。
技术介绍
近年来,密码算法的旁路攻击越来越受到关注和研究。旁路攻击(SideChannelAttacks,SCA)利用算法在电路中运行时所泄漏出来的非特意的信息从而分析出算法电路中的秘密数据。功耗分析是目前旁路攻击中最热门、研究最为广泛的类型,通过监测加密系统泄露的电流和电压等物理信息来进行攻击。功耗分析按照攻击手段主要可分为简单功耗分析(SimplePowerAnalysis,SPA)和差异功耗分析(DifferentialPowerAnalysis,DPA)两种,分别针对电路不同的弱点。简单功耗分析通过观察算法电路运行时的功耗特征来进行攻击;差异功耗分析对大量的明文(或密文)和功耗曲线进行统计分析获取密钥信息。差异功耗分析的关键手段之一就是需要在算法运行时找出一个观察点,以便根据该观察点的值来进行功耗分组。差异功耗分析的基本步骤为首先采集大量的功耗曲线,然后根据选定的观察点对这些功耗曲线进行分组。假设中间数据被盲化,攻击者功耗分组失去依据。对于硬件实现的RSA算法,差异功耗分析是最需要防范的。抵御差异功耗分析的常用方法为盲化方案,盲化方案包括底数盲化和指数盲化。传统的底数盲化方案为:M1=M*RemodNC’=M1dmodNC=C’*R-1modN其中M为输入数据,C为输出数据,N为模数,R为随机数,e为公钥,d为私钥。传统方案用随机数对输入数据进行了盲化,使得攻击者无法对RSA实施差分功耗分析。但是这种方案需要的计算量十分大,尤其在脱盲过程中需要进行模逆运算。而模逆运算的实现方法通常都十分复杂,并且十分耗时,因此这种方法无法在资源受限的环境下进行实现。本专利技术对传统方案进行的改进,在不影响安全性的前提下,避免了其中最复杂的模逆运算,用较易实现的模乘运算取代了模逆运算,提升了整体的运算效率,并且能够减少实现面积和空间。
技术实现思路
本专利技术要解决的技术问题是提供一种高效抗差分功耗分析RSA实现方法,能够避免实现复杂的模逆运算,提高RSA运算效率,节省RSA算法空间。为解决上述技术问题,本专利技术提供一种基于高效抗差分功耗分析RSA实现方法,并给出了采用该方法的一个RSACRT实现方法的实现实例。本专利技术用于高效抗差分功耗分析RSA实现方法如下:(1)RSA运算中M为输入数据,C为输出数据,N为模数,R为随机数,e为公钥,d为私钥,p和q为大素数,并且N=p*q。(2)获取随机数R,随机数必须大于零,且不能是p或q,也不能大于等于N。(3)计算盲化后的输入数据M1,M1=M*RemodN。(4)计算用于脱盲运算的数据M2,M2=M*Re-1modN。(5)对盲化数据后的数据M1进行运算得到盲化的输出结果C’,C’=M1d-1modN。(6)脱盲计算得到输出数据C,C=C’*M2modN。所述步骤1到步骤6中的实现方法,适用的应用场景包括但不限于‘直接RSA运算’、‘RSACRT运算’等。其实现原理推导如下:根据M1=M*RemodN,M2=M*Re-1modN,可推导出M2=M1*R-1modN;根据C’=M1d-1modN和M2,可推导出C=C’*M2modN=M1d-1*M1*R-1modN=M1d*R-1modN,与传统盲化方案计算结果一致。并且本专利技术提出的方法不会影响实现的安全性,与传统方法的安全性没有差异。在运算的初始阶段即对输入数据进行盲化,并在运算的结束阶段对输出数据进行脱盲,使得整个运算期间的中间数据都被盲化。攻击者无法找到任何明文中间数据来进行功耗分析,从而无法推测敏感信息。本专利技术的有益效果在于:本专利技术对传统方案进行的改进,避免了其中最复杂的模逆运算,用较易实现的模乘运算取代了模逆运算。模逆运算的实现方法通常都十分耗时,在硬件实现中,运算时间通常是模乘运算的二十倍,在软件实现中,运算时间相比模乘则更长。并且模逆运算的实现方法实现面积和空间都十分大,在资源受限的环境下无法进行实现。而模乘运算是公钥算法的核心基础运算,通常的公钥实现中都已包含模乘运算。和传统方法相比,本专利技术的实现方法避免了模逆运算,增加了计算M2=M*Re-1modN的运算。该运算包括模乘运算和模幂运算,其中模幂运算Re-1同样可以分解成模乘运算。且该模幂运算的幂指数为e-1,在RSA运算中e通常取17和65537,因此如果使用平方乘算法的话,计算该模幂运算需要的模乘运算操作个数也极少。因此本专利技术能够加速RSA实现,并且减少实现面积和空间。本专利技术对传统方案进行的改进,在不影响安全性的前提下,避免了其中最复杂的模逆运算,用较易实现的模乘运算取代了模逆运算,提升了整体的运算效率,并且能够减少实现面积和空间。本专利技术的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本专利技术的实践而得知。利用在书面描述及其权利要求中具体指出的结构,可以实现和达到本专利技术的目的和其他优点。具体实施方式本专利技术提供了一种基于高效抗差分功耗分析RSA实现方法,该实现方法可用于直接RSA运算以及RSACRT运算。RSACRT实现方法的实现实例流程描述如下:步骤1,RSACRT运算中M为输入数据,C为输出数据,N为模数,R为随机数,e为公钥,d为私钥,p和q为大素数,并且N=p*q。步骤2,获取64位非0随机数R步骤3,计算盲化后的输入数据M1,M1=M*RemodN。步骤4,计算用于脱盲运算的数据M2,M2=M*Re-1modN步骤5,计算指数值,dp=(d-1)mod(p-1)dq=(d-1)mod(q-1)步骤6,计算Mp、Mq,Mp=M1modpMq=M1modq步骤7,计算Sp、Sq,Sp=MpdpmodpSq=Mqdqmodq步骤8,计算盲化的输出结果C’=((Sp–Sq)*(q-1modp)modp)*q+Sq步骤9,脱盲得到输出数据C,C=C’*M2modN。本文档来自技高网
...

【技术保护点】
1.一种高效抗差分功耗分析RSA实现方法,其特征在于:

【技术特征摘要】
1.一种高效抗差分功耗分析RSA实现方法,其特征在于:步骤1,RSA运算中M为输入数据,C为输出数据,N为模数,R为随机数,e为公钥,d为私钥,p和q为大素数,并且N=p*q。步骤2,获取随机数R,随机数必须大于零,且不能是p或q,也不能大于等于N。步骤3,计算盲化后的输入数据M1,M1=M*RemodN。步骤4,计算用于脱盲运算的数据M2,...

【专利技术属性】
技术研发人员:蒋艳柴佳晶吕瑞恩
申请(专利权)人:上海华虹集成电路有限责任公司北京中电华大电子设计有限责任公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1