[发明专利]一种实现软件条件分支功耗均衡的方法有效
申请号: | 201410427294.6 | 申请日: | 2014-08-27 |
公开(公告)号: | CN104463027A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 王赟;于忠华;杨念东;陈波涛 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | G06F21/77 | 分类号: | G06F21/77;G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 软件 条件 分支 功耗 均衡 方法 | ||
技术领域
本发明主要应用于智能卡安全领域,也可以适用于各种需要防御计时攻击和简单功耗攻击的安全芯片中。
背景技术
智能卡(SmartCard),也叫IC卡,是一个使用集成电路工艺制造的带有微处理芯片的、具有标准规格的卡片。
随着社会和科技的发展,智能卡的应用越来与普及,给人们生活带来巨大的方便。但是,自从1996年Kocher提出了差分功耗攻击方法以来,业界对功耗攻击方法进行了深入研究。功耗(能量)分析攻击的研究,同时也给智能卡带来了安全方面的威胁。恶意使用者可能通过对智能卡工作功耗的分析得到工作状态信息,进而获取智能卡的敏感信息。
功耗(能量)分析攻击已被公认为一种获得智能卡芯片秘密信息的强有力工具,其基本原理是芯片设备的瞬时能量消耗与其所执行的操作及操作的数据之间具有相关性。功耗分析攻击,按照对侧信息分析的原理,可以将其分为简单能量分析(SPA)、差分能量分析(DPA)以及相关能量分析(CPA)等。
举例来说,通常高级语言的条件分支语句,如if-else,switch-case等,经过编译器编译后,对应的汇编代码通常是条件跳转指令。而对于绝大部分微处理器,条件跳转指令在判断条件成立和不成立时,对应的指令周期数是不同的。指令中判断条件不成立时,指令仅执行判断操作,判断条件成立时,指令处理执行判断操作外,还要执行跳转操作。因此会造成同一条分支语句,由于分支条件的不同,导致指令运行时间和功耗上产生差异。通过这种差异,使用简单功耗分析,就有可能分析出智能卡芯片的工作状态、程序处理流程信息,带来安全隐患。
比如在增强型8051单片机中,条件跳转指令JB和JNB,在判断条件不成立时,该指令的执行周期数为3,但判断条件成立时,该指令的执行周期为4。同样,条件跳转指令JC和JNC,在两种不同条件下的执行周期分别为2和3。ARM Cotex-M0处理器中,条件跳转指令,如BNE、BEQ等,判断条件不成立时,指令的执行周期数为1,而判断条件成立时,指令的执行周期数为3。
这些条件跳转指令由于判断条件不同引起的执行时间上的差异,会体现在功耗曲线上,通过这种差异,使用简单功耗分析可以分析出条件分支语句实际执行的分支,从而获取智能卡芯片的工作状态,或程序处理流程信息,带来安全隐患。
从上述信息可以看出,对于智能卡等产品,如何保护好卡片工作时的功耗信息非常重要。功耗信息通常与智能卡正在进行的操作有关,比如智能卡芯片处理不同的指令会引起功耗的差异,这种差异规律性可以很容易地从功耗轨迹上看到。简单功耗分析即根据功耗轨迹直接得到智能卡操作相关的信息,这些信息有可能泄露智能卡的关键技术。
因此,必须实施相应的防护技术来保护智能卡安全。由于功耗分析的基本原理是芯片设备的瞬时能量消耗与其所执行的操作及操作的数据之间具有相关性,所以如果能够隐藏或者破坏这种相关性,就会大大增强芯片防御功耗分析攻击的能力。
发明内容
本发明中,采用一种软件分支均衡方法,将程序中分支判断和跳转操作的流程差异消除,隐藏了分支跳转操作在时间上的相关性,对于针对分支跳转语句功耗分析的攻击,有一定的防御能力。
本发明的内容在于,实现了一种将条件判断的分支语句转换为分支处理程序地址的索引和调用,并将其应用于智能卡芯片的安全防护领域,消除了分支差异产生的程序运行期间时间和功耗上的差异,隐藏和破坏了分支跳转操作在功耗上的相关性,从而达到软件防护简单功耗分析攻击和计时攻击的目的。
一种实现软件分支功耗均衡的方法,通过建立分支处理程序地址和分支判断条件的索引表,将条件判断的跳转操作,转换为转根据索引值查找并加载跳转分支处理程序,对于所有的分支,以分支判断条件作为索引值,先找到索引值的偏移,检索到分支处理程序地址,读出处理程序地址并通过分支处理程序的地址对其进行调用,加载程序并执行将条件判断的分支跳转操作从而消除分支差异产生的运行时间和功耗上的差异。
其中对条件分支语句进行转换,具体实施步骤如下:
1)将分支处理程序整理为函数或模块,保证各个分支处理函数或模块的操作流程的指令执行周期和功耗外部特征曲线一致;
2)建立索引表存储分支处理程序地址,将各分支处理程序的地址提取出来,按照一定形式顺序存储到一块内存地址中;
3)建立分支条件与索引号的对应关系,将分支条件作为处理程序偏移地址的索引号,可以通过分支条件直接对应到索引表的位置,该对应关系应该在操作上具有一致性;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410427294.6/2.html,转载请声明来源钻瓜专利网。