首页 > 范文大全 > 正文

功耗分析仿真软件设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇功耗分析仿真软件设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【 摘 要 】 设计并自主开发一个功耗分析仿真软件,完成对硬件描述语言实现的密码算法IP核进行功耗仿真分析。用软件仿真功耗分析攻击,可以在嵌入式加密芯片的设计阶段评估设计方案和抗功耗分析攻击的性能,提高工作效率,降低开发时间和成本,具有很高的实用价值。该软件已经实现了几种常用密码算法及其改进后加密算法的一阶功耗分析和高阶功耗分析功能。经测试得到的仿真结果与理论分析出来的攻击结果相符合,实现了本软件的设计目标。

【 关键词 】 差分功耗分析;功耗分析仿真软件;高阶功耗分析

【 中图分类号 】 TP311.52 【 文献标识码 】 J

1 引言

自P. Kocher提出功耗分析概念以来,在功耗分析实施过程中的功耗采集、功耗轨迹生成、功耗分析攻击三个主要实现环节中,只有功耗分析攻击的讨论最为深入。究其原因,功耗采集、轨迹生成都有固定的方案可循。而功耗分析攻击涉及到密码算法及其运行过程中一切数据的变化和中间值的估计,必然会复杂和深入得多。一般,功耗分析攻击都是在加密设备的物理硬件平台上完成。对加密芯片设计者而言,所设计的算法软件和其他方面的设计必须在样品设备制造出来之后才能测试验证。对一个已经设计并付诸生产的嵌入式加密芯片而言,后期的验证已经来不及对其进行结构上的调整和修正,且测试周期长,代价高。因此,如能设计一个好的功耗分析仿真软件,不需要搭建硬件实验环境和物理目标设备,通过软件仿真硬件功耗消耗,执行功耗分析攻击,能仿真多种加密算法在多种类型加密设备上进行测试,并能及时反馈所用攻击方法及防御方法的性能和效果,具有极大的实用价值。

1.1 功耗分析仿真软件研究现状

到目前为止,国内外对功耗分析方法的研究仍属于探索和起步阶段。

2003年Einhoven大学的ECSS研究小组设计和开发一种基于功耗泄露攻击的仿真试验平台PINPAS,该仿真平台能对AES,ECC算法在内的密码算法的功耗泄露进行仿真。PINPAS仿真平台实现了简单功耗分析攻击、一阶差分功耗分析攻击。

2004年剑桥大学的EMA项目组以电磁辐射攻击为背景展开相关研究,通过对密码芯片运算时的电磁泄露进行建模,在设计阶段对密码芯片进行电磁分析。EMA项目开发了一套电磁攻击的仿真实验环境,能处理简单电磁攻击和差分电磁攻击。

2005年清华大学的研究人员提出一种功耗分析模拟研究平台,该平台为功耗分析及抗功耗分析提供一个理论研究平台,可以为最终的芯片实现提供一定的安全依据。

2007年上海交通大学的研究人员在进行功耗分析实验的研究中,对旁路功耗分析测试平台进行了详细的描述,给出了整个系统的总体设计框图,用图表的方式描述了攻击测试的流程。

2008年电子科学技术大学的范明钰、张涛、李欣等研究人员在开发旁路攻击仿真软件上进行了一些尝试,初步完成了一个仿真软件SSSCA的相关设计与编写工作。该仿真软件中加密算法和SSSCA平台均是用高级语言描述,目前只完成简单功耗分析攻击和一阶差分功耗分析攻击。

2 仿真软件设计目标和总体架构

2.1 功耗分析仿真软件设计目标

本文所开发的功耗分析仿真软件模块作为整个仿真软件系统的一部分,已完成几个设计目标。

1) 采用自上而下的设计,搭建软件的整体架构,功耗分析仿真软件的最终目的是能够仿真多种加密算法在多种虚拟硬件平台上的泄露功耗进行分析,随着项目开展,能不断扩充算法模块,因此整个软件系统结构需要良好的扩展性。

2) 完成密码算法的IP(Intellectual Property Core)核设计。

3) 设计从硬件描述语言到高级语言的接口设计。

4) 设计加密算法的一阶功耗分析模块,该模块包括功耗统计,功耗分析攻击,最后获得一条直观的功耗分析攻击曲线。

5) 设计加密算法二阶功耗分析模块,该模块包括功耗统计,功耗分析攻击,最后获得一条直观的功耗分析攻击曲线。

2.2 功耗分析仿真软件总体架构

本文设计了一个功耗分析仿真软件总体架构,对加密算法IP核进行功能模拟,提取出功耗曲线,并对其进行功耗分析;另一方面,亦可以利用这一软件评估抗功耗分析攻击算法设计的有效性和可行性。功耗分析仿真软件总体架构如图1所示。

3 仿真软件各功能模块

3.1 加密算法IP核设计

