Uploaded by pgf112233

安全芯片之安全性分析 叶宾

advertisement
2013 年第 08 期,第 46 卷
总第 260 期
通 信 技 术
Communications Technology
Vol.46,No.08,2013
No.260,Totally
doi:10.3969/j.issn.1002-0802.2013.08.027
安全芯片之安全性分析﹡
叶
宾﹡﹡
(保密通信重点实验室,四川 成都 610041)
【摘 要】通过介绍安全芯片面临的主要安全威胁与攻击手段,以及当前安全芯片实现所采取的主要
防护措施情况,提出了安全芯片的安全性必须基于密码算法的计算复杂度或同等的运算分析复杂度,而决
不能将安全芯片的安全性完全立足于芯片本身分析的难度的思想,基于此思想,提出了一个简单可行的安
全芯片实现架构和工作流程。最后,对比两种实现方式,也指出了基于 FPGA 方式实现可重构算法安全芯片
存在的问题。
【关键词】旁路攻击;能量攻击;非对称算法;差错攻击;反向工程;可编程/可重构
【中图分类号】TP309
【文献标识码】A
【文章编号】1002-0802(2013)08-0091-04
Security Analysis of Security Chip
YE Bin
(State Key Laboratory of Secure Communication, Chengdu Sichuan 610041, China)
【Abstract】Based on briefs of the main security threats and attack means faced and the main
protective measures taken by the security chip, some thoughts are progosed that the security of
security chip must be based on the computing complexity or the equivalent analysis complexity
of the ciphering algorithm, and never on the analysis the difficulty of the chip itself. And based
on this paper puts forward a simple and feasible architecture and workflow of security chip
implementation. Finally by comparing the two implementations, this paper points out the existing
problems in realizing reconfigurable algorithm of security chip based on FPGA.
【Key words】side-channel attack; power analysis attack; asymmetric encryption; fault attack;
reverse engineering; programmable/reconfigurable
0 引言
随着信息化飞速发展的步伐,信息安全事故的
不断爆发,推动了安全保密设备的大量普及和应用。
由于安全保密设备是确保信息系统的安全,安全保
密设备自身的安全就被放到了一个十分敏感和重要
的位置,需要精心考虑。安全设备的安全性到底如
何呢?常常看到有这样一种现象出现,在系统的安
全性更多地寄托在采用的专用安全芯片上,安全芯
片安全性就成为了焦点。
安全芯片的安全性包含两层含义:一是芯片上
运行的密码算法、协议的安全性,二是安全芯片实
现的安全性。对于前者,随着多年来密码学的理论
发展和技术进步,密码算法和协议都具有比较牢固
﹡收稿日期:2013-06-01;修回日期:2013-07-08。
﹡﹡通讯作者:yebin863@gmail.com。
的数学安全性基础,不论是对称密码算法还是非对
称密码算法,其复杂度在现有计算能力下都足以抵
[1]
御数学分析攻击 。但是安全芯片实现的安全性方
面,从许多报告、方案甚至文章中可以大量发现并
不太经得起推敲,存在一些问题或漏洞,可见安全
芯片本身的安全性值得深入分析和探讨。
1 安全芯片面临的威胁
安全芯片因为其特殊功能和作用,导致从诞生
开始就受到高度关注并被重点研究,对其开展的攻
击新手段层出不穷,也推动了安全芯片的安全防护
措施快速发展,攻与防演绎出不少跌宕起伏的故事,
完全展现了魔高一尺、道高一丈的属性。
当前,针对安全芯片的攻击方式中常见且比较
有效的大概有旁路攻击(非入侵式攻击,如能量攻
91
击、差错导入攻击、电磁攻击等)、半入侵式攻击、
反向工程等。最热门的有:
(1)能量攻击
能量攻击是 P. Kocher1999 年针对攻击 DES 算
法的实现引入,逐步受到重视,目前针对能量的攻
击分为简单能量分析 (SPA,Simple Power Analysis)
攻击和差分能量分析 (DPA,Differential Power
Analysis)攻击,其理论基础是基于图 1 的模型。
图 1 旁路攻击原理
简单功耗分析易于实现,主要通过观察芯片运
行过程中的功耗轨迹来获取一些与密钥相关的有用
信息,特别适合于攻击具有分支结构的加密算法。
SPA 虽然受制于环境噪声,但是它对攻击者缩小密
钥猜测范围很有帮助,它对未作保护的 DES、AES、
ECC、RSA 等密码算法实现芯片均有不同程度的攻击
能力。差分功耗分析较为复杂,它是基于大量的芯
片功耗信息的统计分析方法,能够克服 SPA 难以避
免的测量误差和噪声影响,对非对称和对称密码系
统都有强大的攻击能力。此外,为了挫败一些常规
的防御措施,
还发展出了一些如带相关性分析的 DPA
[2]
攻击和高阶 DPA 攻击等更为强大的攻击方法 。
(2)差错攻击
差错攻击首先通过设置外在因素和环境条件改
变,比如时钟频率、电源电压、以及温度、光照、
辐射等,从而导致安全芯片内部产生错误状态,然
后收集芯片在错误状态下的信息,将其与安全芯片
正常状态下的信息相对比,就可以在一定程度上可
[3]
以获取芯片内部的敏感数据 。目前,通过以差错
导入攻击来获取密钥已经从一种理论构想转化为一
种切实可行的方法,攻击对象从最初的 RSA 等公钥
[2]
制密码实现逐步扩展到 DES 和 AES 算法实现 。
(3)反向工程
反向设计传统上被称为“自底向上”的设计方法,
也称为逆向工程。实际上反向设计与正向设计一样,
都是 IC 设计的一种技术手段,通过分析别人的设计,
学习别人的设计经验和先进的设计思想用于自己的
芯片设计中,这种方法特别是对于初学 IC 设计的人
员十分有益,通过学习和研究比较成熟的电路版图,
可以迅速增加相关电路设计经验,快速熟悉整个 IC
设计流程和完善 IC 设计知识体系。
“半导体芯片保护
法 案 (Semiconductor Chip Protection Act of
1984)”于 1984 年在美国诞生,从而在法律上确定了
反向工程的合法性,从此,针对各类芯片(特别是安
92
全芯片)的反向工程开展几乎形成了一个产业般地迅
猛发展起来,技术日趋成熟,应用范围越来越广,也
被分析破译者常用。
目前反向工程流程如图 2 所示。
图 2 反向工程流程[4]
从多个新闻及其他报道得知,目前最新的反向
工程进展情况是 45 纳米工艺的超大规模集成电路
也能够被成功地实施反向工程。
由此可见,安全芯片所处的生态圈环境较为复
杂和险恶,必须应对多种分析手段对其开展的综合
分析和破译。
2 安全芯片的安全性措施
为了应对安全芯片所面临的众多安全威胁,安
全芯片的设计、制造技术也得到了巨大发展,设计、
制造者不断根据新的分析破译技术,研究出并采用
一些新的安全防护措施来不断加强自身的安全性,
比较典型的措施有:
(1)分割实现
从系统安全实现角度考虑,将安全算法与参数
分割成两部分或多个部分,由芯片结合整机或其他
部件共同完成加密等关键功能,从而降低单个部分
被分析透后带来的整体性安全威胁。
(2)抗旁路攻击
随着旁路攻击技术的产生与发展,对传统密码
芯片设计提出了严峻挑战。国内外众多大学和科研
机构展开了针对旁路攻击,尤其是功耗攻击和防护
技术的深入研究,取得了大量科研成果及发明专利。
汇总起来主要包括:算法级的密码芯片防护技术主
要有掩码技术、指令执行随机化技术以及外部接口
编码技术等,电路级的抗功耗攻击措施的一种防护
思想是采用专门的芯片电流控制模块或者芯片供电
结构,降低芯片功耗与其所执行的密码算法操作之
间的相关性,还有一种思想是设计新型的电路逻辑
和电路工作方式,从根本上去除电路工作功耗与密
码算法中间结果之间的相关性,比如基于随机化的
思想,通过在每个逻辑单元中加入随机掩码,使单
元的瞬态功耗在统计上服从均衡分布;再如基于功
耗恒定的思想,使逻辑单元在每个时钟周期的功耗
曲线形状不随单元逻辑值的变化而变化。这些办法
[1-2]
都具有比较强的针对性和作用 。
(3)抗版图分析
通过全定制设计的方式,在版图中加入冗余逻
辑和陷阱单元,从而干扰和破坏反向工程的版图分
析;也有采用特殊涂层材料,使得化学腐蚀和剖层
环节难以实现;还有采用可编程实现算法的方式,
从而避免通过版图逆向分析的方式窃取密码算法的
电路实现细节。当然,前面提到的分割实现方式,
也导致反向工程无法得到算法逻辑的全部电路,从
而也具有抗反向工程的能力。
从业界来看,当前攻击手段中取得成果最多、
最有效的攻击方式是旁路功耗分析和实施反向工
程,而在众多防御手段中,由于采用可编程/可重构
实现算法的方式,通过编程容易实施采用指令执行
随机化技术用于抗功耗分析,可编程/可重构的实现
架构本身不包含完整的算法信息在芯片内,因此天
然具有很好的抗版图分析的能力,因此这种方式似
乎成为了一种趋势或潮流,但仅仅采用了可编程/
可重构架构实现算法就果真安全了么?
3 可重构算法实现的机理与工作流程
当前业界采用可编程/可重构实现加解密算法
的方式中,汇总起来主要有两种技术路线:一是采
用专用指令集的方式实现算法,核心思想的通过分
析各种通用算法的特点和运算逻辑,提取其共性逻
辑单元,用硬件实现这些逻辑单元,采用处理器的
方式,用专用指令来调用这些特殊的运算单元,从
而高效实现加解密算法;另一种方式是采用 FPGA 或
类似于 FPGA 的结构或方式实现,它采用逻辑单元阵
列,内部包括可配置逻辑模块 (CLB,Configurable
Logic Block)、输出输入模块 (IOB,Input Output
[5]
Block) 和内部连线(Interconnect) ,FPGA 的可
重构实际上是改变 CLB 和 IOB 的触发器状态。目前
主流 FPGA 都采用了基于 SRAM 工艺的查找表结构
(也有一些 FPGA 采用 Flash 或者熔丝与反熔丝工
艺的查找表结构,通过烧写文件改变查找表内容的
方法来实现对 FPGA 的重复配置)。
可编程/可重构方式实现算法加解密的流程如
图 3 所示。
从分析破译者的角度可见,专用指令处理器模
式和 FPGA 实现模式依然存在比较明显的薄弱环节,
尽管芯片并不包含完整的算法,但是通过反向工程,
可以完全获得片内运算单元和逻辑单元的详细信
息,这种分析的工作量远比分析破译密码算法本身
小很多个数量级。
由于算法指令的目标码或 FPGA 的配置数据来
自于片外,无论是通过设备以远端在线方式传达还
是存储在设备内部的存储器内,均十分容易被在线
在芯片输入接口处采集获得,结合芯片的反向工程
获得的电路信息,就直接获得了算法的详细实现细
节,同样,加密的算法参数和密钥也能顺利获取,
结合已经掌握的详细完整的算法及实现细节,就能
还原出明文的密钥,这样就实现了芯片的完全破译。
芯片内
芯片外
芯片上电复位
算法指令
/FPGA逻辑
编程
接收片外传来
的算法指令目
标码/FPGA配
置数据数据
构成完整的算
法实现逻辑
运行加解密
输入被加密
或解密的数
据到芯片
输出加解密
结果
结束
图 3 可重构算法实现工作流程
为此,许多实现模式中引入了一个对称算法作
为保护算法,从而增强其安全性。具体是在芯片中
预置一个软件实现的或硬件实现的对称保护算法,
先在片外将算法指令目标码或 FPGA 配置数据加密,
这样让分析破译者在接口端采集到的数据均为加密
的数据,这些加密的数据进入芯片内部后启动保护
算法解密,然后再完成算法重构或配置,从而在芯
片内构成完整的用于数据加解密的算法。这种模式
看上去更安全,但本质并没有根本改变,因为用于
保护的对称保护算法及其密钥本身在芯片内或以软
的方式输入,反向工程结合接口数据采集就一定能
获取到,从而导致这种机制的失效。
4 安全芯片实现架构建议
基于日益强大的破译分析技术和多种新兴的分
析破译手段出现的情况,笔者认为安全芯片的安全
性必须立足于密码算法或同等的运算分析复杂度,
而决不能将安全芯片的安全性完全立足于芯片本身
分析的难度,即采用增加冗余逻辑、增大芯片规模、
加大剖片等环节难度、采用特殊工艺这样的一些手
段上,因为这些手段带来的分析工作量无法与解决
密码学的数学分析难度相提并论。
基于此原则,为确保密码算法与安全芯片的安全,
笔者认为当前充分利用非对称密码算法的特点,以非
对称算法分析破译复杂度作为屏障,结合真随机数发
生器的完全不可预测性,安全芯片可以这样构成:
(1)安全芯片整体架构采用可编程/可重构的
算法实现架构
基于可编程/可重构的算法实现架构实现安全
算法已经逐步成为了一种趋势,从用户角度看,可
以实现算法的平滑升级换代,从而保护已有投资,
二是可以根据不断出现的新的攻击手段,通过编程、
重构来调整应对策略,并根据最新的防御技术成果
来部署、实现新的防御技术措施。
(2)片内内置真随机数发生器,用于产生密钥对
安全芯片内置真随机数发生器已经成为了国内安
全芯片标准对安全芯片的最基本要求,不仅真随机数
93
可以方便地用于动态产生密钥,而且可以方便地协助
算法实现电路产生随机时延、随机噪声等,从而加大
功耗分析的难度等,当然,最核心的作用是随机数的
不可预测性,从而确保即使反向工程完全获取其结构、
电路,也无法获知其任意时刻产生的密钥值。
(3)片内实现非对称算法
安全芯片内部采用如时间随机化、RDE、MRDE、
[2]
[6]
MRRE 、RWNAF 或 FWNAF 防御算法 等技术实现非对
称算法(如 256 位的 ECC 或 2048 位的 RSA)作为保
护算法,用于算法指令目标码/FPGA 配置数据以及
密钥的单次运行解密。众所周知,非对称算法的工
作机理是采用公私钥对进行工作,加密密钥和解密
密钥不同且不能相互推导得出,这样,解密不可逆
[7]
向由加密操作来进行 。因此,可以放心地将密钥
对中的一个密钥以明文方式传输到片外(或设备外)
主控端,攻击者获取后也没有可行的方法来解密已
经加密的指令目标码/FPGA 配置数据和密钥。主要
工作流程如图 4 所示。
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].成都:
图 4 改进的可重构算法实现工作流程
注:随机数发生器产生的密钥对、解密的算法指
令目标码/FPGA 配置数据、数据加密密钥都暂存在
片内 SRAM 中
从上述流程可见,用于加密算法指令目标码
/FPGA 配置数据的密钥以及加密了的指令数据/FPGA
配置数据是能够被攻击者获取的,但攻击者要获得
明文的指令目标码/FPGA 配置文件是很困难的,除
非破译 ECC/RSA 这样的算法或者通过综合攻击手段
在芯片单次运行 ECC/RSA 算法时获取到密钥,显然
极其困难,因此这样构成的安全芯片的安全性基础
是基于非对称算法的计算复杂度。当然,因为安全
芯片内部具有完整的非对称算法实现,因此可以方
便地在流程中加入认证等机制和环节,使得整个系
统的运行更为严密、安全。
94
电子科技大学,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.
作者简介:
叶
宾(1968-)
,男,工学硕士,高级工程师,主要研
究方向为安全芯片。
Download