一种抗旁路攻击算法的芯片制造技术

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

【技术实现步骤摘要】

本专利技术涉及信息安全技术,特别是涉及一种抗旁路攻击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、 M0V、 CMP、 INI以 及MA各项基本操作。进一步地,所述Montgomery模乘运算子模块MMM包括MMMCtrl单元和PE处理 单元,其中MMMCtrl单元控制对数据的读取和写入;PE处理单元用于数据处理。进一步地,所述PE处理单元中使用了一个乘法器aXcc, —个加法器a+a,以 及一个4-2压縮器。需要注意的是MMM对平方运算作出了改进,使得其所需计算周 期是同等长度下乘法的四分之三。该改进原理如下令X二(Xh,…,x。),计算XXX可以用以下算法<table>complex table see original document page 8</column></row><table>算法第5、 6行是区别与普通乘法的地方,j没有像i那样从O增加到l-l。 为了解决上述技术问题,本专利技术所提供的一种抗旁路攻击RSA算法芯片的抗旁路 攻击RSA算法表示成乂s mod W ,其特征在于,该运算过程在控制模块CTRL中的步 骤1) 根据大数N得到H,其用于计算A的Montgomery表示 <formula>complex formula see original document page 8</formula>;2) 计算A的Montgomery表示,并且计算MIST(模糊)算法和模约减算法RandRed 直到RedB等于O;3)调整第二步得到的结果,并把其从Montgomery表示转化为普通表示。 进一步地,所述步骤2)中的MIST算法The Mist Exponentia tion Algorithm 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 = StartA r x ResultA; StartA = StartA d; RemB = RedB/d;Return (ResultA);该算法的第8行在本专利技术中已经被替换成RandRed,并且除了第一个RaridRed 之外,其他的RandRed都可以和模幂运算并行运算。作为基本运算的模乘运算是通 过Montgomery算法来实现的。进一步地,所述步骤2)中的模约减算法RandRed,其特征在于,如要计算Emod d,则算法描述如下RandRed(E, d) { 选取一个随机数 rand; d' = d x rand; (Q, r') = Red(E, d'); (Q' , r) = Red(r' , d); Q = Q x rand + Q'; Return(Q, r);d是在MIST算法中从2, 3, 5中选取的操作数,而Red是普通的模约减函数。 本专利技术提供的抗旁路攻击RSA算法的芯片本文档来自技高网
...

【技术保护点】
一种抗旁路攻击RSA算法的芯片,其特征在于,包括:一接口模块(IFC),用于完成芯片内外数据的交互,设芯片的输入、输出端;一随机数模块(RNG),用于产生随机数;一存储器模块(MEM),分别连接接口模块和随机数模块,用于存储RSA需要计算的大数、中间和最终结果;一模幂模块(EXP),连接存储器模块,用于完成采用MIST算法的模幂运算;一模约减模块(RED),分别连接模约减模块和存储器模块,用于完成普通的模约减算法,计算余数和商;一控制模块(CTRL),分别连接模幂模块、模约减模块、存储器模块和接口模块,用于控制整个RSA设计的流程,使得模幂运算和模约减运算并行运行,并通过调用RED实现随机化的模约减运算。

【技术特征摘要】

【专利技术属性】
技术研发人员:周玉洁陈志敏秦晗谭咏伟
申请(专利权)人:上海爱信诺航芯电子科技有限公司
类型:发明
国别省市:31[中国|上海]

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

1