310 likes | 418 Views
一 种缩短硬件木马检测时间的新技术. 史亚峰 天津大学 ASIC 设计中心 2012.3.20. 定义. 硬件木马:所谓硬件木马就是指在集成电路设计与制造的过程中对原始电路进行的恶意篡改或植入的微小破坏电路。 特性: 1. 具有破坏性 2 . 具有隐蔽性,不易被发现 3 . 只在极其罕见的条件下才被激活 4. 主要分布在那些翻转概率较小的线网周围 5. 对芯片面积、功耗和延时影响小. 背景. 1 . 集成电路产业飞速发展,分工越来越细,设计与制造分离,导致集成电路设计与制造过程中参与的人员与组织不可控,第三方组织的可靠性值得 商榷,很可能被地方所利用
E N D
一种缩短硬件木马检测时间的新技术 史亚峰 天津大学ASIC设计中心 2012.3.20
定义 • 硬件木马:所谓硬件木马就是指在集成电路设计与制造的过程中对原始电路进行的恶意篡改或植入的微小破坏电路。 • 特性: • 1.具有破坏性 • 2.具有隐蔽性,不易被发现 • 3.只在极其罕见的条件下才被激活 • 4.主要分布在那些翻转概率较小的线网周围 • 5.对芯片面积、功耗和延时影响小
背景 • 1.集成电路产业飞速发展,分工越来越细,设计与制造分离,导致集成电路设计与制造过程中参与的人员与组织不可控,第三方组织的可靠性值得商榷,很可能被地方所利用 • 2.使用第三方EDA工具,例如综合工具以及综合库等是否可靠,是否会对综合结果植入恶意结构 • 3.第三方IP的使用 • 4.掩膜生产商的可信度? • 5.代工厂的可信度?
问题? • 随之而来的问题 如何对芯片进行验证,排除被嵌入硬件木马的可能呢?
硬件木马检测技术 • 传统的硬件木马检测技术: • 1.输入激励,观察错误输出 • 特点:耗时长,成本高,存在覆盖率问题以及输入端的可控制性和输出端的可观察性。 • 2.旁道信号分析 • 特点:通过观察木马电路对芯片功耗、延时等旁路信号的影响检测硬件木马,耗时长,存在木马激活程度以及木马和电路规模相对大小问题。
影响硬件木马检测的因素 • 1.工艺偏差 • 2.环境差异 由于硬件木马相对于原始电路来说一般规模比较小,它对电路旁路信号的影响很可能被工艺偏差或环境差异所掩盖。 • 为了检测出硬件木马,我们需要增加硬件木马对原始电路的影响,即增加木马的激活度。
问题转换 • 硬件木马的活跃程度直接影响到了硬件木马检测速度,也就是 硬件木马的检测时间∝硬件木马的激活时间 缩短硬件木马检测时间 = 缩短硬件木马激活时间 • 因此可以提出一种方法,这种方法能够有效缩短硬件木马激活时间,就可以有效提高硬件木马的检测效率
传统的木马检测方法中,功耗分析法使用最为广泛,因此,因此要想加速硬件木马的检测速度,就需要提出一种方法,这种方法能够增加木马的激活度,进而增加硬件木马对芯片功耗的影响,亦或是可以使规模较小的木马被完全激活并产生错误输出。传统的木马检测方法中,功耗分析法使用最为广泛,因此,因此要想加速硬件木马的检测速度,就需要提出一种方法,这种方法能够增加木马的激活度,进而增加硬件木马对芯片功耗的影响,亦或是可以使规模较小的木马被完全激活并产生错误输出。 • 提出了一种加速木马激活程度的方法,就是在电路中插入扫描触发器(dSFF)
木马的结构 • 举例:
基本概念 • 木马逻辑锥:连接到木马门单元输入端的组合逻辑电路 • P0:某线网位置出现逻辑0的概率 • P1:某线网位置出现逻辑1的概率 • 翻转概率:某线网位置发生由逻辑0到1或由1到0的逻辑翻转的概率Pj=P1*P0
实验1 • 目标电路:Trojan1和Trojan2 Trojan1:逻辑锥较大,包含门数多,级数多; Trojan2:逻辑锥较小,包含门数少,级数少
实验1 • 仿真过程:使用1000组随机测试向量施加到目标电路输入端,观察木马输出端翻转次数 • 仿真结果: • Trojan1的Tg1门输出端发生67次翻转 • Trojan2的Tg3门输出端发生421次翻转 • 结论:木马逻辑锥的结构、级数、输入信号数量以及木马门单元的类型能够影响硬件木马中线网翻转概率
实验2 • 目标电路: (a)包含与门和或门 (b)只包含与门 • GD模型:线网发生一次翻转所需时钟周期数为1/P-1;其中P为线网位置发生翻转的概率。
实验2 • 实验过程:使用1000组随机测试向量施加到目标电路输入端,观察木马输出端发生一次翻转所需时钟周期数 • 实验结果及结论: 仿真结果与通过GD模型计算得到的结果近似相等; 木马输出端翻转概率与逻辑锥中门的类型相关
实验3 • 目标电路:ISCAS’89 s298和s344 • S298:输入信号及触发器数较少; • S344:输入信号及触发器数较多,二者门数相近
实验3 • 实验过程:产生1000组随机测试向量,施加到目标电路输入端,记录电路中发生的翻转次数。 • 实验结果:s344电路中检测到56560次翻转,而s298则发生了44600次翻转。 • 结论:s344和s298包含的门单元数基本相等,但是前者包含的输入信号和触发器数量要比后者要多,仿真结果是s344翻转次数要比s298多,这从侧面上反映了插入冗余的触发器可以起到提高电路翻转概率的作用。
引发的问题 如何插入冗余触发器? • 前面我们已经看到,插入冗余触发器可以提高电路翻转概率,进而缩短木马的验证时间。那么如何插入硬件木马,在提高硬件木马验证效率的同时,又不会对原始电路造成影响是首当其冲的问题。
插入冗余触发器 • 依据翻转概率Pj=P1*P0可知,当P1≈P0时,翻转概率取最大值,而实际的电路中某线网位置出现逻辑1(或0)的概率要远远大于逻辑0(或1)的概率,因此就会造成该位置的翻转概率很小。 • 解决的办法是: • P0>>P1时,引入或门,它可以降低该处逻辑0的概率 • P1>>P0时,引入与门,它可以降低该处逻辑1的概率
实验4 • 目标电路:将实验2中的木马通过dSFF-OR插入dSFF得到新目标电路
实验4 • 实验过程:产生1000组随机测试向量施加到新的目标电路,观察记录输出端发生一次翻转所需要的时钟周期,同时使用GD模型计算发生一次翻转所需要的时钟周期 • 实验结果:仿真和计算结果显示插入dSFF后,输出端翻转概率增加 • 结论:仿真结果表明通过插入冗余触发器能够增加线网位置翻转概率。
冗余触发器插入程序 • 设置翻转概率阈值Pth • 设置当前设计 • 计算电路中所有线网位置逻辑翻转概率 • 找出翻转概率大于Pth的线网,组成线网序列HighTransitionNets • 设置排序方式为递增模式 • 将翻转概率大于Pth的线网排序 • 分离出翻转概率小于Pth的线网,组成线网序列LowTransitionNets • 统计翻转概率小于Pth的线网数目 • 取出排序后的HighTransitionNets序列中最前面的线网作为dSFF插入目标线网 • 根据目标线网位置出现0或1的概率大小决定引入的逻辑门类型 • 在目标线网位置通过逻辑门插入dSFF • 更新设计为插入dSFF后的电路 • 计算更新的设计中所有线网位置翻转概率 • 分离出翻转概率小于Pth的线网 • 统计翻转概率小于Pth的线网数,判断该线网数是否小于插入dSFF前小于Pth的线网数 • 如果小于Pth的线网数在减少,则将当前设计更新为插入dSFF后的设计 • 判断小于Pth的线网数是否大于零,如果大于零则返回第9步继续进行dSFF插入操作,否则输出最终设计
程序实现 • 模块划分: • 1.计算各线网位置翻转概率(TetraMAX) • 2.执行冗余触发器插入操作(Perl语言) • 3.产生随机测试向量,并记录和分析各向往位置翻转情况(VCS)
实验6 • 还有没有解决的问题,如何设定Pth? • 为此进行以下仿真实验,分别记录不插入dSFF以及插入dSFF且Pth分别为10e-05、10e-04、 10e-03、 10e-02 • 目标电路:分别插入了四种不同的木马电路的s38417测试电路。 • 实验中主要记录参数:1.电路中总的翻转概率 • 2.LT、MT线网中翻转概率 • 3.木马电路中的翻转次数 • 4.木马翻转次数占总翻转次数的比率TCA • 5.产生错误输出的次数(即木马完全激活的次数)POC
实验6 • 实验过程:产生1000组随机测试向量施加到测试电路中,并根据设定的Pth进行dSFF插入,记录电路中翻转情况
实验6 • 实验结论:从中可以看出,插入冗余触发器后,TCA参数在增加,也就是木马对电路的影响在增加。从Pth由10e-05增加到10e-04时,LT、MT以及TCA和POC都在增加,但是继续增加到10e-03时,电路总的翻转次数反而在减少。这个实验也说明了增加Pth能够增加木马对电路的影响,但是Pth并不是越大越好,而是需要选定合适的Pth,具体如何选择Pth,需要综合考虑插入dSFF带来的面积和延时开销以及最大木马激活度去选择最优值。
小结 • 电路的基本输入和触发器数目决定了电路的翻转频率,通过插入冗余触发器可以有效提高木马的激活度,从而增大木马对芯片功耗的影响,从而提高木马的检测效率。 • 适用范围:适用于木马输入信号来自于原始电路的线网,对规模较小的木马效果尤为显著,而对于规模较大的木马则可以通过旁道信号分析进行检测。