一种rsa加速器的制作方法

文档序号:7869739阅读:240来源:国知局
专利名称:一种rsa加速器的制作方法
技术领域
本发明涉及公钥加密领域,特别是一种RSA加速器。
背景技术
RSA 公钥加密算法是 1977 年由 Ron Rivest、Adi Shamirh 和 LenAdleman 在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA是一种非对称加密标准,其安全性来自于对极大整数做因式分解的困难性,其加密强度依赖于密钥长度,即密钥长度越大,破解的难度就越高。目前普遍采用的密钥长度为1024位,可以抵抗一般强度的破解,但是随着计算机技术的快速发展,例如分布式计算和量子计算等技术,使得1024位的密钥可以在更短的时间内被破解。为了提高RSA加密的安全强度,必须采用更大的密钥长度,例如1536位或者2048位的密钥。但是采用更大的密钥长度后,将导致加解密速度降低,一般来说,采用2048位密钥的加解密速度比采用1024位密钥慢6倍左右,例如,一次1024位的加密耗时5毫秒,则2048位的加密则需耗时30毫秒左右,严重影响到应用的效率。另一方面,芯片破解技术的发展,对应用于信息安全领域的芯片造成了极大的威胁。物理攻击属于传统的芯片破解技术,即破坏掉芯片的封装,并利用探针或显微镜获取芯片内部的关键信息。近年来出现的功耗分析技术,不需要破坏芯片,只是通过测量芯片电源引脚上泄露的功耗信息,将其采样成为若干条功耗轨迹曲线,再通过某些算法来分析芯片采用的信息安全算法以及密钥。目前国内外很多科研机构与芯片设计公司展开了对功耗分析技术的研究,利用最先进的功耗分析技术,可以在几秒内破解算法密钥。所以在设计信息安全领域的芯片时,必须考虑增加一些抵抗破解技术的措施,以提高芯片的安全性。为了提高RSA算法的处理速度,目前的做法是以协处理器的形式增设一个RSA加速器,即在主CPU以外,增加一个专用的处理器以执行指令的方式处理RSA算法,如图1所示。现有的RSA加速器包括接受来自主CPU的指令和数据的指令存储器,接受来自主CPU的对加速器的配置和命令的控制/状态寄存器,接受对指令进行译码并执行指令和命令的指令译码及执行单元,数据存储器和算术逻辑单元;指令存储器和控制/状态寄存器通过系统总线与主CPU连接,指令存储器和控制/状态寄存器分别通过控制信号线与指令译码及执行单元连接,指令译码及执行机构通过控制线与数据存储器和算术逻辑单元分别连接,数据存储器通过控制线和数据线与系统总线连接,数据存储器与算术逻辑单元通过数据线连接。这种RSA加速器的缺点在于:1)、虽然RSA加速器以协处理器的形式减轻了主CPU的资源消耗,但是RSA加速器内部依然是通过执行指令的方式来处理RSA算法,而指令都是顺序单条执行的,难以将算法中的操作步骤并行化执行,导致处理RSA算法的速度难以提闻ο2)、在处理RSA算法的过程中,由于每个时钟周期只能执行一条指令,例如分支或运算等指令,与该指令相关的功耗变化会明显地出现在芯片的电源引脚上,这种功耗信息很容易被攻击者利用,并采用功耗分析技术破解密钥。

