专利名称:Rsa模幂电路及rsa安全加密芯片的制作方法
技术领域:
本发明涉及集成电路,特别是涉及RSA安全加密芯片。
背景技术:
RSA安全加密芯片广泛应用于社会各个领域,例如智能卡和银行口令卡。因此,保护芯片中的秘密信息具有极其重大的意义。RSA公钥加密算法是一种非常著名且应用广泛的公钥系统。RSA的安全性的基础是大整数的素因子难以求解,至今任然没有人提出有效的数学方法来有效的解决这一个问题。目前,针对安全芯片实施旁路攻击成为窃取芯片中密钥的一种常见手段。功耗分析是旁路攻击中的一种,它对安全芯片构成极大的威胁。Kocher等人提出了简单功耗分析,并于之后被人成功使用功耗分析攻击RSA算法。简单功耗攻击是一种简单的攻击方法,它要求攻击者熟悉密码算法实现的具体过程。在密码部件运行时,攻击者对部件的功耗情况进行采样来获取功耗轨迹曲线。然后,攻击者就能通过曲线猜测部件在特定的时间段进行什么操作以及这些操作所涉及的参数。模乘操作是RSA公钥加密算法中非常重要的步骤。加密部件进行模乘运算时会产生较大的功耗。RSA算法根据密钥每一位的取值来判断是否进行模乘操作,那么攻击者通过分析功耗轨迹曲线,就能判断加密部件是否进行模乘操作,从而轻易的窃取没有任何防护的RSA部件中的密钥。在模幂算法中引入冗余操作或者虚假操作成为一种抵抗功耗分析的方法。它通过冗余操作来产生额外的功耗,使得模幂运算不会因为密钥指数的各位的差异在功耗曲线显现出来。但是,这种方法会受到一种称为安全错误的手段的攻击。由于冗余运算的结果不会影响模幂结果的正确性,那么人为的造成冗余运算出错也会得到正确的加密结果,从而可以切取 钥。可见,现有的RSA安全加密芯片由于针对硬件实施旁路攻击可能被有效地窃取密钥,从而使密钥的安全存在隐患。
发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种RSA模幂电路,能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。本发明解决上述技术问题采用的技术方案包括,提出一种RSA模幂电路,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。不论RSA加密的密钥当前比特位是I还是0,该模幂控制器都会启动该模乘控制器,该模乘控制器都会控制脉动阵列进行模乘运算。该脉动阵列进行的是蒙哥马利模乘运算。
该模幂控制器存在有四个数据寄存器CT、Parameter, P和N,其中,数据寄存器CT用于存储模乘运算的结果以及模幂运算的结果,数据寄存器P用于存储明文以及模方运算的结果。该数据寄存器N保存的是模乘中的模数;该数据寄存器parameter保存的是(2n+2mod N),η为数据的二进制位数。η 值为 2048。该数据寄存器CT、P、N和parameter均为2049位。在RSA加密的密钥当前比特位是I时,该模幂控制器会将数据寄存器CT、P和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。在RSA加密的密钥当前比特位是O时,该模幂控制器会将数据寄存器CT、parameter和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。本发明解决上述技术问题采用的技术方案还包括,提出一种RSA安全加密芯片,其包括上述的RSA模幂电路。与现有技术相比,本发明的RSA模幂电路及RSA安全加密芯片,能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。
图1是本发明的RSA模幂电路的结构示意。图2是本发明的RSA模幂电路实施例中的相关信号传递图。图3是本发明的RSA模幂电路在密钥当前比特位是I时,模幂控制器和脉动阵列的数据传递示意。图4是本发明的RSA模幂电路在密钥当前比特位是O时,模幂控制器和脉动阵列的数据传递示意。
具体实施例方式以下结合附图所示之最佳实施例作进一步详述。参见图1,本发明的RSA模幂电路结构大致包括:模幂控制器1、模乘控制器2和脉动阵列3三大模块。其中,模幂控制器I可以控制模幂运算的整个过程,包括模乘控制器2的启动以及脉动阵列3的数据输入输出。模乘控制器2可以控制脉动阵列3完成模乘运算。脉动阵列3实现模乘运算,并将数据输出给模幂控制器I。优选地,该脉动阵列3实现的是蒙哥马利模乘运算。在其他实施例中,该脉动阵列3也可以是实现其它算法的模乘运算。模幂控制器I中设置有CT、parameter、P、和N四个数据寄存器,其中,CT、P、N和parameter是2049bit的寄存器,数据寄存器CT用以保存计算结果;数据寄存器P初始化为明文并保存模方运算的结果;数据寄存器N是常数,为模乘中的模数;数据寄存器parameter值设定为(2n+2 mod N), η等于2048。在一次模幂运算中,数据寄存器P和N的值不会发生变化。在本实例中规定的数据寄存器长度和η值均可以随RSA算法的位长而变化,例如:当RSA算法采用1024位时,上述四个数据寄存器的长度是1025bit,η是1024 ;当RSA算法采用3096位时,上述四个数据寄存器的长度是3097bit,η是3096。参见图2所示的本发明的RSA模幂电路实施例的信号传递,其中,CT、P、N和parameter为四个数据寄存器,其他的信号为控制信号。当本发明的RSA模幂电路初始化时,模幂控制器I中会写入密钥,并对上述四个寄存器赋初值,数据寄存器CT赋值I,数据寄存器P为明文,数据寄存器N是模数,数据寄存器parameter赋值为(2n+2 mod N), η等于2048,接着根据密钥各比特位是O还是I,会将不同
的信号量置I。当运算开始时,modstart信号会被置为1,持续一个周期后,被置为O。当密钥当前比特位是I时,insel、mul信号会被置1,pow信号置0,模乘控制器2根据这些信号,输出信号inselc置Umulwr置Upowwr置O。模幂控制器I输出到脉动阵列3的数据分别是数据寄存器CT、P和N的值。当脉动阵列3完成运算后,会根据mulwr信号为I和powwr信号为0,而将运算结果写入模幂控制器I的CT寄存器。当密钥当前比特位是O时,信号量的赋值均如同上述当密钥当前比特位是I时的赋值,不同的是模幂控制器I输出到脉动阵列3的数据分别是数据寄存器CT、N和parameter 的值。当本发明的RSA模幂电路完成模方运算时,信号量的赋值为modstart、pow置1,mul、insel置O,模乘控制器2输出信号inselc和mulwr置O, powwr置I。模幂控制器I输出到脉动阵列3的数据是P、P和N。脉动阵列3根据powwr置Umulwr置0,将运算的结果输入到寄存器P中。当整个模幂运算完成时,moddone信号会被置1,持续一个周期后,被置为O。模幂控制器I的工作流程包括:
判断密钥指数e的当前比特位是否为1,如果是1,执行第一种模幂处理,否则,执行第
二种模幂处理。参见图3,执行第一种模幂处理时,模幂控制器I将数据寄存器CT、P和N中的值输送到脉动阵列3,并且启动模乘控制器2,由模乘控制器2控制脉动阵列3的模乘运算过程,模乘运算过程结束时,模乘运算的结果则会由脉动阵列3输出到CT,模乘控制器2会给模幂控制器I发反向的控制信息。参见图4,执行第二种模幂处理时,模幂控制器I将数据寄存器CKparameter和N中的值输送到脉动阵列3,并且启动模乘控制器2,由模乘控制器2控制脉动阵列3的模乘运算过程,模乘运算过程结束时,模乘运算的结果则会由脉动阵列3输出到CT,模乘控制器2会给模幂控制器I发反向的控制信息。本发明的RSA模幂电路,当密钥当前比特位是I时,模乘控制器2和脉动阵列3都会启动,数据寄存器CT、P和N中的值输送到脉动阵列3中进行计算:CT X P mod N,计算结果返回到模幂控制器I的数据寄存器CT中。当密钥当前比特位是O时,模乘控制器2和脉动阵列3也都会启动,数据寄存器CT、parameter和N中的值输送到脉动阵列3中进行计算:CT X 2n+2 mod N,计算结果返回到模幂控制器I的数据寄存器CT中。由于脉动阵列3实现的是蒙哥马利模乘运算,所以CT X 2n+2 mod N运算后,数据寄存器CT中的值不会发生变化,从而不会影响模幂运算的进行。
本发明的RSA模幂电路,对应于密钥当前比特位是I和O时分别执行运算CT X Pmod N和CT X 2n+2 mod N,并且这两种情况下的运算结果都会存储到数据寄存器CT,因此数据寄存器CT在任何时候出现错误都将导致最后的模幂结果出现错误。本发明的RSA安全加密芯片,集成有上述的RSA模幂电路。与现有技术相比,本发明的RSA模幂电路及RSA安全加密芯片,不论密钥各位是I还是0,算法都会启动脉动阵列,以使两种情况产生的功耗大致相同,从而可以有效抵抗功耗分析攻击;另外,在密钥位是O时,由于数据寄存器CT始终要参加下一轮的循环,一旦出现人为造成的错误必将导致模幂运算的结果是错误的,使得引入的虚假操作不会遭受安全错误攻击,从而可以有效抵抗安全错误攻击。以上,仅为本发明之较佳实施例,意在进一步说明本发明,而非对其进行限定。凡根据上述之文字和附图所公开的内容进行的简单的替换,都在本专利的权利保护范围之列。
权利要求
1.一种RSA模幂电路,其特征在于,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。
2.如权利要求1所述的RSA模幂电路,其特征在于,不论RSA加密的密钥当前比特位是I还是O,该模幂控制器都会启动该模乘控制器,该模乘控制器都会控制脉动阵列进行模乘运算。
3.如权利要求2所述的RSA模幂电路,其特征在于,该脉动阵列进行的是蒙哥马利模乘运算。
4.如权利要求3所述的RSA模幂电路,其特征在于,该模幂控制器存在有四个数据寄存器CT、Parameter、P和N,其中,数据寄存器CT用于存储模乘运算的结果以及模幂运算的结果,数据寄存器P用于存储明文以及模方运算的结果。
5.如权利要求4所述的RSA模幂电路,其特征在于,该数据寄存器N保存的是模乘中的模数;该数据寄存器parameter保存的是(2n+2 mod N),η为数据的二进制位数。
6.如权利要求5所述的RSA模幂电路,其特征在于,η值为2048。
7.如权利要求6所述的RSA模幂电路,其特征在于,该数据寄存器CT、P、N和parameter均为2049位。
8.如权利要求4所述的RSA模幂电路,其特征在于,在RSA加密的密钥当前比特位是I时,该模幂控制器会将数据寄存器CT、P和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。
9.如权利要求4所述的RSA模幂电路,其特征在于,在RSA加密的密钥当前比特位是O时,该模幂控制器会将数据寄存器CT、parameter和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。
10.一种RSA安全加密芯片,其特征在于,包括如权利要求1至9任一项所述的RSA模幕电路。
全文摘要
一种RSA模幂电路及RSA安全加密芯片,包括模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。本发明能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。
文档编号G06F7/72GK103164187SQ20111040806
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者刘彦, 首南青, 宋丹, 李肯立, 秦云川, 沈案 申请人:深圳市证通电子股份有限公司