CN101196964A - 一种抗旁路攻击算法及其芯片 - Google Patents

一种抗旁路攻击算法及其芯片 Download PDF

Info

Publication number
CN101196964A
CN101196964A CN 200610119237 CN200610119237A CN101196964A CN 101196964 A CN101196964 A CN 101196964A CN 200610119237 CN200610119237 CN 200610119237 CN 200610119237 A CN200610119237 A CN 200610119237A CN 101196964 A CN101196964 A CN 101196964A
Authority
CN
China
Prior art keywords
algorithm
module
exp
mould
montgomery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610119237
Other languages
English (en)
Other versions
CN101196964B (zh
Inventor
周玉洁
陈志敏
秦晗
谭咏伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Aisino Chip Electronic Technology Co., Ltd.
Original Assignee
SHANGHAI ANCHUANG INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI ANCHUANG INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI ANCHUANG INFORMATION TECHNOLOGY Co Ltd
Priority to CN 200610119237 priority Critical patent/CN101196964B/zh
Publication of CN101196964A publication Critical patent/CN101196964A/zh
Application granted granted Critical
Publication of CN101196964B publication Critical patent/CN101196964B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开一种抗旁路攻击RSA算法的芯片及其算法,涉及信息安全技术领域;该芯片包括:用于完成芯片内外数据的交互的接口模块,用于产生随机数的随机数模块(RNG),用于存储RSA需要计算的大数、中间和最终结果的存储器模块(MEM),用于完成采用MIST算法的模幂运算的模幂模块(EXP),用于完成普通的模约减算法,计算余数和商模约减模块(RED),用于控制整个RSA设计的流程,使得模幂运算和模约减运算并行运行,并通过调用RED实现随机化的模约减运算的控制模块(CTRL)。本发明通过引入随机数,提出了一种更为安全的模约减算法RandRed,使本发明具有无统计特性,有较大攻击难度的特点。

Description

一种抗旁路攻击算法及其芯片
技术领域
本发明涉及信息安全技术,特别是涉及一种抗旁路攻击RSA算法的芯片及其算法的技术。
背景技术
加密作为信息安全的一个重要分支,一直受到广泛的关注。一方面,人们不断地研究加密算法自身的安全性。另一方面,关于加密算法的实现也是大家讨论的热门话题之一。一个较为普遍的认识是:芯片是实现加密逻辑的一个很好的途径。加密算法在芯片内部实现可以避免很多用软件来实现而带来的弊端。软件实现中存在的密钥容易泄漏,内存可能被扫描,甚至算法受到窜改的问题在芯片实现中都可以得到很好的解决。
然而,随着集成电路分析技术的发展,近些年出现了很多针对加密芯片的攻击方法。其中较为普遍、容易实现的是旁路攻击(Side Channel Attack)。旁路攻击是基于芯片物理特征的分析技术,包括故障分析技术、时间分析技术、简单功耗分析技术、差分功耗分析技术、电磁辐射分析技术等。利用这些技术,攻击者可以在获得密码运算载体的情况下,不破坏芯片正常运算,而快速获得密钥,从而破译整个密码系统。
普通RSA算法芯片在运算时间,运算功耗上都有漏洞。例如RSA的核心运算模幂都是通过将幂指数(密钥)表示成二进制加法链,再将链上的每一位对应的模乘串连起来实现的:当加法链上的位是1时,需要完成一次取模的乘法和一次取模的平方;当某位是0时,则只需要做一次取模平方。前后两者所消耗的时间基本成两倍关系。攻击者可以根据运算时间的区别很容易地得到密钥。在功耗攻击方面,研究发现,平方运算和乘法运算的功耗波形有着可以辨别的区别,利用与前面相同的原理,攻击者也可以获取RSA加密芯片内部的密钥。另外,除了模幂运算,RSA中的模约减运算也同时存在风险。由于模约减运算中大量使用一个操作数固定的减法运算,而不同操作数的减法运算的统计功耗特性也是可以辨别出来的,所以普通模约减算法也存在信息泄漏。
为了使得设计出的芯片具有抗旁路攻击的特性,人们提出了引入随机数来随机化内部处理流程的设想。其中一种有效的RSA抗攻击方法被称作MIST。其每次模幂运算都引入一组随机数对加法链进行随机处理从而得到一组随机的模乘运算。模乘运算的随机性掩盖了大部分幂指数的信息,保证了算法实现的安全性。然而,该方法只能保证模幂运算的安全,却忽略了模约减运算的安全性。由于MIST中随机加法链的生成要用到大量模约减运算,且固定在减法一端的操作数只从2,3,5当中选取,攻击者完全可以利用前面所述的模约减漏洞得到整个随机数组,进而破解MIST算法。
发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种无统计特性,有较大攻击难度的抗旁路攻击RSA算法及其芯片。
为了解决上述技术问题,本发明所提供的一种抗旁路攻击RSA算法的芯片,其特征在于,包括:
一接口模块(IFC),用于完成芯片内外数据的交互,设芯片的输入、输出端;
一随机数模块(RNG),用于产生随机数;
一存储器模块(MEM),分别连接接口模块和随机数模块,用于存储RSA需要计算的大数、中间和最终结果;
一模幂模块(EXP),连接存储器模块,用于完成采用MIST算法的模幂运算;
一模约减模块(RED),分别连接模约减模块和存储器模块,用于完成普通的模约减算法,计算余数和商;
一控制模块(CTRL),分别连接模幂模块、模约减模块、存储器模块和接口模块,用于控制整个RSA设计的流程,使得模幂运算和模约减运算并行运行,并通过调用RED实现随机化的模约减运算。
进一步地,所述模幂模块(EXP)用于完成:Montgomery预计算(CMD_EXP_RR)、Montgomery计算(CMD_EXP_MONT)、模幂(CMD_EXP_EXP)、数据搬移(CMD_EXP_MOV)、乘加(CMD_EXP_MUL_ADD)以及模幂结果处理(CMD_EXP_FINISH)。
进一步地,所述模幂模块(EXP)由两个子模块组成:
EXP控制子模块(ExpCtrl),负责解析Montgomery预计算、Montgomery计算、模幂、数据搬移、乘加以及模幂结果处理的六个EXP任务命令;
Montgomery模乘运算子模块(MMM),用于完成:MUL、SQU、MOV、CMP、INI以及MA各项基本操作。
进一步地,所述Montgomery模乘运算子模块MMM包括MMMCtrl单元和PE处理单元,其中MMMCtrl单元控制对数据的读取和写入;PE处理单元用于数据处理。
进一步地,所述PE处理单元中使用了一个乘法器α×α,一个加法器α+α,以及一个4-2压缩器。需要注意的是MMM对平方运算作出了改进,使得其所需计算周期是同等长度下乘法的四分之三。该改进原理如下:
令X=(x1-1,…,x0),计算X×X可以用以下算法:
The Improved Square Algorithm
 Square(X){
  result=0;
  for(i=0;i<l;i++){
   for(j=0;j<i;j++)
    result=2*xi*xj*2α*(i+j)+result;
   result=xi*xj*2α*(i+j)+result;
  }
  Return(result);
}
算法第5、6行是区别与普通乘法的地方,j没有像i那样从0增加到l-1。
为了解决上述技术问题,本发明所提供的一种抗旁路攻击RSA算法芯片的抗旁路攻击RSA算法表示成ABmod N,其特征在于,该运算过程在控制模块CTRL中的步骤:
1)根据大数N得到H,其用于计算A的Montgomery表示(MontA=(H*A)mod N);
2)计算A的Montgomery表示,并且计算MIST(模糊)算法和模约减算法RandRed直到RedB等于0;
3)调整第二步得到的结果,并把其从Montgomery表示转化为普通表示。
进一步地,所述步骤2)中的MIST算法:
The Mist Exponentia tion Algorithm[6]
 MistExp(B,A){
  RemB=B;
  StartA=A;
  ResultA=1;
 Wh ile(RedB>0){
  Choose a random″divisor″d;
  r=RedB mod d;
  if(r≠0)
    ResultA=StartAr×ResultA;
  StartA=StartAd
  RemB=RedB/d;
 }
 Return(ResultA);
}
该算法的第8行在本发明中已经被替换成RandRed,并且除了第一个RandRed之外,其他的RandRed都可以和模幂运算并行运算。作为基本运算的模乘运算是通过Montgomery算法来实现的。
进一步地,所述步骤2)中的模约减算法RandRed,其特征在于,如要计算E modd,则算法描述如下:
RandRed(E,d){
 选取一个随机数rand;
 d′=d×rand;
 (Q,r′)=Red(E,d′);
 (Q′,r)=Red(r′,d);
 Q=Q×rand+Q′;
 Return(Q,r);
}
d是在MIST算法中从2,3,5中选取的操作数,而Red是普通的模约减函数。
本发明提供的抗旁路攻击RSA算法的芯片及其算法的有益效果:由于改进后的算法调用了两次普通模约减算法。第一个模约减算法需要重复的减法次数较多,甚至可以接近密钥的长度;第二个模约减算法调用的减法次数取决于选取的随机数的大小,一般较少。如果随机数从3,5,6,7,9,10,11,12,13,14中选取,对于第一个模约减调用,固定的操作数从3个扩大到30个,大大增加了攻击者的攻击难度。对于第二次模约减,减法次数不会超过10次,这意味着无法得到固定操作数的统计特性,从而无法通过观察功耗波形获取内部运算的数据。保证了芯片工作的安全性。
附图说明
图1是本发明实施例抗旁路攻击RSA算法芯片的结构示意框图;
图2是本发明实施例芯片的控制模块(CTRL)的状态转换图;
图3是本发明实施例芯片的模幂模块(EXP)中Montgomery模乘运算子模块(MMM)的PE处理单元的结构示意图;
图4是本发明实施例芯片的随机数模块(RNG)的结构示意图。
具体实施方式
以下结合附图说明对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构、方法及其相似变化,均应列入本发明的保护范围。
本发明通过引入随机数,提出了一种更为安全的模约减算法RandRed。同时结合MIST算法,给出一个抗旁路攻击的RSA芯片设计方法。
在引入随机数之后,固定在减法运算一端的操作数选择空间大大增加,使得攻击者需要在大量数据中确定用于计算的操作数。如要计算E mod d,则算法描述如下:
RandRed(E,d){
 选取一个随机数rand;
 d′=d×rand;
 (Q,r′)=Red(E,d′);
 (Q′,r)=Red(r′,d);
 Q=Q×rand+Q′;
 Return(Q,r);
}
d是在MIST算法中从2,3,5中选取的操作数,而Red是普通的模约减函数。改进后的算法调用了两次普通模约减算法。第一个模约减算法需要重复的减法次数较多,甚至可以接近密钥的长度;第二个模约减算法调用的减法次数取决于选取的随机数的大小,一般较少。如果随机数从3,5,6,7,9,10,11,12,13,14中选取,对于第一个模约减调用,固定的操作数从3个扩大到30个,大大增加了攻击者的攻击难度。对于第二次模约减,减法次数不会超过10次,这意味着无法得到固定操作数的统计特性。
本发明通过引入MIST算法和随机化的模约减算法来实现RSA运算。芯片整体框图如图1所示。芯片包括六个功能模块:
一接口模块(IFC),用于完成芯片内外数据的交互,设芯片的输入、输出端;
一随机数模块(RNG),用于产生随机数;
一存储器模块(MEM),分别连接接口模块和随机数模块,用于存储RSA需要计算的大数、中间和最终结果;
一模幂模块(EXP),连接存储器模块,用于完成采用MIST算法的模幂运算;
一模约减模块(RED),分别连接模约减模块和存储器模块,用于完成普通的模约减算法,计算余数和商;
一控制模块(CTRL),分别连接模幂模块、模约减模块、存储器模块和接口模块,用于控制整个RSA设计的流程,使得模幂运算和模约减运算并行运行,并通过调用RED实现随机化的模约减运算。
本发明所涉及到的算法除了以上给出的随机化的模约减算法外,还有MIST算法和Montgomery模乘算法。以下给出MIST算法:
The Mist Exponentia tion Algorithm[6]
 MistExp(B,A){
  RemB=B;
  StartA=A;
  ResultA=1;
 Wh ile(RedB>0){
  Choose a random″divisor″d;
  r=RedB mod d;
  if(r≠0)
    ResultA=StartAr×ResultA;
  StartA=StartAd
  RemB=RedB/d;
 }
 Return(ResultA);
}
该算法的第8行在本发明中已经被替换成RandRed,并且除了第一个RandRed之外,其他的RandRed都可以和模幂运算并行运算。作为基本运算的模乘运算是通过Montgomery算法来实现的。
模块分述
控制模块(CTRL),
将整个RSA运算表示成ABmod N,该运算过程被CTRL分成三个步骤:
1)根据大数N得到H,其用于计算A的Montgomery表示(MontA=(H*A)mod N);
2)计算A的Montgomery表示,并且计算MIST和RandRed直到RedB等于0;
3)调整第二步得到的结果,并把其从Montgomery表示转化为普通表示。
CTRL中的状态转换图如图2所示。状态图分两条路径。其一是预计算路径。当状态机接到预计算命令时,跳转到RedRR状态,计算Montgomery预计算所需要的数据,之后再跳转到ExpRR进行Montgomery预计算。结束后跳回空闲状态。另一条路径是模幂计算路径。如果状态机接到模幂命令,则从空闲状态Idle跳转到计算Montgomery数状态(ExpMont),接着计算以上所涉及的RandRed函数第三行运算(RedRand0)。之后进入RandRed函数第四行运算(RedRand1)和第五行运算(ExpMulAdd),至此便计算出了随机加法链的第一个数,此后的运算可以由模幂模块(EXP)和模约减模块(RED)并行计算。EXP一直进行模幂运算,RED进行RandRed函数第三、四行运算,直到幂指数B等于0为止。所以可以分成ERExpRand0和ERExpRand1两个状态。B等于0后,进行最后一次模幂运算(ExpExp)。如果最终结果无需调整(Valid=1),则直接返回空闲状态,否则进入RED普通模约减状态(RedDiv)进行调整。最后调用EXP模块将结果搬运到结果输出SRAM中(ExpMov)并返回空闲状态(Idle)。除了控制芯片状态的转换,CTRL还负责分配存储单元给EXP和RED模块。对存储器的访问分三种方式,其一:只有EXP才能访问MEM;其二:只有RED才能访问MEM;其三:EXP和RED都能对存储器进行访问。根据状态的不同,访问状态在这三种状态间进行跳转。
存储模块(MEM),
RSA算法的一个特点是运算数据较大(称之为大数)。建议使用SRAM来存储这些数据。拿密钥长度最长可达2048,处理位宽为32为例,MEM中需要使用5个70×32SRAM(A,B,N,TY,TR)和1个36×64SRAM(T)。SRAM A,B,N分别用于写入RSA操作数A,B和N。TY,TR被用来模幂运算的中间结果,其中TR还用于存储最终结果,SRAM T存储的是Montgomery模乘运算的中间结果。这些SRAM根据EXP单元给出的选择信号,将被映射到各个EXP的操作数上。具体的映射关系将在3.2.3节给出。
模幂模块(EXP),
EXP完成的任务有:Montgomery预计算(CMD_EXP_RR)、Montgomery计算(CMD_EXP_MONT)、模幂(CMD_EXP_EXP)、数据搬移(CMD_EXP_MOV)、乘加(CMD_EXP_MUL_ADD)以及模幂结果处理(CMD_EXP_FINISH)。
CMD_EXP_RR:H的计算分两步进行:Mont2=2×2rmod N以及H=(Mont2)rmod N,其中
Figure A20061011923700141
(α是设计中乘法的位宽)。CMD_EXP_RR用于完成第二步H=(Mont2)rmod N运算。而第一步Mont2=2×2rmod N由RED单元得到。MEM单元计算出r后,将N的长度和r送给RED单元,得到结果后也将r按由低到高的顺序传给EXP单元,EXP据此按照普通的模幂运算计算出H。
CMD_EXP_MONT:该任务完成将输入的RSA操作数A转化成Montgomery表示MontA。即MontA=Mont(A,H,N),其中Mont表示Montgomery模乘运算。
CMD_EXP_EXP:完成加法链上一个元素(ExpRand,Re)所对应的运算。各元素对应的运算如表1所示。
  元素(SC)   操作
  (2,0)   (A,A,A)
  (2,1)   (A,A,TY)(A,TR,TR)
  (3,0)   (A,A,TY)(A,TR,A)
  (3,1)   (A,A,TY)(A,TR,TR)(A,TY,A)
  (3,2)   (A,A,TY)(TY,TR,TR)(A,TY,A)
  (5,0)   (A,A,TY)(A,TY,A)(A,TY,A)
  (5,1)   (A,A,TY)(A,TR,TR)(A,TY,A)(A,TY,A)
  (5,2)   (A,A,TY)(TY,TR,TR)(A,TY,A)(A,TY,A)
  (5,3)   (A,A,TY)(A,TY,A)(A,TR,TR)(A,TY,A)
  (5,4)   (A,A,TY)(TY,TY,TY)(TY,TR,TR)(A,TY,A)