发明内容
为了克服现有的RSA加速器无法提高RSA算法的运算速度,且执行指令时的功耗变化容易被利用而降低密钥的安全性的缺点,本发明提供了一种能够提高RSA算法的运算速度,且安全性好的RSA加速器。一种RSA加速器,包括控制/状态寄存器,数据存储器和算术逻辑单元,控制/状态寄存器通过控制线与系统总线连接,芯片主CPU通过系统总线向控制/状态寄存器写入配置参数,数据存储器通过控制线和数据线与系统总线连接,算术逻辑单元通过数据线与数据存储器连接;
其特征在于:所述的RSA加速器还包括发出模幂运算指令或者大数除法运算指令的复杂功能控制模块和发出运算指令或者预处理指令的基本功能控制模块;
控制/状态寄存器分别通过控制线与复杂功能控制模块及基本功能控制模块连接,复杂功能控制模块通过控制信号线与基本功能控制模块连接,基本功能控制模块通过控制线分别与算术逻辑单元、数据存储器连接;
复杂功能控制模块包括模幂子模块和大数除法子模块;复杂功能控制模块调用基本功能控制模块的运算指令来实现模幂运算或者大数除法运算,基本功能控制模块调用算术逻辑单元的逻辑运算来实现四则运算;基本功能控制模块的中间运算结果和最终运算结果均存入数据存储器中,芯片主CPU通过系统总线读取数据存储器中的最终运算结果。控制/状态寄存器的配置参数包括操作类型,各输入数据的存放地址和数据长度;操作类型包括模幂和大数除法,操作类型为模幂时,控制/状态寄存器向模幂子模块发出开始命令;操作类型为大数除法时,控制/状态寄存器向大数除法子模块发出开始命令。为了增强密钥的安全性,进一步限定,RSA加速器包含冗余计算子模块和内部随机数生成器,主芯片CPU包含系统随机数生成器;在模幂运算之前系统随机数生成并输入冗余计算子模块,模幂运算过程中,内部随机数生成器生成一个动态的内部随机数,以系统随机数与内部随机数之和作为插入冗余计算的间隔。由于内部随机数是不断变化的,保证了在单次模幂运算中多次插入的冗余计算间隔是随机的。进一步,复杂功能控制模块包含随机掩码计算模块,数据在进行模幂运算之前先进行随机掩码运算。随机掩码运算具有抗功耗分析攻击的能力强,操作简单的优点。本发明具有既能够提高RSA算法的运算速度,且安全性好的优点。


