当前位置: 首页 > 专利查询>复旦大学专利>正文

一种抗时间驱动缓存攻击的硬件改进结构制造技术

技术编号:4012664 阅读:218 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于信息安全技术领域,具体为一种抗时间驱动缓存攻击的硬件改进结构。本发明专利技术维持处理器原数据缓存结构,只在其外围加入若干部件,包括:缓存缺失数实时检测模块、数据预取模块、多路选择器、伪缺失应激生成模块、两个与门和仲裁模块;使得其能抵抗针对AES的时间驱动的缓存攻击。本发明专利技术提出的cache改进方案在MIPS?4kc处理器上实现,并通过FPGA测试验证其能有效抵抗各种类型的时间驱动缓存攻击。本发明专利技术方案消耗很少的硬件代价,而AES加解密算法运行性能损失不到10%。

【技术实现步骤摘要】

本专利技术属于信息安全
,具体涉及一种能抗时间驱动缓存攻击的硬件防御 方案及模块设计。
技术介绍
石马胃 fe (Advanced Encryption Standard, AES) ^ 由 NIST (National Institute ofStandards and Technology)提出的一种常用的对称密码算法。采用该算法 的密码芯片广泛应用于智能卡、电子商务、网上银行等领域,极大地保证了系统的安全。但 是最近几年,一类通过共享硬件资源获得旁道信息并分析得到敏感信息的攻击吸引了众多 研究者,并被称之为基于处理器微体系结构分析的旁道攻击。特别地,多种利用数据缓存攻 击Openssl中实现的AES算法已被研究证明切实可行,并且有多种攻击方法提出。基于缓存的时间攻击(Cache Based Timing Attack,CBTA)根本上基于如下事实 半导体工艺技术的发展中处理器的性能提升与内存的访问速度不一致,处理器性能要快于 主存储器且两者之间的性能鸿沟越来越大。为了解决这个矛盾,处理器架构研究者在处理 器与主存储器之间引入了缓存,这样可以利用程序执行时的空间和时间局部性提升系统性 能。由于缓存容量有限,主存储器在缓存中数据拷贝由于冲突会被替换出缓存,所以处理器 进行访存操作时会出现缓存缺失和缓存命中。在发生缓存缺失后数据将通过系统总线从主 存储器中读取,一般的,这跟缓存命中间有几十甚至几百倍的速度差异。所以,处理器访存 操作在时间上存在不一致性,并且这种差异是可以测量的。AES的软件实现广泛采用的查找表以避免复杂的有限域运算,从而获得较高的运 行速度。如上所述,AES查表操作不具有时间一致性,研究分析表明这种时间不一致性强烈 依赖于AES密钥值。所以,攻击者可以通过获得的时间信息反推出密钥值,并且这种推断可 按字节进行,大大减少了攻击者的密钥搜索空间。针对AES的CBTA可以分为三类访问驱 动攻击,轨迹驱动攻击和时间驱动攻击。时间攻击驱动首先测量整个AES加解密时间得到 采样数据,然后通过与攻击者猜测的数据作相关性分析。正确的猜测会出现相关峰,攻击者 可以据此得到密钥值。本专利技术针对时间驱动的攻击提出了相应的硬件方案,利用IPMG技术 动态调整缓存的缺失率屏蔽了 AES加解密内在的时间波动,从而达到防御目的。同时,IPMG 属于缓存缺失率微调技术,所以不会引入很大的性能损耗。由于无需改动原有缓存的内在 结构,所以实现简单且硬件代价小。
技术实现思路
本专利技术的目的在于提出一种能实时测量缓存缺失率并产生伪缺失的抗时间驱动 缓存攻击的硬件结构,使AES加解密时间不会呈现出由缺失率波动造成的不一致性,使通 过测量加解密时间推测密钥不再可行,并且防御方案引入的性能损失要尽量小。本专利技术提出的抗时间驱动缓存攻击的硬件结构,与原有缓存整体架构如图2所 示。原数据缓存维持原来的结构无需改变,但是在其外围加入了若干部件,包括缓存缺失数实时检测模块、数据预取模块、多路选择器、IPMG(Induced Pseudo Miss-rate Generation, 伪缺失应激生成)模块、两个与门和仲裁模块。其中缓存缺失数实时检测模块,其输入为缓存命中信号,是一个计数器,每当缓存发生 缺失时,计数器值就增加一。数据预取模块1,见图2中虚线框所示。该模块内一个预取控制模块和一个4条缓 存行大小的数据暂存区,用来存放预取的数据。预取由缓存缺失触发,预取地址为发生缺失 行的接下来四个缓存行。预取机制可以根椐应用需求打开和关闭。多路选择器2,其输入为原数据缓存的输出和预取数据模块的输出。IPMG模块为本专利技术的核心功能模块,该模块主要输入为内存访问信号和缺失数实 时检测模块的输出,根据当前的缓存缺失率,该模块根据历史统计所得的阈值和当前的缺 失率来产生强制缺失信号。在通常情况下该信号维持高电平,不会影响数据缓存和预取单 元的命中信号。当IPMG产生伪缺失时,输出拉低使得两个与门3输出为低,这样屏蔽了预 取单元和数据缓存的信号。无论该次访问结果如何。处理器将接收到缓存缺失信号。同时 预取单元将被触发工作,去内存中读取访问行。当预取完成时,IPMG将输出拉高,与门3将 接受数据缓存和预取单元的信号判断输出。仲裁模块4用于解决数据缓存和预取单元冲突情形。本专利技术中IPMG模块内部结构如图3所示,该模块的输入为当前缺失数和访问总 数,根据公式(1),该模块生成输出反馈信号。并且该模块对历史缓存缺失率进行平均值统 计用以估计调整阈值,若把一次AES运算的缓存缺失率记作m,并且将若干次AES运算的缓 存缺率数据视作一个统计单元块。当前统计单元块AES运算的阈值为上一个统计单元块平 均值。统计单元块大小根据应用需求可配置为2的整数次方幂,这样做有利于硬件实现 除法运算。在计算统计单元块内数据平均值时可通过移位运算实现对样本的算术平均。阈 值寄存器用来存放用以比较的阈值。判决公式如下撤_缓存缺失数调整阈值> 士方、士勹船内存访问数由于除法在硬件实现会影响系统性能,所以将如上公式调整用乘加单元实现判 决调整阈值X内存访问数-缓存缺失数>0(1)缓存缺失率求和寄存器保存了本次统计单元块内缺失率总和,当本次统计单元块 完成时,计数器输出饱和信号,缺失率求和寄存器清零,同时更新阈值寄存器。本专利技术利用硬件模块来实时测量所关心区段的缓存缺失率,通过与阈值比较来产 生伪缺失,使不同明文输入的AES加密运算呈现出相同的加解密时间。在无该硬件防御机 制下,AES加解密运算的缺失率接近正态分布,如果在该防御机制下,AES运算的缺失率基 本稳定在无保护模式下的上限水平。根据本专利技术的硬件结构与原有缓存的融合架构,其基本特征是(1)原有缓存的 内部结构无需改动,所提出的硬件防御方案在原缓存外围实现。(2)原有缓存命中信号逻辑 发生改变,预取命中和缓存命中皆可使命中信号有效,同时该两信号可通过与逻辑被IPMG模块输出屏蔽。 本专利技术中IPMG模块,能够统计历史平均缺失率,并且根据当前缺失率水平进行伪 缺失产生判决。阈值的产生是基于统计单元块进行的,即对以往一块数据进行统计平均。伪 缺失产生信号中使用了乘加单元,从而避免使用了除法器。统计单元块大小可以根据应用 需求由编程人员设定。附图说明 图1有保护和无保护情形下缓存缺失率分布图。图2安全缓存整体架构图。图3IPMG模块结构图。图4程序实现示意图。图5无保护情形下相关性分析结果。图6有保护情形下相关性分析结果。图7性能比较直方图。图中标号1为数据预取模块,2为多路选择器,3为逻辑与门,4为仲裁模块,5为 缓存缺失数实时检测模块,6为IPMG模块,7为原数据缓存。具体实施例方式本专利技术是对处理器数据缓存的安全加强,集成安全模块时不需要对原缓存进行任 何内部结构的修改,具体的集成方法如下。本专利技术中原缓存对系统总线接口改为仲裁器与系统总线接口,原缓存的总线接口 与所加入的预取单元的总线接口输入至仲裁器。访问内存时,处理器核输出的虚拟地址需要同时输入至原缓存和添加的预取单 元。缓存输出的数据和预取单元输出的数据需要经过多路选择器选择输出给处理器核。缓 存命中信号不再是原数据缓存命中信号,而是经过安全模块处理后的模块。本文档来自技高网
...