操作栏内括号表示一次Montgomery模乘运算。例如(A,TY,A)表示Mont(A,TY,N),最后将结果存储在A中。在完成(2,1)对应的运算后,需要将A和TY的地址输入输出等控制线调换。CMD_EXP_EXP总是和RED并行执行的,每当CMD_EXP_EXP运算时,RED同时计算下一次CMD_EXP_EXP所需要的SC。
CMD_EXP_FINISH:当RedB等于0,RED可以停止工作,而EXP需要将最后一组SC计算完,这个工作由CMD_EXP_FINISH完成,其计算过程和CMD_EXP_EXP完全一样,参照表1所示。
CMD_EXP_MOV:所完成的工作较为简单,就是把一个存储器中的数据转移到另一个存储器。主要用在当CMD_EXP_FINISH计算出的结果大于N时,需要由RED来完成一次模约减,而该结果无法由RED本身来存储在TR中,所以需要运用CMD_EXP_MOV来完成。
CMD_EXP_MUL_ADD:用于完成RandRed中最后一条语句,由于Montgomery模乘运算中由m×N+T的运算,所以两者可以复用硬件资源(一个乘法器和一个加法器)。
EXP由两个子模块组成:EXP控制子模块(ExpCtrl)以及Montgomery模乘运算子模块(MMM)。ExpCtrl负责解析以上列出的六个EXP任务命令,并根据表1将他们分解成更为基本的模乘和转移操作。
MMM完成各项基本操作。MMM所需要完成的任务有:MUL、SQU、MOV、CMP、INI以及MA。
MUL:采用Montgomery算法的取模乘法;在表1中,所有前两个操作数不同的操作都属于这个范围。
SQU:考虑到设计已经采用了MIST算法,即使攻击者能分辨出乘法和平方的区别也无法得到密钥。所以可以针对平方运算中的冗余进行优化,而不需要考虑改进的安全性。表1中所有前两个操作数相同的操作都属于这个范围。
MOV:完成将一个存储器中的数据转移到另一个存储器。
CMP:在完成Montgomery模乘之后需要判断结果是否大于N,CMP就是完成这个操作。
INI:对TR存储器进行初始化:写入1。(MIST算法描述的第5行)
MA:完成CMD_EXP_MUL_ADD的任务。
MMM包括MMMCtrl和PE处理单元,其中MMMCtrl控制对数据的读取和写入;PE负责数据处理。PE中使用了一个乘法器α×α,一个加法器α+α,以及一个4-2压缩器。需要注意的是MMM对平方运算作出了改进,使得其所需计算周期是同等长度下乘法的四分之三。该改进原理如下:
令X=(xl-1,…,x0),计算X×X可以用以下算法:
The Improved Square Algorithm
 Square(X){
  result=0;
  for(i=0;i<l;i++){
   for(j=0;j<i;j++)
    result=2*xi*xj*2α*(i+j)+result;
  result=xi*xj*2α*(i+j)+result;
 }
 Return(result);
}
算法第5、6行是区别与普通乘法的地方,j没有像i那样从0增加到l-1。而是在第6行采用乘以2来改进,由于只需要将乘法器输出结果向高位映射一位,改进代价较小。
PE的另一个特点是对中间结果的读取、写入处理。在PE工作过程中,一个周期内即需要读取α位的上一次结果,同时又要写入α位的本次运算结果。考虑到双口RAM面积较单口大,将中间结果存储器的位宽设为2α,这样每次读和写都可以完成2α位的数据传输,将读写操作交替进行便可以满足计算要求,同时使用的T RAM是单口的。
PE单元结构图如图3所示。PE主要由一个乘法器、一个4-2压缩器和一个加法器组成。根据需要给乘法器选择输入的数据,乘法器得到的结果存在寄存器PRODUCT中,长度是2α,其中高α位输入到寄存器PRODUCT_H中,在下一个时钟送到4-2压缩器,低α位直接输入到4-2压缩器,进入4-2压缩器的数还有加法器结果的进位以及中间计算结果。压缩器压缩的结果直接给加法器进行计算并存储在寄存器SUM0中。SUM1和SUM2用于缓存结果数据,配合SRAM存储单元的写入。
模约减模块(RED),
RED只完成普通的模约减运算,前文中所提到的随机化模约减算法是通过CTRL根据算法和随机数调用RED完成的。RED单元具体完成的任务有:计算B mod d’(CMD_RED_B_DACC)、计算r’mod d(CMD_RED_RACC_D)、模约减(CMD_RED_DIV)、为Montgomery预计算进行的特殊模约减(CMD_RED_RR)。
CMD_RED_B_DACC:完成随机化模约减算法中调用的第一个模约减运算,将余数写入r’,商写回B。
CMD_RED_RACC_D:完成随机化模约减算法中调用的第二个模约减运算,将余数写入r,商写入Q’。
CMD_RED_DIV:用于调整Montgomery模乘结果,只计算余数,余数写入A存储器。
CMD_RED_RR:完成Mont2的计算,为计算H作准备,只计算余数,余数写入A存储器。
本模块采用算法如下:
The Classical Reduction Algorithm
  Red(E,d){
   i=Length(E) -Length(d);
   c=0;Q=0;
   r=E>>(i+1);
  w hile(i≥0){
   if(c=1)
    c:r=2×r+E[i]+d;
   else
    c:r=2×r+E[i]-d;
   Q[i]=NOT c;
   i=i-1;
  }
  if(c=1)
   r=r+d;
  Return(Q,r);
 }