图1是现有的RSA加速器的框图。图2是本发明的框图。图3是冗余计算时随机数的产生的示意图。图4是蒙哥马利算法计算模幂的示意图。
具体实施例方式如图2所示:一种RSA加速器,包括控制/状态寄存器,数据存储器和算术逻辑单元,控制/状态寄存器通过控制线与系统总线连接,芯片主CPU通过系统总线向控制/状态寄存器写入配置参数,数据存储器通过控制线和数据线与系统总线连接,算术逻辑单元通过数据线与数据存储器连接;
所述的RSA加速器还包括执行模幂运算或者大数除法运算的复杂功能控制模块和执行基本运算和预处理操作的基本功能控制模块;
控制/状态寄存器分别通过控制线与复杂功能控制模块及基本功能控制模块连接,复杂功能控制模块通过控制信号线与基本功能控制模块连接,基本功能控制模块通过控制线分别与算术逻辑单元、数据存储器连接;
复杂功能控制模块包括模幂子模块和大数除法子模块;复杂功能控制模块调用基本功能控制模块来实现模幂运算或者大数除法运算,基本功能控制模块调用算术逻辑单元的逻辑运算来实现四则运算;基本功能控制模块的中间运算结果和最终运算结果均存入数据存储器中,芯片主CPU通过系统总线读取数据存储器中的最终运算结果。控制/状态寄存器的配置参数包括操作类型,各输入数据的存放地址和数据长度;操作类型包括模幂和大数除法,操作类型为模幂时,控制/状态寄存器向模幂子模块发出开始命令;操作类型为大数除法时,控制/状态寄存器向大数除法子模块发出开始命令。该RSA加速器是通过将复杂的模幂运算和大数除法运算先分成多个简单的大数加法、大数减法、大数乘法或者小数除法这四则运算以及数据预处理指令,模幂子模块和大数除法子模块循环地调用基本功能控制模块的四则运算指令。而基本功能控制模块向算术逻辑单元发出运算指令,通过调用算术逻辑单元来执行实际的算术运算,算术逻辑单元得出的运算结果存入数据存储器中。芯片主CPU只需对RSA加速器发出模幂或者大数除法的运算指令即可,由RSA加速器自主决定运算策略,将复杂的模幂运算和大数除法运算转化为简单的四则运算,且基本功能控制模块可以在同一时间段内执行多个操作,提高了执行算法的并行度,提高加速器的计算资源利用率。另外,基本功能控制模块的运算功能或者预处理功能也可以直接被主芯片CPU调用,增强了 RSA加速器的灵活性。下面,以一次加密过程为例来说明RSA加速器的操作流程(RSA加密实际上就是一次模幂运算,RSA解密过程与加密过程类似,都是模幂运算,只是密钥不同)。模幂运算包含以下步骤:
I )、芯片主CPU通过系统总线接口向控制/状态寄存器写配置参数,包括操作类型(此例中为模幂),各输入数据的存放地址、数据长度等;
2)、芯片主CPU通过系统总线接口向控制/状态寄存器发出开始命令;
3)、复杂功能控制器里的模幂子模块开始模幂运算,通过循环调用基本功能控制模块中提供的各项功能来实现算法中具体的操作步骤,而基本功能控制模块通过调用算术逻辑单元来执行实际的算术运算,并把运算结果写入数据存储器;
4)、模幂运算结束时,模幂子模块将结束标志写入控制/状态寄存器;
5)、芯片主CPU通过系统总线接口读取结束状态,并从数据存储器读取模幂的运算结果(即经过RSA加密后的密文)。本发明的RSA加速器的加解密速度可比现有的协处理器加速器方案提高一倍左右(在相同的密钥长度,并采用相同算法的条件下),速度的提升主要来源于以下几方面:
1、全硬件的加速器方案提高了执行算法的并行度,其内部的计算资源可以被高度利用,例如模幂运算中的某些步骤可以在同一时间段内重叠执行;
2、分支、跳转等控制流程采用指令方式时需要额外的若干个时钟周期,而在全硬件加速器中,分支、跳转等控制流程不占用额外的时钟周期;
3、预处理子模块可以实现快速的数据搬移、清零、比较等操作,节省了大量时间。如图3所示,为了增强密钥的安全性,RSA加速器包含冗余计算子模块和内部随机数生成器,主芯片CPU包含系统随机数生成器;在模幂运算之前系统随机数生成并输入冗余计算子模块,模幂运算过程中,内部随机数生成器生成一个动态的内部随机数,以系统随机数与内部随机数之和作为插入冗余计算的间隔。由于内部随机数是不断变化的,保证了在单次模幂或者大数除法运算中多次插入的冗余计算间隔是随机的。如图4所示,以利用蒙哥马利算法计算模幂为例说明模幂运算和冗余计算的插入。利用蒙哥马利(Montgomery)算法计算模幂:
P=M~E mod No其中,R为模数N的二进制位数;
rand_num为系统随机数与 内部随机数叠加而成的随机数;
Bit_Num(E)为指数E的二进制位数;
E[i]为指数E的第i位的值;
MM(X, Y)为蒙哥马利乘法函数,计算结果为X*Y*(2~-R) mod N。每执行完一次蒙哥马利乘法,计数器cnt减1,如果cnt>0,继续执行正常计算,如果cnt=0,则要插入一次冗余计算,即再执行一遍最后执行过的蒙哥马利乘法,同时cnt重新装载初值,即当前的叠加随机数。通过双重随机冗余插入技术,在模幂运算或者大数除法运算过程中插入随机的冗余计算,并且所插入的随机冗余计算完全模拟正常计算的时序与功耗,防止芯片管脚的功耗变化被作为破解信息利用,极大提高了 RSA加速器抵抗功耗分析的能力。复杂功能控制模块包含随机掩码计算模块,数据在进行模幂或者大数除法运算之前先进行随机掩码运算。以计算模幂P=M~E mod N为例,该随机掩码算法可描述为以下步骤:
1)生成3个随机数Rl,R2和R3 ;
2)计算 M,=M+R1*N; Ε,=Ε+Ι 2*Φ (N) ; N,=R3*N;
3)计算P’ =M,~E’ mod N,;
4)计算P=P ’ mod N;
其中Φ (N)是模数N的欧拉函数。在以上算法中,执行模幂运算的3个输入参数Μ、Ε、Ν都通过随机掩码进行预处理,然后执行带掩码的模幂运算,得到的结果是带掩码的模幂结果,再经过后处理去除掩码,即可得到最后的模幂结果P。随机掩码运算具有抗功耗分析攻击的能力强,操作简单的优点。本发明具有既能够提高RSA算法的运算速度,且安全性好的优点。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
权利要求
1.一种RSA加速器,包括控制/状态寄存器,数据存储器和算术逻辑单元,控制/状态寄存器通过控制线与系统总线连接,芯片主CPU通过系统总线向控制/状态寄存器写入配置参数,数据存储器通过控制线和数据线与系统总线连接,算术逻辑单元通过数据线与数据存储器连接; 其特征在于:所述的RSA加速器还包括执行模幂运算或者大数除法运算的复杂功能控制模块和执行基本算数操作或预处理操作的基本功能控制模块; 控制/状态寄存器分别通过控制线与复杂功能控制模块及基本功能控制模块连接,复杂功能控制模块通过控制信号线与基本功能控制模块连接,基本功能控制模块通过控制线分别与算术逻辑单元、数据存储器连接; 复杂功能控制模块包括模幂子模块和大数除法子模块;复杂功能控制模块调用基本功能控制模块来实现模幂运算或者大数除法运算,基本功能控制模块调用算术逻辑单元的逻辑运算来实现四则运算;基本功能控制模块的中间运算结果和最终运算结果均存入数据存储器中,芯片主CPU通过系统总线读取数据存储器中的最终运算结果。
2.如权利要求1所述的RSA加速器,其特征在于:控制/状态寄存器的配置参数包括操作类型,各输入数据的存放地址和数据长度;操作类型包括模幂和大数除法,操作类型为模幂时,控制/状态寄存器向模幂子模块发出开始命令;操作类型为大数除法时,控制/状态寄存器向大数除法子模块发出开始命令。
3.如权利要求2所述的RSA加速器,其特征在于:RSA加速器包含冗余计算子模块和内部随机数生成器,主芯片CPU包含系统随机数生成器;在模幂运算或者大数除法运算之前系统随机数生成并输入冗余计算子模块,模幂运算过程中,内部随机数生成器生成一个动态的内部随机数,以系统随机数与内部随机数之和作为插入冗余计算的间隔。
4.如权利要求2或3所述的RSA加速器,其特征在于:复杂功能控制模块包含随机掩码计算模块,数据在进行模幂或者大数除法运算之前先进行随机掩码运算。
全文摘要
一种RSA加速器,包括控制/状态寄存器,数据存储器和算术逻辑单元,控制/状态寄存器通过控制线与系统总线连接,数据存储器通过控制线和数据线与系统总线连接,算术逻辑单元通过数据线与数据存储器连接;RSA加速器包括复杂功能控制模块和基本功能控制模块;控制/状态寄存器分别通过控制线与复杂功能控制模块及基本功能控制模块连接,复杂功能控制模块通过控制信号线与基本功能控制模块连接,基本功能控制模块通过控制线分别与算术逻辑单元、数据存储器连接;芯片主CPU通过系统总结读取数据存储器中的最终运算结果。本发明具有既能够提高RSA算法的运算速度,且安全性好的优点。
文档编号H04L9/30GK103107879SQ201210563959
公开日2013年5月15日 申请日期2012年12月21日 优先权日2012年12月21日
发明者吴斌, 罗洪昌 申请人:杭州晟元芯片技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1