【技术保护点】
一种抗时间驱动缓存攻击的硬件改进结构,其特征在于,原数据缓存维持原来结构,在其外围加入若干部件,包括:缓存缺失数实时检测模块、数据预取模块、多路选择器、伪缺失应激生成模块、两个与门和仲裁模块;其中:缓存缺失数实时检测模块,其输入为缓存命中信号,是一个计数器,每当缓存发生缺失时,计数器值就增加一;数据预取模块,该模块内含有一个预取控制模块和一个4条缓存行大小的数据暂存区,用来存放预取的数据,预取由缓存缺失触发,预取地址为发生缺失行的接下来四个缓存行;预取机制根椐应用需求打开和关闭;多路选择器,其输入为原数据缓存的输出和数据预取模块的输出;伪缺失应激生成模块,其输入为内存访问信号和缺失数实时检测模块的输出;根据当前的缓存缺失率,该模块根据历史统计所得的阈值和当前的缺失率来产生强制缺失信号;当产生伪缺失时,该模块输出拉低使得两个与门输出为低,以屏蔽数据预取模块和数据缓存的信号;同时数据预取模块被触发工作,去内存中读取访问行;当预取完成时,该模块将输出拉高,与门将接受数据缓存和数据预取模块的信号判断输出;仲裁模块用于解决数据缓存和数据预取模块冲突情形。

【技术特征摘要】

【专利技术属性】
技术研发人员:卢仕听张随欲韩军曾晓洋
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

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

1