APP下载

安全芯片之安全性分析﹡

2013-10-31

通信技术 2013年8期
关键词:非对称功耗密钥

叶 宾

(保密通信重点实验室,四川 成都 610041)

0 引言

随着信息化飞速发展的步伐,信息安全事故的不断爆发,推动了安全保密设备的大量普及和应用。由于安全保密设备是确保信息系统的安全,安全保密设备自身的安全就被放到了一个十分敏感和重要的位置,需要精心考虑。安全设备的安全性到底如何呢?常常看到有这样一种现象出现,在系统的安全性更多地寄托在采用的专用安全芯片上,安全芯片安全性就成为了焦点。

安全芯片的安全性包含两层含义:一是芯片上运行的密码算法、协议的安全性,二是安全芯片实现的安全性。对于前者,随着多年来密码学的理论发展和技术进步,密码算法和协议都具有比较牢固的数学安全性基础,不论是对称密码算法还是非对称密码算法,其复杂度在现有计算能力下都足以抵御数学分析攻击[1]。但是安全芯片实现的安全性方面,从许多报告、方案甚至文章中可以大量发现并不太经得起推敲,存在一些问题或漏洞,可见安全芯片本身的安全性值得深入分析和探讨。

1 安全芯片面临的威胁

安全芯片因为其特殊功能和作用,导致从诞生开始就受到高度关注并被重点研究,对其开展的攻击新手段层出不穷,也推动了安全芯片的安全防护措施快速发展,攻与防演绎出不少跌宕起伏的故事,完全展现了魔高一尺、道高一丈的属性。

当前,针对安全芯片的攻击方式中常见且比较有效的大概有旁路攻击(非入侵式攻击,如能量攻击、差错导入攻击、电磁攻击等)、半入侵式攻击、反向工程等。最热门的有:

(1)能量攻击

能量攻击是P. Kocher1999年针对攻击DES算法的实现引入,逐步受到重视,目前针对能量的攻击分为简单能量分析 (SPA,Simple Power Analysis)攻击和差分能量分析 (DPA,Differential Power Analysis)攻击,其理论基础是基于图1的模型。

图1 旁路攻击原理

简单功耗分析易于实现,主要通过观察芯片运行过程中的功耗轨迹来获取一些与密钥相关的有用信息,特别适合于攻击具有分支结构的加密算法。SPA虽然受制于环境噪声,但是它对攻击者缩小密钥猜测范围很有帮助,它对未作保护的DES、AES、ECC、RSA等密码算法实现芯片均有不同程度的攻击能力。差分功耗分析较为复杂,它是基于大量的芯片功耗信息的统计分析方法,能够克服SPA难以避免的测量误差和噪声影响,对非对称和对称密码系统都有强大的攻击能力。此外,为了挫败一些常规的防御措施,还发展出了一些如带相关性分析的DPA攻击和高阶DPA攻击等更为强大的攻击方法[2]。

(2)差错攻击

差错攻击首先通过设置外在因素和环境条件改变,比如时钟频率、电源电压、以及温度、光照、辐射等,从而导致安全芯片内部产生错误状态,然后收集芯片在错误状态下的信息,将其与安全芯片正常状态下的信息相对比,就可以在一定程度上可以获取芯片内部的敏感数据[3]。目前,通过以差错导入攻击来获取密钥已经从一种理论构想转化为一种切实可行的方法,攻击对象从最初的RSA等公钥制密码实现逐步扩展到DES和AES算法实现[2]。

(3)反向工程

反向设计传统上被称为“自底向上”的设计方法,也称为逆向工程。实际上反向设计与正向设计一样,都是IC设计的一种技术手段,通过分析别人的设计,学习别人的设计经验和先进的设计思想用于自己的芯片设计中,这种方法特别是对于初学IC设计的人员十分有益,通过学习和研究比较成熟的电路版图,可以迅速增加相关电路设计经验,快速熟悉整个 IC设计流程和完善IC设计知识体系。“半导体芯片保护法案(Semiconductor Chip Protection Act of 1984)”于1984年在美国诞生,从而在法律上确定了反向工程的合法性,从此,针对各类芯片(特别是安全芯片)的反向工程开展几乎形成了一个产业般地迅猛发展起来,技术日趋成熟,应用范围越来越广,也被分析破译者常用。

