面向FPGA硬件后门检测的内嵌RON优化布局方法转让专利

申请号 : CN201910339157.X

文献号 : CN110674610B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王坚张海龙李桓杨鍊陈哲郭世泽

申请人 : 电子科技大学

摘要 :

本发明公开了一种面向FPGA硬件后门检测的内嵌RON优化布局方法。本发明可以得到一种环形振荡器网络的布局,从而给出适合于后门检测的环形振荡器数量,使得片上集成环形振荡器网络的开销得到了控制,同时,对于规模处于设定阈值以内的硬件后门,本发明具有良好的后门检测正确率。

权利要求 :

1.一种面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,包括以下步骤:S1、测定原始电路的RON中RO的覆盖半径;

S2、根据RO的覆盖半径对RO进行优化布局;

所述步骤S1的具体步骤为:

S11、将一个RO放置在FPGA上,使其周围不存在其他电路,对该RO的基准频率进行n次测量,将初始测量结果记为F0,记初始测量结果F0的均值为μ0、方差为σ;

S12、生成一个线性反馈移位寄存器作为硬件后门模拟电路;

S13、初始化i=1;

S14、将硬件后门模拟电路放置在与RO相距i个Slice的位置,并对RO的频率进行n次测量,将测量结果记为Fi,记测量结果Fi的均值为μi、方差为σ;

S15、当|μ0‑μi|≥σ时,进入步骤S16,否则进入步骤S17;

S16、令i加1,并返回步骤S14;

S17、通过初始测量结果F0和测量结果Fi计算RO的覆盖半径。

2.根据权利要求1所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S17中RO覆盖半径的计算公式为:r=max({i||μ0‑μi|≥σ})上式中,r为RO的覆盖半径。

3.根据权利要求2所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S2的具体步骤为:S21、当 时,将原始电路C顺时针旋转90°,并进入步骤S22,否则直接进入步骤S22;

x为电路C的横向距离,y为电路C的纵向距离;

S22、将电路C通过半径为r的圆的内接正六边形进行网格划分;

S23、将RO布置于电路边界内的圆心处;

S24、当y/dv的余数为0或0.5dv时,进入步骤S25,否则,将圆心处于电路上边界外部的圆向下平移,使圆心处于电路上边界处,并将RO放置于该圆心处,进入步骤S25;

dv为RO的行间距,取值为

S25、当0

Xr为最右列非边缘RO的横坐标,取值为 dh为RO的列间距,取值为1.5r;

S26、当y/dv的余数大于0且小于0.5dv时,将右边界外的圆心向左平移,并将RO放置于该圆心处,否则,将圆心处于电路右边界外最上方的圆移除,将右边界外的其他圆心向左上方平移,并将RO放置于该圆心处;

S27、当 时,将电路C逆时针旋转90°至原始位置,并结束本方法,否则直接结束本方法。

4.根据权利要求3所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S22中网格划分的具体步骤为:以电路左下角为原点,以电路左边界为y轴,以电路下边缘为x轴,将一个正六边形水平放置,即上下两条边水平,将下方的底边对齐x轴,并将底边的左顶点置于原点,以此正六边形为基准,确定邻接正六边形,直到电路被完全覆盖。

5.根据权利要求3所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S23中RO的布置数量和位置为:将位于电路内部最靠近y轴的一列圆设为第一列,向右列数依次增加;

当RO处于奇数列时,非边缘RO的位置为(0.5r+mo·2dh,0.5dv+no·dv),mo=0,1,…,Mo‑

1,no=0,1,…,No‑1;

Mo为非边缘RO的奇数列的数量,取值为 No为奇数列非边缘RO的数量,取值为当RO处于偶数列时,非边缘RO的位置为(2r+me·2dh,ne·dv),me=0,1,…,Me‑1,ne=0,

1,…,Ne‑1;

Me为非边缘RO的偶数列的数量,取值为 Ne为偶数列非边缘RO的数量,取值为

6.根据权利要求5所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S24中RO放置的位置为:

7.根据权利要求5所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S26中右边界外的圆心向左平移至:

8.根据权利要求7所述的面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,所述步骤S26中其他圆心向左上方平移至:

说明书 :

面向FPGA硬件后门检测的内嵌RON优化布局方法

技术领域

[0001] 本发明涉及硬件安全技术领域,具体涉及一种面向FPGA硬件后门检测的内嵌RON优化布局方法。