随机数模块(RNG),
RNG利用噪声产生真随机数,内设一个计数器,每64个时钟读取一位随机数,并将该位移入一个移位寄存器。CTRL处于EXP_MONT和EXP_MUL_ADD的开始周期读取一次这个6位移位寄存器,其中三位用作MIST算法中的d,另外三位用作RandRed的rand。
RNG结构如图4所示。随机数由两部分组成一个是利用随机噪声源组成的随机种子产生器(RBG)。另一部分是一个伪随机网络,由线性移位寄存器(LFSR)和固定位的异或组成。由固定位异或得到的结果再和RBG产生的种子再异或一次,作为LFSR的输入。最终的输出由一个计数器(Counter)控制,在给定的时间间隔后输出LFSR的低位部分。

Claims (8)

1.一种抗旁路攻击RSA算法的芯片,其特征在于,包括:
一接口模块(IFC),用于完成芯片内外数据的交互,设芯片的输入、输出端;
一随机数模块(RNG),用于产生随机数;
一存储器模块(MEM),分别连接接口模块和随机数模块,用于存储RSA需要计算的大数、中间和最终结果;
一模幂模块(EXP),连接存储器模块,用于完成采用MIST算法的模幂运算;
一模约减模块(RED),分别连接模约减模块和存储器模块,用于完成普通的模约减算法,计算余数和商;
一控制模块(CTRL),分别连接模幂模块、模约减模块、存储器模块和接口模块,用于控制整个RSA设计的流程,使得模幂运算和模约减运算并行运行,并通过调用RED实现随机化的模约减运算。
2.根据权利要求1所述的抗旁路攻击RSA算法的芯片,其特征在于,所述模幂模块(EXP)用于完成:Montgomery预计算(CMD_EXP_RR)、Montgomery计算(CMD_EXP_MONT)、模幂(CMD_EXP_EXP)、数据搬移(CMD_EXP_MOV)、乘加(CMD_EXP_MUL_ADD)以及模幂结果处理(CMD_EXP_FINISH)。
3.根据权利要求1所述的抗旁路攻击RSA算法的芯片,其特征在于,所述模幂模块(EXP)由两个子模块组成:
EXP控制子模块(ExpCtrl),负责解析Montgomery预计算、Montgomery计算、模幂、数据搬移、乘加以及模幂结果处理的六个EXP任务命令;
Montgomery模乘运算子模块(MMM),用于完成:MUL、SQU、MOV、CMP、INI以及MA各项基本操作。
4.根据权利要求3所述的抗旁路攻击RSA算法的芯片,其特征在于,所述Montgomery模乘运算子模块MMM包括MMMCtrl单元和PE处理单元,其中MMMCtrl单元控制对数据的读取和写入;PE处理单元用于数据处理。
5.根据权利要求4所述的抗旁路攻击RSA算法的芯片,其特征在于,所述PE处理单元中使用了一个乘法器α×α,一个加法器α+α,以及一个4-2压缩器;该改进原理如下:
令X=(x1-1,…,x0),计算X×X可以用以下算法:
  The Improved Square Algorithm
   Square(X) {
    result=0;
    for(i=0;i<1;i++){
     for(j=0;j<i;j++)
      result=2*xi*xj*2α*(i+j)+result;
     result=xi*xj*2α*(i+j)+result;
    }
    Return(result);
  }