目前反向工程流程如图2所示。

图2 反向工程流程[4]

从多个新闻及其他报道得知,目前最新的反向工程进展情况是 45纳米工艺的超大规模集成电路也能够被成功地实施反向工程。

由此可见,安全芯片所处的生态圈环境较为复杂和险恶,必须应对多种分析手段对其开展的综合分析和破译。

2 安全芯片的安全性措施

为了应对安全芯片所面临的众多安全威胁,安全芯片的设计、制造技术也得到了巨大发展,设计、制造者不断根据新的分析破译技术,研究出并采用一些新的安全防护措施来不断加强自身的安全性,比较典型的措施有:

(1)分割实现

从系统安全实现角度考虑,将安全算法与参数分割成两部分或多个部分,由芯片结合整机或其他部件共同完成加密等关键功能,从而降低单个部分被分析透后带来的整体性安全威胁。

(2)抗旁路攻击

随着旁路攻击技术的产生与发展,对传统密码芯片设计提出了严峻挑战。国内外众多大学和科研机构展开了针对旁路攻击,尤其是功耗攻击和防护技术的深入研究,取得了大量科研成果及发明专利。汇总起来主要包括:算法级的密码芯片防护技术主要有掩码技术、指令执行随机化技术以及外部接口编码技术等,电路级的抗功耗攻击措施的一种防护思想是采用专门的芯片电流控制模块或者芯片供电结构,降低芯片功耗与其所执行的密码算法操作之间的相关性,还有一种思想是设计新型的电路逻辑和电路工作方式,从根本上去除电路工作功耗与密码算法中间结果之间的相关性,比如基于随机化的思想,通过在每个逻辑单元中加入随机掩码,使单元的瞬态功耗在统计上服从均衡分布;再如基于功耗恒定的思想,使逻辑单元在每个时钟周期的功耗曲线形状不随单元逻辑值的变化而变化。这些办法都具有比较强的针对性和作用[1-2]。

(3)抗版图分析

通过全定制设计的方式,在版图中加入冗余逻辑和陷阱单元,从而干扰和破坏反向工程的版图分析;也有采用特殊涂层材料,使得化学腐蚀和剖层环节难以实现;还有采用可编程实现算法的方式,从而避免通过版图逆向分析的方式窃取密码算法的电路实现细节。当然,前面提到的分割实现方式,也导致反向工程无法得到算法逻辑的全部电路,从而也具有抗反向工程的能力。

从业界来看,当前攻击手段中取得成果最多、最有效的攻击方式是旁路功耗分析和实施反向工程,而在众多防御手段中,由于采用可编程/可重构实现算法的方式,通过编程容易实施采用指令执行随机化技术用于抗功耗分析,可编程/可重构的实现架构本身不包含完整的算法信息在芯片内,因此天然具有很好的抗版图分析的能力,因此这种方式似乎成为了一种趋势或潮流,但仅仅采用了可编程/可重构架构实现算法就果真安全了么?

3 可重构算法实现的机理与工作流程

当前业界采用可编程/可重构实现加解密算法的方式中,汇总起来主要有两种技术路线:一是采用专用指令集的方式实现算法,核心思想的通过分析各种通用算法的特点和运算逻辑,提取其共性逻辑单元,用硬件实现这些逻辑单元,采用处理器的方式,用专用指令来调用这些特殊的运算单元,从而高效实现加解密算法;另一种方式是采用FPGA或类似于FPGA的结构或方式实现,它采用逻辑单元阵列,内部包括可配置逻辑模块 (CLB,Configurable Logic Block)、输出输入模块 (IOB,Input Output Block) 和内部连线(Interconnect)[5],FPGA 的可重构实际上是改变CLB 和IOB 的触发器状态。目前主流 FPGA 都采用了基于SRAM 工艺的查找表结构(也有一些FPGA 采用Flash 或者熔丝与反熔丝工艺的查找表结构,通过烧写文件改变查找表内容的方法来实现对FPGA 的重复配置)。

