[发明专利]一种抵抗能量分析和错误攻击的安全模幂计算方法无效
申请号: | 201310199494.6 | 申请日: | 2013-05-27 |
公开(公告)号: | CN103246494A | 公开(公告)日: | 2013-08-14 |
发明(设计)人: | 刘红明;周玉洁 | 申请(专利权)人: | 上海爱信诺航芯电子科技有限公司 |
主分类号: | G06F7/72 | 分类号: | G06F7/72 |
代理公司: | 上海信好专利代理事务所(普通合伙) 31249 | 代理人: | 徐雯琼 |
地址: | 200241 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抵抗 能量 分析 错误 攻击 安全 计算方法 | ||
技术领域
本发明涉及公钥密码体制的安全执行领域,具体涉及一种抵抗能量分析和错误攻击的安全模幂计算方法。
背景技术
随着信息技术的发展与应用,网上交易如网上银行、电子政务和电子商务也变得越来越普遍,随之带来的安全问题也越来越严重,这就需要对在网络上传输的信息进行加密。传统的加密算法采用的是对称密码体制,通信双方共享同一密钥,它的优点是加密易于用硬件实现,加解密速度都很快,但是存在安全隐患,密钥在交换的时候容易被人窃取。而现代公钥密码体制是非对称密码体制,仅要求密钥的交换是保真的,而不要求其是保密的。每个实体选择一个密钥对(e,d),其中e是公钥,而d是私钥,私钥是需要保密。由公钥并不能计算出私钥。目前,公钥密码算法主要有两种,一种是RSA,另外一种就是椭圆曲线密码ECC(Elliptic Curve Cryptography)。上述两种公钥密码算法都需要使用模幂计算(ME mod N)。在某些模幂计算中,比如涉及到私钥的模幂运算时,幂指数E是需要保护,不能被泄露的。
为了提高速度,现在模幂算法基本上都是用集成电路芯片实现。而芯片都是由晶体管门电路组成,电路在执行不同的操作时,所需要时间和能量不同,这个能够通过示波器被观察到,进而可以通过这些泄露的信息来攻击模幂运算,从而获得私钥。目前比较常见的攻击方法包括时间分析攻击法、电磁辐射法、能量分析攻击法和错误注入攻击法,其中能量分析攻击和错误注入攻击是最为有效的攻击方法。
自从1996年Kocher等人提出简单能量分析(SPA)和差分能量分析(DPA)以来,人们就用这两种方法成功地对一些模幂算法进行攻击。并且随着能量分析技术的提高,一些现有的模幂算法已不能抵抗能量分析。在1997年,Boneh等人又提出一种新的攻击方法:错误注入攻击。通过注入一个错误,得到一个错误结果,然后利用错误结果和正确结果的内在联系从而分解模数N,进而获取私钥。这个攻击方法主要是针对于用中国剩余定理CRT方式来实现的模幂算法。随着技术的发展,错误注入攻击范围也越来越广,从随机注入错误发展到对密钥本身注入错误以及对模数N注入错误。通过注入错误得到错误数据,然后再经过一些运算,从而最终获取私钥。而现有很多的模幂运算往往只考虑抵抗能量分析,而忽略了抵抗错误注入攻击,或者相反,因此安全性不高。
发明内容
基于上述问题,本发明提供了一种既能抵抗能量分析,又能抵抗错误攻击的安全模幂算法,并且具有较快的计算速度,因此特别适合在智能卡,USBKey等嵌入式设备上应用。
为了实现上述目的,本发明的技术方案是提供一种抵抗能量分析和错误攻击的安全模幂计算方法,该方法包含以下步骤:
步骤1、读取底数M,指数E,模数N;
步骤2、设中间变量TmpM = M,TmpE =E,TmpR = 1;
步骤3、设置5块64X32位大小的SRAM,分别命名为A,B,N,R,T SRAM;向N SRAM写入模数N并启动预计算,得到参数Nacc和R2 mod N的结果,接下来向A SRAM写入中间变量TmpM和向B SRAM写入中间变量TmpR,并启动将中间变量TmpM和TmpR转化为Montgomery数的命令。
步骤4、随机选择一个除数D,并更新中间变量TmpE = TmpE/D,以及计算中间变量Rem = TmpE mod D;进一步包含:
步骤4.1、设中间变量D=0;
步骤4.2、产生一个32位的真随机数并赋值给中间变量temp,如果temp小于0xDfffffff,则转到步骤4.3,否则转到4.6;
步骤4.3、设t = TmpE mod 2,计算t的值,判断t的值是否等于0;
若t = 0,表示TmpE能被2整除,则赋值D=2,Rem = 0,并转到步骤4.6;
若t ≠ 0,表示TmpE不能被2整除,则转到步骤4.4;
步骤4.4、设t = TmpE mod 5,计算t的值,判断t的值是否等于0;
若t = 0,表示TmpE能被5整除,则赋值D=5,Rem = 0,并转到步骤4.6;
若t ≠ 0,表示TmpE不能被5整除,则转到步骤4.5;
步骤4.5、设t = TmpE mod 3,计算t的值,判断t的值是否等于0;
若t = 0,表示TmpE能被3整除,则赋值D=3,Rem = 0,并转到步骤4.6;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱信诺航芯电子科技有限公司,未经上海爱信诺航芯电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310199494.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种微处理器数据操作定义方法及装置
- 下一篇:一种温控药物缓释护膝