算法第5、6行的j没有像i那样从0增加到1-1。
6.一种权利要求1所述的抗旁路攻击RSA算法的芯片的抗旁路攻击RSA算法,表示成AB mod N,其特征在于,该运算过程在控制模块CTRL中的步骤:
1)根据大数N得到H,其用于计算A的Montgomery表示(MontA=(H*A)mod N);
2)计算A的Montgomery表示,并且计算MIST(模糊)算法和模约减算法RandRed直到RedB等于0;
3)调整第二步得到的结果,并把其从Montgomery表示转化为普通表示。
7.根据权利要求6所述的抗旁路攻击RSA算法,其特征在于,所述步骤2)中的MIST算法:
  The Mist Exponentia tion Algorithm[6]
   MistExp(B,A){
     RemB=B;
     StartA=A;
     ResultA=1;
    Wh ile(RedB>0){
     Choose a random″divisor″d;
     r=RedB mod d;
     if(r≠0)
      ResultA=StartAr×ResultA;
    StartA=StartAd
    RemB=RedB/d;
   }
   Return(ResultA);
  }
该算法的第8行已经被替换成RandRed,并且除了第一个RandRed之外,其他的RandRed都可以和模幂运算并行运算。
8.根据权利要求6所述的抗旁路攻击RSA算法,其特征在于,所述步骤2)中的模约减算法RandRed,其特征在于,如要计算E mod d,则算法描述如下:
  RandRed(E,d){
    选取一个随机数     rand;
    d′=d×rand;
    (Q,r′)=Red(E,d′);
    (Q′,r)=Red(r′,d);
    Q=Q×rand+Q′;
    Return(Q,r);
  }
