网站大量收购独家精品文档,联系QQ:2885784924

rsacache计攻击原理及实现.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
rsacache计攻击原理及实现 1 基于cache战时攻击的分析 在密码分析领域,文献提出了一种新的边路分析,即所谓的微结构分析。该技术理论上利用现代高性能超线程CPU体系结构中的某些部件内部的功能,可以潜在地发现密码系统执行过程中几乎所有的数据或指令访问顺序,进而根据访问的数据或指令推断出密钥。数据Cache、指令Cache和分支预测分析是微架构分析的3种类型。 Cache计时攻击是利用访问数据Cache命中和失效特征所表现出来的执行时间差异,进而分析密钥的一种计时攻击方式。这种攻击利用CPU内部组件,即使采用了沙盒和虚拟化保护措施,由于内部组件在这些安全机制之下,也无法避免Cache计时攻击。文献提出通过构建隐通道监控密码进程,测量和记录执行的时间差异,推断密码进程执行过程中访问的数据序列,进一步分析从而推出密钥。文献所做的攻击平均可以正确分析出512 bit密钥中的310 bit。在Cache计时攻击方面,针对AES、Camellia等密码算法都已经取得成功,由于RSA为公钥密码,不同于对称密码算法的实现,实施起来更为困难。 本文在文献的攻击理论基础上,基于Cache命中和失效原理,设计一种新的针对滑动窗口算法的Cache计时攻击方法,提高攻击的可行性。以Open SSL0.9.8a实现的RSA密码算法签名过程为攻击对象,根据Cache在执行过程中遗留的痕迹,测量和记录执行时间,推断密码进程在执行过程中访问过的初始化表数据,通过对这些数据的分析推断出密钥,这种攻击方式具有抗干扰能力强、执行效率高等特点。 2 ria公钥密码算法 2.1 rsa的密钥计算 RSA是一个基于模幂运算的公钥密码算法。加密过程为C=MemodN,解密过程为M=CdmodN,其中,M表示明文;C表示密文;N为模数;e为加密指数;d为解密指数。RSA产生密钥的过程如下:首先产生2个大素数(一般512 bit以上)p和q,选择公钥e(通常是3、17或65 537)并且满足gcd(e,(p-1)(q-1))=1;令N=p×q,通过d=e-1mod(p-1)(q-1)计算解密指数d。RSA加解密的核心运算是模幂运算,常用的模幂算法是平方-乘法算法。 2.2 窗口滑动的持续过程 Open SSL是目前使用较为广泛的开源SSL库。为提高RSA执行效率,Open SSL采用了中国剩余定理、蒙哥马利乘法及滑动窗口算法来完成求幂操作。滑动窗口算法采用一个固定大小为k的窗口,在二进制模幂指数d上从左到右(也可以从右到左)滑动。滑动过程直到窗口最右边第一次碰到“1”结束,然后再创建一个窗口从上次结束的地方开始另一次滑动,这样的过程一直持续到d的二进制表达中没有“1”为止。 滑动窗口算法需要反复计算一张乘数表,对于窗口大小为k的需要计算2k-1次。因此,为平衡重复计算时消耗时间和实际求幂消耗时间,存在一个最优的窗口大小。对于1 024 bit的模数Open SSL采用的窗口大小为6,因此,每次滑动d的位数不超过6个。滑动窗口算法如算法1所描述,其中k表示窗口的大小。 算法滑动窗口算法 输入m,d=(dtdt-1…d1d0)2,其中,dt=1,整数k≥1 输出md 当窗口大小k=1时,滑动窗口算法等同于平方-乘法算法。因此,滑动窗口算法可看成是“平方-乘法”算法的一种改进,其主要思想是通过预计算来提高运算速度。本文以滑动窗口算法中的初始化乘法表为突破点,阐述针对RSA算法的Cache计时攻击。 3 基于cache滑动窗口算法的rsa检测 Cache是位于主存和中央处理器之间的一个小的缓存器,为处理器提供一种快速方便地访问最频繁访问的数据和指令的方式。当处理器需要从主存读取数据时,它首先检测这些数据是否存在Cache中,如果存在(Cache命中),处理器立即读取这些数据,而不需要访问主存;否则,处理器必须从主存中读取数据(Cache失效),同时将数据的副本存储在Cache中。每次Cache失效都会产生对更高一级存储器的访问,这将导致额外的存取延迟时间,本文只考虑L1 Cache。 Cache计时攻击就是基于上述原理,即Cache失效增加了访问数据的时间。现代CPU多使用高速共享存储器技术和同步多线程技术,由于进程切换时并没有清空Cache中的数据,其他进程就可以对Cache中共享数据进行访问。在密码进程的执行过程中,由于对Cache的共享,会留下一些痕迹或中间数据。攻击者只要通过对Cache中私有数据进行访问,找到密码进程执行中与密钥相关特定Cache集合,进而根据Cache失效或命中的组集合与密钥的索引关系,可推断出密钥值。 本文针对采用滑动窗口算法实现的RSA建立了Cache计时攻击模型,如图1所示。 该模型首先构造一个与Cache(L1 Cache)空间大小相等的数

文档评论(0)

134****3501 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档