背景技术

[0002] 近年来,网络空间的安全问题逐渐受到重视,其中对硬件安全的关注度也不断提升。硬件后门是最为有效的硬件攻击手段之一,这样的攻击可以存在于硬件电路生命周期
的不同阶段,通过对硬件电路的RTL代码、网表等进行修改,从而加入恶意功能,在电路运行
到特定情况时产生信息泄露、拒绝服务等后果。硬件后门的被攻击者精心设计,通常激活难
度高且规模小,可以逃避传统的电路故障测试,因此,针对硬件后门检测的研究十分重要。
[0003] 基于环形振荡器网络(RON)的硬件后门检测方法被提出,利用环形振荡器(RO)的频率对电路信号翻转敏感的特性,利用多个RO组成环形振荡器网络,并分布于电路的不同
位置。将RON集成于电路,对电路输入测试向量,测定各个RO的频率,从中可以分析有后门电
路与无后门电路之间的区别。
[0004] 由于RON是集成于电路上的,对原本的电路而言是额外引入的,因此需要尽量控制其开销。现有的RON研究中,大多研究者都直接使用m×n个RO,并将它们在电路上放置为m行
n列的矩形阵列,极少数研究中使用了其他的RON布局结构,如32个分布在电路对角线的RO。

发明内容

[0005] 针对现有技术中的上述不足,本发明提供的一种面向FPGA硬件后门检测的内嵌RON优化布局方法解决了RON开销较大和硬件后门检测率较低的问题。
[0006] 为了达到上述发明目的,本发明采用的技术方案为:一种面向FPGA硬件后门检测的内嵌RON优化布局方法,包括以下步骤:
[0007] S1、测定原始电路的RON中RO的覆盖半径;
[0008] S2、根据RO的覆盖半径对RO进行优化布局。
[0009] 进一步地:所述步骤S1的具体步骤为:
[0010] S11、将一个RO放置在FPGA上,使其周围不存在其他电路,对该RO的基准频率进行n次测量,将初始测量结果记为F0,记初始测量结果F0的均值为μ0、方差为σ;
[0011] S12、生成一个线性反馈移位寄存器作为硬件后门模拟电路;
[0012] S13、初始化i=1;
[0013] S14、将硬件后门模拟电路放置在与RO相距i个Slice的位置,并对RO的频率进行n次测量,将测量结果记为Fi,记测量结果Fi的均值为为μi、方差为σ;
[0014] S15、当|μ0‑μi|≥σ时,进入步骤S16,否则进入步骤S17;
[0015] S16、令i加1,并返回步骤S14;
[0016] S17、通过初始测量结果F0和测量结果Fi计算RO的覆盖半径。
[0017] 进一步地:所述步骤S17中RO覆盖半径的计算公式为:
[0018] r=max({i||μ0‑μi|≥σ})
[0019] 上式中,r为RO的覆盖半径。
[0020] 进一步地:所述步骤S2的具体步骤为:
[0021] S21、当 时,将原始电路C顺时针旋转90°,并进入步骤S22,否则直接进入步骤S22;
[0022] x为电路C的横向距离,y为电路C的纵向距离;
[0023] S22、将电路C通过半径为r的圆的内接正六边形进行网格划分;
[0024] S23、将RO布置于电路边界内的圆心处;
[0025] S24、当y/dv的余数为0或0.5dv时,进入步骤S25,否则,将圆心处于电路上边界外部的圆向下平移,使圆心处于电路上边界处,并将RO放置于该圆心处,进入步骤S25;
[0026] dv为RO的行间距,取值为
[0027] S25、当0
[0028] Xr为最右列非边缘RO的横坐标,取值为 dh为RO的列间距,取值为1.5r;
[0029] S26、当y/dv的余数大于0且小于0.5dv时,将右边界外的圆心向左平移,并将RO放置于该圆心处,否则,将圆心处于电路右边界外最上方的圆移除,将右边界外的其他圆心向左
上方平移,并将RO放置于该圆心处;
[0030] S27、当 时,将电路C逆时针旋转90°至原始位置,并结束本方法,否则直接结束本方法。
[0031] 进一步地:所述步骤S22中网格划分的具体步骤为:
[0032] 以电路左下角为原点,以电路左边界为y轴,以电路下边缘为x轴,将一个正六边形水平放置,即上下两条边水平,将下方的底边对齐x轴,并将底边的左顶点置于原点,以此正
六边形为基准,确定邻接正六边形,直到电路被完全覆盖。
[0033] 进一步地:所述步骤S23中RO的布置数量和位置为:
[0034] 将位于电路内部最靠近y轴的一列圆设为第一列,向右列数依次增加;
[0035] 当RO处于奇数列时,非边缘RO的位置为(0.5r+mo·2dh,0.5dv+no·dv),mo=0,1,…,Mo‑1,no=0,1,…,No‑1;
[0036] Mo为非边缘RO的奇数列的数量,取值为 No为奇数列非边缘RO的数量,取值为
[0037] 当RO处于偶数列时,非边缘RO的位置为(2r+me·2dh,ne·dv),me=0,1,…,Me‑1,ne=0,1,…,Ne‑1;
[0038] Me为非边缘RO的偶数列的数量,取值为 Ne为偶数列非边缘RO的数量,取值为
[0039] 进一步地:所述步骤S24中RO放置的位置为:
[0040]
[0041] 进一步地:所述步骤S26中右边界外的圆心向左平移至:
[0042]
[0043] 上式中,Xr为最右列的非边缘RO的横坐标,取值为
[0044] 进一步地:所述步骤S26中其他圆心向左上方平移至:
[0045]
[0046] 本发明的有益效果为:本发明可以得到一种环形振动网络的布局,从而给出适合于后门检测的环形振荡器数量,使得片上集成环形振荡器网络的开销得到了控制,同时,对
于规模处于设定阈值以内的硬件后门,本发明具有良好的后门检测正确率。