可编程/可重构方式实现算法加解密的流程如图3所示。

从分析破译者的角度可见,专用指令处理器模式和FPGA实现模式依然存在比较明显的薄弱环节,尽管芯片并不包含完整的算法,但是通过反向工程,可以完全获得片内运算单元和逻辑单元的详细信息,这种分析的工作量远比分析破译密码算法本身小很多个数量级。

由于算法指令的目标码或 FPGA的配置数据来自于片外,无论是通过设备以远端在线方式传达还是存储在设备内部的存储器内,均十分容易被在线在芯片输入接口处采集获得,结合芯片的反向工程获得的电路信息,就直接获得了算法的详细实现细节,同样,加密的算法参数和密钥也能顺利获取,结合已经掌握的详细完整的算法及实现细节,就能还原出明文的密钥,这样就实现了芯片的完全破译。

图3 可重构算法实现工作流程

为此,许多实现模式中引入了一个对称算法作为保护算法,从而增强其安全性。具体是在芯片中预置一个软件实现的或硬件实现的对称保护算法,先在片外将算法指令目标码或FPGA配置数据加密,这样让分析破译者在接口端采集到的数据均为加密的数据,这些加密的数据进入芯片内部后启动保护算法解密,然后再完成算法重构或配置,从而在芯片内构成完整的用于数据加解密的算法。这种模式看上去更安全,但本质并没有根本改变,因为用于保护的对称保护算法及其密钥本身在芯片内或以软的方式输入,反向工程结合接口数据采集就一定能获取到,从而导致这种机制的失效。

4 安全芯片实现架构建议

基于日益强大的破译分析技术和多种新兴的分析破译手段出现的情况,笔者认为安全芯片的安全性必须立足于密码算法或同等的运算分析复杂度,而决不能将安全芯片的安全性完全立足于芯片本身分析的难度,即采用增加冗余逻辑、增大芯片规模、加大剖片等环节难度、采用特殊工艺这样的一些手段上,因为这些手段带来的分析工作量无法与解决密码学的数学分析难度相提并论。

基于此原则,为确保密码算法与安全芯片的安全,笔者认为当前充分利用非对称密码算法的特点,以非对称算法分析破译复杂度作为屏障,结合真随机数发生器的完全不可预测性,安全芯片可以这样构成:

(1)安全芯片整体架构采用可编程/可重构的算法实现架构

基于可编程/可重构的算法实现架构实现安全算法已经逐步成为了一种趋势,从用户角度看,可以实现算法的平滑升级换代,从而保护已有投资,二是可以根据不断出现的新的攻击手段,通过编程、重构来调整应对策略,并根据最新的防御技术成果来部署、实现新的防御技术措施。

(2)片内内置真随机数发生器,用于产生密钥对

安全芯片内置真随机数发生器已经成为了国内安全芯片标准对安全芯片的最基本要求,不仅真随机数可以方便地用于动态产生密钥,而且可以方便地协助算法实现电路产生随机时延、随机噪声等,从而加大功耗分析的难度等,当然,最核心的作用是随机数的不可预测性,从而确保即使反向工程完全获取其结构、电路,也无法获知其任意时刻产生的密钥值。

(3)片内实现非对称算法