用硬件描述语言实现加密算法。模拟加密芯片从数据输入到数据输出的全过程。

3.2 代码仿真模块

代码仿真模块主要是建立在大量的实验基础上,完成密码算法过程中中间值与功耗数值之间的工作、功耗数据采集工作。

本文中代码仿真器选择的是Mentor Graphics 子公司Model Technology的产品Modelsim,属于编译型的Verilog/VHDL混合型仿真器。它是一个第三方软件,其功能仿真和综合布线后的时序仿真便捷快速,在软件环境下,验证电路的行为与设想是否一致。

3.3 功耗分析模块

功耗分析模块是整个仿真软件架构的核心,流程图如2所示。它的能力代表了仿真软件的能力,由于加密算法的实现不同,功耗分析工具不能做到完全通用化。本文自主设计开发出一个功耗分析仿真实验平台PASP(Power Analysis and Simulation Platform),完成功耗分析模块的处理工作。

数据预处理是指对加密算法IP核经Modelism运行后,收集到与密钥相关的中间变量的值进行处理,以实现从硬件描述语言到高级语言设计的接口。

功耗分析处理又是功耗分析模块的核心部分,它主要包括两个部分:功耗统计和功耗分类处理。

数据后处理,将得到的功耗偏差作为纵坐标,子密钥解空间的值作为横坐标,画出一条直观的功耗分析波形图。

4 功耗分析实例

4.1 仿真工作流程

一个完整的功耗分析仿真软件工作流程如图3所示。

4.2 功耗分析实例

本文在自主开发功耗分析仿真软件上做了一些尝试,初步完成一个功耗分析软件PASP(Power Analysis Simulation Platform)的编写工作。图4为PASP软件界面,通过选择可分别进入一阶或高阶功耗分析。

以AES的一阶功耗分析和FVMAES二阶功耗分析为例,展示本文所开发的PASP平台。点击功耗分析的类型,分别进入一阶功耗分析和高阶功耗分析界面。

选择密码算法类型,此处可以扩展,本文以AES、FVMAES加密算法为例,先选择算法类型,然后输入信号文件,信号文件为经Modelsim运行后与密钥有关的中间值文件,点击数据预处理,得到功耗点时刻即D值时刻。由于一阶界面与高阶界面展示的内容一致,只是内部实现算法不同,本文只给出一阶界面图片。

进行功耗统计,计算加密运算过程中,中间变量在D值时刻,所产生的功耗。

功耗分类处理,用D值对功耗数据进行区分,采用基于均值检验的方法进行分析,结果如图9所示。

数据后处理,将得到的功耗偏差作为纵坐标,子密钥解空间作为横坐标,画出直观的波形图。AES一阶功耗分析和FVMAES二阶功耗分析图分别如图10、图11所示。

5 结束语

设计了一个功耗分析仿真软件总体架构,描述了仿真软件各模块实现的功能,最后通过实例展示本文开发的PASP平台。该平成模拟用硬件描述语言实现的密码算法IP核进行功耗分析的全过程,在设计阶段即可验证和评估嵌入式加密芯片的功耗分析攻击及抗功耗分析方法的性能,大大提高工作效率,降低开发时间和开发成本,具有很高的实用价值。

参考文献

[1] Kocher P, Jaffe J, Jun B. Differential power analysis[C]//Proceedings of Advances in Cryptology- CRYPTO’99, Santa Barbara, CA, USA,1999:388-397.

[2] G. Hollestelle, W. Burgers. Power analysis on smartcard algorithms using simulation. Technical Report, Eindhoven, University of Technology, December2003, l-37.

[3] Huiyun Li, Moore S, Markettos A T. A simulation methodology for electromagnetic analysis and testing on synchronous and asynchronous processors. Cryptology Print Archive, 2004,1-10.

[4] 刘鸣,陈弘毅,白国强.功耗分析研究研究平台及其应用[J].微电子学与计算机,2005,22(7):134- 137.

[5] 陈志敏.安全芯片旁路功耗分析及抗攻击措施[上海交通大学硕士学位论文].上海:上海交通大学电子信息与电气工程学院,2006,14-26.

[6] 李欣.RSA公钥密码算法的能量分析攻击与防御研究[电子科技大学硕士学位论文].成都:电子科技大学计算机科学与工程学院,2006,58-59.

[7] 章竞竞. 一类加密算法的功耗分析及其防御研究[湖南大学硕士学位论文].2010,37-48.

[8] 章竞竞,李仁发,李浪.DES差分功耗分析研究及仿真实现[J].计算机工程与应用,2010, 46(33):82-84.

作者简介:

唐星(1985-),男,硕士研究生,助理工程师;主要研究方向:能源软件工程,信息安全。

章竞竞(1985-),女,研究生,助理工程师;主要研究方向:嵌入式系统安全。