附图说明

[0047] 图1为本发明总流程图;
[0048] 图2为本发明中步骤S1的流程图;
[0049] 图3为本发明中步骤S2的流程图;
[0050] 图4为本发明中环形振荡器的布局示意图;
[0051] 图5为本发明实施例中硬件后门检测流程示意图;
[0052] 图6为本发明实施例中其他3种布局方法示意图;
[0053] 图7为本发明与其他3种布局方法所需环形振荡器数量的条形图;
[0054] 图8为本发明与其他3种布局方法的后门检测结果示意图。

具体实施方式

[0055] 下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,
只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易
见的,一切利用本发明构思的发明创造均在保护之列。
[0056] 如图1所示,一种面向FPGA硬件后门检测的内嵌RON优化布局方法,其特征在于,包括以下步骤:
[0057] S1、测定原始电路的RON中RO的覆盖半径。如图2所示,具体步骤为:
[0058] S11、将一个RO放置在FPGA上,使其周围不存在其他电路,对该RO的基准频率进行n次测量,将初始测量结果记为F0,记初始测量结果F0的均值为μ0、方差为σ;
[0059] S12、生成一个线性反馈移位寄存器作为硬件后门模拟电路,设定一个RO的后门预测阈值t,表示RO最小可以检测到的后门在电路中的比例,所述线性反馈移位寄存器所占用
的资源规模为 其中S为原始电路C占用的资源规模;
[0060] S13、初始化i=1;
[0061] S14、将硬件后门模拟电路放置在与RO相距i个Slice的位置,并对RO的频率进行n次测量,将测量结果记为Fi,记测量结果Fi的均值为为μi、方差为σ;
[0062] S15、当|μ0‑μi|≥σ时,进入步骤S16,否则进入步骤S17;
[0063] S16、令i加1,并返回步骤S14;
[0064] S17、通过初始测量结果F0和测量结果Fi计算RO的覆盖半径。覆盖半径的计算公式为:
[0065] r=max({i||μ0‑μi|≥σ})
[0066] 上式中,r为RO的覆盖半径。
[0067] S2、根据RO的覆盖半径对RO进行优化布局。如图3所示,具体步骤为:
[0068] S21、当 时,将原始电路C顺时针旋转90°,并进入步骤S22,否则直接进入步骤S22;
[0069] x为电路C的横向距离,y为电路C的纵向距离;
[0070] S22、将电路C通过半径为r的圆的内接正六边形进行网格划分;网格划分的具体步骤为:
[0071] 以电路左下角为原点,以电路左边界为y轴,以电路下边缘为x轴,将一个正六边形水平放置,即上下两条边水平,将下方的底边对齐x轴,并将底边的左顶点置于原点,以此正
六边形为基准,确定邻接正六边形,直到电路被完全覆盖。
[0072] S23、将RO布置于电路边界内的圆心处;RO的布置数量和位置为:
[0073] 将位于电路内部最靠近y轴的一列圆设为第一列,向右列数依次增加;
[0074] 当RO处于奇数列时,非边缘RO的位置为(0.5r+mo·2dh,0.5dv+no·dv),mo=0,1,…,Mo‑1,no=0,1,…,No‑1;
[0075] Mo为非边缘RO的奇数列的数量,取值为 No为奇数列非边缘RO的数量,取值为
[0076] 当RO处于偶数列时,非边缘RO的位置为(2r+me·2dh,ne·dv),me=0,1,…,Me‑1,ne=0,1,…,Ne‑1;
[0077] Me为非边缘RO的偶数列的数量,取值为 Ne为偶数列非边缘RO的数量,取值为
[0078] S24、当y/dv的余数为0或0.5dv时,进入步骤S25,否则,将圆心处于电路上边界外部的圆向下平移,使圆心处于电路上边界处,并将RO放置于该圆心处,进入步骤S25;
[0079] dv为RO的行间距,取值为
[0080] RO放置的位置为:
[0081]
[0082] S25、当0
[0083] Xr为最右列非边缘RO的横坐标,取值为 dh为RO的列间距,取值为1.5r;
[0084] S26、当y/dv的余数大于0且小于0.5dv时,将右边界外的圆心向左平移,并将RO放置于该圆心处,右边界外的圆心向左平移至:
[0085]
[0086] 上式中,Xr为最右列的非边缘RO的横坐标,取值为
[0087] 否则,将圆心处于电路右边界外最上方的圆移除,将右边界外的其他圆心向左上方平移,并将RO放置于该圆心处;其他圆心向左上方平移至:
[0088]
[0089] S27、当 时,将电路C逆时针旋转90°至原始位置,并结束本方法,否则直接结束本方法。
[0090] 图4展示了根据不同的电路边长条件对RO的布局示意图,其中正方形圆心为边缘RO的位置,圆形圆心为非边缘RO的位置,圆周表示对应圆心位置RO的覆盖范围,图4(a)、图4
(b)、图4(c)和图4(d)分表表示了4种不同情况下,圆心的移动情况。
[0091] 本发明用Xilinx Artix‑7FPGA(XC7A35T‑1FTG256C)实施实验。实验中,本发明使用5阶RO,在RO计数期间对被测电路施加1000次测试向量,并计算这段时间内RO的频率。每
个RO测量的频率都经UART接口传输到PC上用于后门检测。
[0092] 实验中,后门检测流程如图5所示,将各RO的频率测量值通过主成分分析(PCA)提取特征,并输入BP神经网络进行训练及分类。神经网络的分类正确率即为后门检测的正确
率。本发明采集700组无后门电路和700组植入硬件后门电路的数据用于神经网络的训练,
再对另外300组无后门电路和300组植入硬件后门电路的数据进行测试。此外,在通过本发
明测量RO的覆盖半径时,将后门模拟电路的比例设定为1%,表示可以有效检测到比例高于
1%的硬件后门。
[0093] 实验采用广受认可的Trust‑Hub网站提供的10个测试电路,总结在表1中。
[0094] 表1实验测试电路
[0095]
[0096] 实验中,我们除了使用本发明提出的布局方法以外,还选取了3种其他文献中出现的方法作为对比,分别是:低密度型,8个RO排列为4行2列的矩形阵列;高密度型,12个RO排
列为4行3列的矩形阵列;X型,将32个RO布局在电路的对角线上。三种布局如图6所示。
[0097] 图7展示了4种方案下,各个测试电路中所需的环形振荡器数量。本发明的方案下不同测试电路所使用的RO数量是不同的,而其他方案都是固定的。总体来说,我们的方案所
需的RO数量高于低密度型,远低于X型,而与高密度型方案相比,5个电路中我们的方法所需
RO数量与之持平,3个电路中比之更少,2个电路中更多。
[0098] 图8展示了4种方案下,对不同测试电路的后门检测正确率。可以看到,对于大多数的测试电路,本发明的后门检测率都有提升。与低密度型布局和X型布局相比,本发明的后
门检测率都要更高。与高密度型相比,本发明在9个测试电路中都取得了更高的检测率。