安全芯片内部采用如时间随机化、RDE、MRDE、MRRE[2]、RWNAF或FWNAF防御算法[6]等技术实现非对称算法(如256位的ECC或2048位的RSA)作为保护算法,用于算法指令目标码/FPGA配置数据以及密钥的单次运行解密。众所周知,非对称算法的工作机理是采用公私钥对进行工作,加密密钥和解密密钥不同且不能相互推导得出,这样,解密不可逆向由加密操作来进行[7]。因此,可以放心地将密钥对中的一个密钥以明文方式传输到片外(或设备外)主控端,攻击者获取后也没有可行的方法来解密已经加密的指令目标码/FPGA配置数据和密钥。主要工作流程如图4所示。

图4 改进的可重构算法实现工作流程

从上述流程可见,用于加密算法指令目标码/FPGA配置数据的密钥以及加密了的指令数据/FPGA配置数据是能够被攻击者获取的,但攻击者要获得明文的指令目标码/FPGA配置文件是很困难的,除非破译ECC/RSA这样的算法或者通过综合攻击手段在芯片单次运行ECC/RSA算法时获取到密钥,显然极其困难,因此这样构成的安全芯片的安全性基础是基于非对称算法的计算复杂度。当然,因为安全芯片内部具有完整的非对称算法实现,因此可以方便地在流程中加入认证等机制和环节,使得整个系统的运行更为严密、安全。

5 结语

安全性时安全芯片的最显著区别于其他通用芯片的特色,它同密码算法一样,既敏感又重要,且伴随着分析破译技术的发展必须不断发展。进一步分析上面提出的安全芯片实现结构和流程看,两种可编程/可重构实现机制的适应性存在较大差异[8-11]。业界广泛采用的专用指令集方式实现的可编程算法实现,由于算法编程代码量小(多数在kbit级),因此编程数据的传输以及片内用非对称算法对其实现解密、存储,性能是能够容忍和接受的;但是 FPGA方式实现的可重构算法实现,由于大规模FPGA的配置数据量大(多数在兆级),因此配置数据的传输以及片内用非对称算法实现解密,性能和可操作性就存在较大问题,特别是出于安全性的需要,上兆的数据必须在片内进行解密并存放于片内SRAM中,给芯片的面积开销带来不可想象的负担。

[1]乐大珩.抗功耗攻击的密码芯片电路级防护关键技术研究[D].长沙:国防科学技术大学,2011.

[2]韩军.信息安全芯片的防御攻击技术研究[D].上海:复旦大学,2006.

[3]HEMME L.A Differential Fault Attack Against Early Rounds of (Triple) Des[C]//In: Proceeding of Workshop on Cryptographic Hardware and Embedded Systems(CHES2004).Cambridge(Boston).USA:[s.n.],2004:254-267.

[4]ZOU Zhige.Layout and Circuit Extraction[EB/OL].(2010-12-01)[2013-05-01].http://wenku.baidu.com/view/834a7487bceb19e8b8f6ba98.html.

[5]张亮,沈沛意,肖潇,等.基于Xilinx FPGA的多核嵌入式系统设计基础[M].西安:西安电子科技大学出版社,2011.

[6]张涛.面向密码芯片的旁路攻击关键技术研究[D].成都:电子科技大学,2008.

[7]宋震.密码学[M].北京:中国水利水电出版社,2002:52-53.

[8]李海斌,周玉洁.一种抗DPA攻击的DES设计[J].通信技术,2007,40(11):277-279.

[9]赵征洋,张道法.FOX算法的差分故障攻击[J].通信技术,2010,43(08):175-177,180.

[10]张修丽,陈诚.一种抗DPA的AES的设计[J].信息安全与通信保密,2009(11):63-65.

[11]蒋烨,薛质,王轶骏.非接触式 IC卡干扰式旁路攻击与防护[J].信息安全与通信保密,2008(03):52-54.

猜你喜欢

非对称功耗密钥
基于任务映射的暗硅芯片功耗预算方法
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
阀控非对称缸电液伺服系统线性自抗扰控制
非对称干涉仪技术及工程实现
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
揭开GPU功耗的面纱
数字电路功耗的分析及优化
一种面向星载计算机的功能级功耗估计方法