RSA模幂电路及RSA安全加密芯片制造技术

技术编号:8834042 阅读:215 留言:0更新日期:2013-06-22 20:21
一种RSA模幂电路及RSA安全加密芯片,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。本发明专利技术能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。

【技术实现步骤摘要】
RSA模幂电路及RSA安全加密芯片
本专利技术涉及集成电路,特别是涉及RSA安全加密芯片。
技术介绍
RSA安全加密芯片广泛应用于社会各个领域,例如智能卡和银行口令卡。因此,保护芯片中的秘密信息具有极其重大的意义。RSA公钥加密算法是一种非常著名且应用广泛的公钥系统。RSA的安全性的基础是大整数的素因子难以求解,至今任然没有人提出有效的数学方法来有效的解决这一个问题。目前,针对安全芯片实施旁路攻击成为窃取芯片中密钥的一种常见手段。功耗分析是旁路攻击中的一种,它对安全芯片构成极大的威胁。Kocher等人提出了简单功耗分析,并于之后被人成功使用功耗分析攻击RSA算法。简单功耗攻击是一种简单的攻击方法,它要求攻击者熟悉密码算法实现的具体过程。在密码部件运行时,攻击者对部件的功耗情况进行采样来获取功耗轨迹曲线。然后,攻击者就能通过曲线猜测部件在特定的时间段进行什么操作以及这些操作所涉及的参数。模乘操作是RSA公钥加密算法中非常重要的步骤。加密部件进行模乘运算时会产生较大的功耗。RSA算法根据密钥每一位的取值来判断是否进行模乘操作,那么攻击者通过分析功耗轨迹曲线,就能判断加密部件是否进行模乘操作,从而轻易的窃取没有任何防护的RSA部件中的密钥。在模幂算法中引入冗余操作或者虚假操作成为一种抵抗功耗分析的方法。它通过冗余操作来产生额外的功耗,使得模幂运算不会因为密钥指数的各位的差异在功耗曲线显现出来。但是,这种方法会受到一种称为安全错误的手段的攻击。由于冗余运算的结果不会影响模幂结果的正确性,那么人为的造成冗余运算出错也会得到正确的加密结果,从而可以窃取密钥。可见,现有的RSA安全加密芯片由于针对硬件实施旁路攻击可能被有效地窃取密钥,从而使密钥的安全存在隐患。
技术实现思路
本专利技术要解决的技术问题在于克服上述现有技术的不足,而提出一种RSA模幂电路,能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。本专利技术解决上述技术问题采用的技术方案包括,提出一种RSA模幂电路,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。不论RSA加密的密钥当前比特位是1还是0,该模幂控制器都会启动该模乘控制器,该模乘控制器都会控制脉动阵列进行模乘运算。该脉动阵列进行的是蒙哥马利模乘运算。该模幂控制器存在有四个数据寄存器CT、Parameter、P和N,其中,数据寄存器CT用于存储模乘运算的结果以及模幂运算的结果,数据寄存器P用于存储明文以及模方运算的结果。该数据寄存器N保存的是模乘中的模数;该数据寄存器parameter保存的是(2n+2modN),n为数据的二进制位数。n值为2048。该数据寄存器CT、P、N和parameter均为2049位。在RSA加密的密钥当前比特位是1时,该模幂控制器会将数据寄存器CT、P和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。在RSA加密的密钥当前比特位是0时,该模幂控制器会将数据寄存器CT、parameter和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄存器CT。本专利技术解决上述技术问题采用的技术方案还包括,提出一种RSA安全加密芯片,其包括上述的RSA模幂电路。与现有技术相比,本专利技术的RSA模幂电路及RSA安全加密芯片,能够有效地抵抗功耗分析攻击和安全错误攻击,可以确保RSA安全加密芯片内部密钥的安全。附图说明图1是本专利技术的RSA模幂电路的结构示意。图2是本专利技术的RSA模幂电路实施例中的相关信号传递图。图3是本专利技术的RSA模幂电路在密钥当前比特位是1时,模幂控制器和脉动阵列的数据传递示意。图4是本专利技术的RSA模幂电路在密钥当前比特位是0时,模幂控制器和脉动阵列的数据传递示意。具体实施方式以下结合附图所示之最佳实施例作进一步详述。参见图1,本专利技术的RSA模幂电路结构大致包括:模幂控制器1、模乘控制器2和脉动阵列3三大模块。其中,模幂控制器1可以控制模幂运算的整个过程,包括模乘控制器2的启动以及脉动阵列3的数据输入输出。模乘控制器2可以控制脉动阵列3完成模乘运算。脉动阵列3实现模乘运算,并将数据输出给模幂控制器1。优选地,该脉动阵列3实现的是蒙哥马利模乘运算。在其他实施例中,该脉动阵列3也可以是实现其它算法的模乘运算。模幂控制器1中设置有CT、parameter、P、和N四个数据寄存器,其中,CT、P、N和parameter是2049bit的寄存器,数据寄存器CT用以保存计算结果;数据寄存器P初始化为明文并保存模方运算的结果;数据寄存器N是常数,为模乘中的模数;数据寄存器parameter值设定为(2n+2modN),n等于2048。在一次模幂运算中,数据寄存器P和N的值不会发生变化。在本实例中规定的数据寄存器长度和n值均可以随RSA算法的位长而变化,例如:当RSA算法采用1024位时,上述四个数据寄存器的长度是1025bit,n是1024;当RSA算法采用3096位时,上述四个数据寄存器的长度是3097bit,n是3096。参见图2所示的本专利技术的RSA模幂电路实施例的信号传递,其中,CT、P、N和parameter为四个数据寄存器,其他的信号为控制信号。当本专利技术的RSA模幂电路初始化时,模幂控制器1中会写入密钥,并对上述四个寄存器赋初值,数据寄存器CT赋值1,数据寄存器P为明文,数据寄存器N是模数,数据寄存器parameter赋值为(2n+2modN),n等于2048,接着根据密钥各比特位是0还是1,会将不同的信号量置1。当运算开始时,modstart信号会被置为1,持续一个周期后,被置为0。当密钥当前比特位是1时,insel、mul信号会被置1,pow信号置0,模乘控制器2根据这些信号,输出信号inselc置1、mulwr置1、powwr置0。模幂控制器1输出到脉动阵列3的数据分别是数据寄存器CT、P和N的值。当脉动阵列3完成运算后,会根据mulwr信号为1和powwr信号为0,而将运算结果写入模幂控制器1的CT寄存器。当密钥当前比特位是0时,信号量的赋值均如同上述当密钥当前比特位是1时的赋值,不同的是模幂控制器1输出到脉动阵列3的数据分别是数据寄存器CT、N和parameter的值。当本专利技术的RSA模幂电路完成模方运算时,信号量的赋值为modstart、pow置1,mul、insel置0,模乘控制器2输出信号inselc和mulwr置0,powwr置1。模幂控制器1输出到脉动阵列3的数据是P、P和N。脉动阵列3根据powwr置1、mulwr置0,将运算的结果输入到寄存器P中。当整个模幂运算完成时,moddone信号会被置1,持续一个周期后,被置为0。模幂控制器1的工作流程包括:判断密钥指数e的当前比特位是否为1,如果是1,执行第一种模幂处理,否则,执行第二种模幂处理。参见图3,执行第一种模幂处理时,模幂控制器1将数据寄存器CT、P和N中的值输送到脉动阵列3,并且启动模乘控制器2,由模乘控制器2控制脉动阵列3的模乘运本文档来自技高网
...
RSA模幂电路及RSA安全加密芯片

【技术保护点】
一种RSA模幂电路,其特征在于,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器。

【技术特征摘要】
1.一种RSA模幂电路,其特征在于,包括:模幂控制器、模乘控制器和脉动阵列;其中,模幂控制器可以控制模幂运算的整个过程,包括模乘控制器的启动以及脉动阵列的数据输入输出;模乘控制器可以控制脉动阵列完成模乘运算;脉动阵列实现模乘运算,并将数据输出给模幂控制器;该模幂控制器存在有四个数据寄存器CT、Parameter、P和N,其中,数据寄存器CT用于存储模乘运算的结果以及模幂运算的结果,数据寄存器P用于存储明文以及模方运算的结果;其中,不论RSA加密的密钥当前比特位是1还是0,该模幂控制器都会启动该模乘控制器,该模乘控制器都会控制脉动阵列进行模乘运算;在RSA加密的密钥当前比特位是1时,该模幂控制器会将数据寄存器CT、P和N保存的值输送给该脉动阵列,该脉动阵列会将模乘运算的结果返回该模幂控制器的数据寄...

【专利技术属性】
技术研发人员:刘彦首南青宋丹李肯立秦云川沈案
申请(专利权)人:深圳市证通电子股份有限公司
类型:发明
国别省市:

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

1