d是在MIST算法中从2,3,5中选取的操作数,而Red是普通的模约减函数。
CN 200610119237 2006-12-07 2006-12-07 一种抗旁路攻击算法的芯片 Expired - Fee Related CN101196964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610119237 CN101196964B (zh) 2006-12-07 2006-12-07 一种抗旁路攻击算法的芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610119237 CN101196964B (zh) 2006-12-07 2006-12-07 一种抗旁路攻击算法的芯片

Publications (2)

Publication Number Publication Date
CN101196964A true CN101196964A (zh) 2008-06-11
CN101196964B CN101196964B (zh) 2010-08-11

Family

ID=39547363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610119237 Expired - Fee Related CN101196964B (zh) 2006-12-07 2006-12-07 一种抗旁路攻击算法的芯片

Country Status (1)

Country Link
CN (1) CN101196964B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102393890A (zh) * 2011-10-09 2012-03-28 广州大学 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
CN102468956A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 适用于rsa模幂计算的方法
CN104573544A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
CN104579650A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 模幂运算的方法和装置
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
CN107040370A (zh) * 2015-11-04 2017-08-11 恩智浦有限公司 使用随机加法链的模幂运算
CN108833120A (zh) * 2018-08-28 2018-11-16 成都信息工程大学 一种crt-rsa选择明文联合攻击新方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1271506C (zh) * 2001-03-19 2006-08-23 深圳市中兴集成电路设计有限责任公司 Rsa加密算法的实现电路及方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468956A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 适用于rsa模幂计算的方法
CN102393890A (zh) * 2011-10-09 2012-03-28 广州大学 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
CN102393890B (zh) * 2011-10-09 2014-07-16 广州大学 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
CN104573544A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
CN104579650A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 模幂运算的方法和装置
CN104573544B (zh) * 2013-10-28 2017-09-12 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
CN104579650B (zh) * 2013-10-28 2018-11-06 上海复旦微电子集团股份有限公司 模幂运算的方法和装置
CN107040370A (zh) * 2015-11-04 2017-08-11 恩智浦有限公司 使用随机加法链的模幂运算
CN107040370B (zh) * 2015-11-04 2021-07-27 恩智浦有限公司 一种用于产生实施模幂运算的代码的装置
CN106452789A (zh) * 2016-11-02 2017-02-22 北京宏思电子技术有限责任公司 一种多方位防侧信道攻击的签名方法
CN108833120A (zh) * 2018-08-28 2018-11-16 成都信息工程大学 一种crt-rsa选择明文联合攻击新方法及系统
CN108833120B (zh) * 2018-08-28 2021-07-30 成都信息工程大学 一种crt-rsa选择明文联合攻击方法及系统

