一种指令级密码设备能量消耗信息生成方法技术

技术编号:7462286 阅读:202 留言:0更新日期:2012-06-25 08:33
本发明专利技术公开了一种指令级密码设备能量消耗信息生成方法,属于信息安全领域。本方法为:1)选取一目标密码设备,并初始化该密码设备中各主要物理单元的噪声模式、能量模型,设置各主要物理单元能耗比重;2)对所选密码算法的实现源程序进行编译,得到汇编指令序列;3)采用词法分析器对汇编指令序列中的指令进行识别,并将分支指令、循环指令铺平为顺序执行的指令序列;4)指令模拟引擎模拟执行铺平后的指令序列,记录各主要物理单元在指令执行过程中所处理的数据;5)根据初始化结果,将记录的每条指令执行过程中处理的数据映射为指令的能量消耗值,得到目标密码设备运行该密码算法的能量消耗信息。本发明专利技术具有刻画能力强、资源开销小等优点。

【技术实现步骤摘要】

本专利技术涉及,用于基于密码算法生成其宿主密码设备运行时的能量迹(能耗值曲线),能量迹用于评估密码算法对于能量分析攻击的防御能力,属于信息安全

技术介绍
侧信道攻击(Side-Channel Attacks)指攻击者通过密码算法执行过程中产生的额外信息泄露对密码算法实现进行破解的攻击方式。近年来,侧信道攻击作为一种新型的密码分析方法受到了产业界和学术界的广泛关注,得到迅速发展。传统的密码分析将密码实现视作黑盒子,只利用其输入与输出实施密码破解;而侧信道攻击在考虑密码实现输入输出的同时,利用密码实现在进行密码计算时泄露的时间信息、能量消耗信息或者电磁辐射信息等物理信息,辅助实施密码破解。能量分析攻击是一种利用密码设备运行时的能量消耗信息实施密钥恢复的重要的侧信道攻击方法。能量迹是时间轴上的能耗值曲线,记录密码设备执行周期的瞬时能量消耗。能量分析攻击即利用能量迹实施攻击,这种攻击严重威胁着集成电路以及基于集成电路设计的各种密码设备的实际安全性。密码设备能量消耗模拟工具对于评估密码实现的实际安全性,尤其是设计阶段的实际安全性具有重要意义,对于客观比较和评估各种能量分析攻击的有效性,以及评估各种防御措施的有效性同样具有重要意义。传统的针对实际密码设备的评估,其代价相当高昂,原因在于设计者无法在设计过程中评估抗防御对策的有效性,不安全的防御对策很可能导致整个开发周期的重新实施;在模拟工具的支撑下,能量分析攻击安全性检测可以渗透在各个层次的设计中,可以显著缩减研发周期和成本。然而,截至目前,尚未出现适用于能量分析攻击的能量消耗信息生成方法,特别缺乏同时具有多种能量模型适应能力及具有不同噪声水平刻画能力的模拟工具。 SimplePower和JouleTrack是目前两种典型的能量消耗模拟器,前者的应用对象是编译优化和体系结构优化,在噪声模拟方面不符合能量分析攻击的要求;后者宣称可以针对多种体系结构提供时钟级的能量消耗信息,但是只能以C源文件作为输入,无法结合特定微处理器的体系结构进行能量消耗信息的生成。
技术实现思路
针对现有技术存在的问题,本专利技术旨在提供。本专利技术基于密码算法及其宿主硬件的体系结构生成能量迹,对密码设备能耗特征的刻画能力强、资源开销小、生成速度快。需要特别指出的是,该方法并不局限于特定密码算法的类型(对称、非对称密码算法等)以及实现方式(朴素实现抑或受保护实现),具有广泛的适用范围。本专利技术基于“指令级密码设备能量消耗信息生成方法”,设计并实现了一种指令4级密码设备能量消耗信息生成原型系统,使用该系统可以精确模拟典型密码设备的能量消耗。本专利技术实现的原型系统采用高度模块化、可扩展的体系结构,本专利技术为设计阶段对密码设备进行分析与刻画提供基础,从而通过合适的参数配置,可以刻画多种类型的设备泄漏特征。具体的,包括4个基本功能模块,即预编译模块、指令铺平模块、模拟引擎模块以及能量迹生成器模块。同时,该系统易于扩展至除C51之外的其他硬件平台,还可以基于 SvstemC在不同的抽象层次上生成密码设备的能量消耗信息。本专利技术的技术方案为,其步骤为1)选取一目标密码设备,选取并初始化该密码设备中各主要物理单元的噪声模式、能量模型,设置各主要物理单元能耗占总能耗比重;2)对所选密码算法的实现源程序进行编译,得到源程序的汇编指令序列;3)采用词法分析器对所述汇编指令序列中的指令进行逐条识别,并根据识别结果及该密码算法的输入参数将该算法中的分支指令、循环指令铺平为顺序执行的指令序列;4)指令模拟引擎模拟执行步骤幻铺平后的指令序列,记录各主要物理单元在指令执行过程中所处理的数据;5)能量迹生成器根据步骤1)的初始化结果,将步骤4)记录的每条指令执行过程中处理的数据映射为指令的能量消耗值,得到该目标密码设备运行该密码算法的能量消耗 fn息ο进一步的,所述步骤3)中指令序列的铺平方法为a)标记所述汇编指令序列中每条指令的tag值,将每条跳转指令的tag标记为0、 将没有跳转发生的指令的tag标记为-1 ;b)词法分析器识别到一条指令后,根据标记tag的值判断是否有跳转发生,若没有则进行步骤c);若有跳转发生,则判断当前指令的地址是否为要跳转到的地址,如果是, 则置当前指令的tag值为-1,进行步骤c),否则对当前指令不作处理,取下一条指令进行识别;c)判断当前指令是否为跳转指令,若是跳转指令且跳转条件成立,则置当前指令的地址为要跳转到的地址,然后继续取下一条指令识别;否则直接取下一条指令识别。进一步的,所述模拟引擎模块包括处理器模块、总线模块以及存储器RAM模块,所述总线模块包括地址总线模块和数据总线模块,所述存储器MM模块包括片内RAM模块和片外RAM模块;所述指令模拟引擎模拟执行步骤幻铺平后的指令序列过程中,对每一条指令的模拟方法为a)所述处理器模块从程序存储器ROM中取出待执行指令,并通过所述总线模块读取指令的地址PC及指令的二进制编码;其中,总线模块将其传输的PC及指令的二进制编码顺序以“物理单元名称该物理单元处理的数据”的形式存储到一中间值文件中;b)所述处理器模块将该指令的操作数地址通过地址总线模块传送给存储器RAM 模块,然后存储器RAM模块将指定地址的数据通过数据总线模块传输给处理器模块;其中, 地址总线模块将指令操作数地址存储到该中间值文件中,存储器RAM模块将指令操作数地址和该地址存储的数据存储到该中间值文件中,数据总线模块将指令操作数地址对应的数据以“物理单元名称该物理单元处理的数据”的形式顺序存储到该中间值文件中;c)所述处理器模块执行当前指令,并将执行结果通过总线模块传输给存储器RAM 模块;其中,总线模块将处理器模块的执行结果及地址存储到该中间值文件中,存储器RAM 模块将处理器模块的执行结果及地址结果以“物理单元名称该物理单元处理的数据”的形式顺序存储到该中间值文件中。进一步的,所述噪声模式初始化为无噪声、或随机噪声、或高斯噪声。进一步的,所述能量模型初始化为汉明重量模型、或汉明距离模型、或比特权重模型。进一步的,所述主要物理单元包括总线、片内RAM、片外RAM等。原型系统各模块描述如下■预编译模块对密码算法的实现源程序进行编译,得到源程序的汇编指令序列,比如密码算法C51汇编代码。若系统输入为密码算法的C等高级语言实现代码,则可通过使用 KeiluVision等编译工具对相应的实现代码源程序进行编译。■指令铺平模块该模块基于词法分析器Lex进行汇编指令铺平,即对算法执行序列中的指令序列进行逐条识别,继而根据识别的结果以及算法的输入参数将算法中的分支指令、循环指令铺平为顺序执行的指令序列。这种处理能够显著提高模拟速度。■模拟引擎模块该模块基于对密码设备能耗特征的刻画(刻画层次可配置),这种刻画包括对数字电路实现中的主要物理单元(处理器、存储器和总线等)活动的模拟,并将这些物理单元的活动(数据处理、指令执行等)过程中处理的数据(存取数据,传输数据等),传送给能量迹生成器。该模块根据C51微控制器指令集将汇编指令类型、操作数映射为设备中各个功能单元的计算及存储行为,最终得到各主要物理单元指令执行过程中的状态。■能量迹生成器模块该模块可以灵活配置各主要物理单元在总能量消耗中的比重、能量模型本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:周永彬李建堂刘继业
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:

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

1
相关领域技术