Also Published As

Publication number Publication date
CN101196964B (zh) 2010-08-11

Similar Documents

Publication Publication Date Title
CN101196964B (zh) 一种抗旁路攻击算法的芯片
US8369520B2 (en) Cryptographic device employing parallel processing
CN100470464C (zh) 基于改进的蒙哥马利算法的模乘器
US6085210A (en) High-speed modular exponentiator and multiplier
CN100435090C (zh) 可扩展高基蒙哥马利模乘算法及其电路结构
CN101170406B (zh) 双核公钥密码算法运算协处理器的一种实现方法
CN101847137B (zh) 一种实现基2fft计算的fft处理器
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
Kudithi An efficient hardware implementation of the elliptic curve cryptographic processor over prime field
CN101021777B (zh) 基于除数(2n-1)的有效求模操作运算
KR101925868B1 (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
Zeghid et al. Speed/area-efficient ECC processor implementation over GF (2 m) on FPGA via novel algorithm-architecture co-design
JPH0580985A (ja) Mを法として長い整数を乗算するための算術ユニツト及びそのような乗算デバイスを具えるr.s.a.変換器
Li et al. Research in fast modular exponentiation algorithm based on FPGA
CN1717653B (zh) 带有查询表的乘法器
CN101923459A (zh) 一种用于数字信号处理的可重构乘加算数运算单元
CN101986261A (zh) 基为16的高速Montgomery模乘法器VLSI
Cardarilli et al. Implementation of the AES algorithm using a Reconfigurable Functional Unit
CN109284085A (zh) 一种基于fpga的高速模乘和模幂运算方法及模型
CN1696894B (zh) 大数模乘计算乘法器
Ambrose et al. DARNS: A randomized multi-modulo RNS architecture for double-and-add in ECC to prevent power analysis side channel attacks
Zimmermann et al. High-performance integer factoring with reconfigurable devices
Wang et al. TCPM: A reconfigurable and efficient Toom-Cook-based polynomial multiplier over rings using a novel compressed postprocessing algorithm
CN100477538C (zh) 一种Turbo码交织器
Hu et al. A secure modular division algorithm embedding with error detection and low-area ASIC implementation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SHANGHAI AIXINNUO HANGXIN ELECTRONIC SCIENCE CO.,

Free format text: FORMER OWNER: SHANGHAI ANCHUANG INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20090515

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090515

Address after: Floor 6, building 555, No. 8, Dongchuan Road, Shanghai, Minhang District

Applicant after: Shanghai Aisino Chip Electronic Technology Co., Ltd.

Address before: In Shanghai Road, Pudong New Area Zhangjiang hi tech park, 299 No. 6 Lane 202

Applicant before: Shanghai Anchuang Information Technology Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100811

Termination date: 20181207