[0007] 本发明在逻辑加密的
基础思想上,提出一种基于电路关键节点的逻辑加密方法,通过在电路中的关键节点插入秘钥门,实现密钥正确与错误两种情况下的输出之间存在着50%的汉明距离。
[0008] 本发明采用基于电路关键节点的逻辑加密方法,首先将RTL电路综合成网表电路,通过低活性节点
算法寻找
定位电路的低活性节点,通过分析电路背景以及电路的结构寻找敏感节点,进而确定电路中的关键节点,在关键节点的位置添加秘钥门,秘钥门电路和输入的秘钥相关联,最终实现密钥正确与错误两种情况下的输出之间存在着50%的汉明距离。
[0009] 参考文献
[0010] [1]M.Yasin,J.J.Rajendran,O.Sinanoglu,and R.Karri,“On improving the security of logic locking,”IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,vol.35,no.9,pp.1411–1424,2016.
[0011] [2]Y.Shen,A.Rezaei,and H.Zhou“, Sat-based bit-flipping attack on logic encryptions,”in 2018 Design,Automation Test in Europe Conference Exhibition(DATE),March 2018,pp.629–632.
[0012] [3]R.Karmakar,H.Kumar,and S.Chattopadhyay,“On finding suitable key-gate locations in logic encryption,”in 2018 IEEE International Symposium on Circuits and Systems(ISCAS),May 2018,pp.1–5.
[0013] [4]P.Taatizadeh and N.Nicolici“, An automated sat-based method for the design of on-chip bit-flip detectors,”in IEEE/ACM International Conference on Computer-aided Design,2017.
[0014] [5]R.Karmakar,S.Chattopadhyay,and R.Kapur,“Enhancing security of logic encryption using embedded key generation unit,”in 2017International Test Conference in Asia(ITC-Asia),Sept 2017,pp.131–136.
[0015] [6]J.Rajendran and S.Garg,Logic Encryption,2017.
[0016] [7]Z.Hai,R.Jiang,and S.Kong,“Cycsat:Sat-based attack on cyclic logic encryptions,”in 2017 IEEE/ACM International Conference on Computer-Aided Design(ICCAD),2017.
[0017] [8]O.Zaikin and S.Kochemazov,“An improved sat-based guess-anddetermine attack on the alternating step generator,”2017。
发明内容
[0018] 为克服
现有技术的不足,阻止集成电路的设计被攻击者获取,本发明旨在提出一种基于电路关键节点的逻辑加密方法。该方法通过定位网表电路中的关键节点,并将秘钥门电路插入到关键节点位置中,待全部位置均插入秘钥门之后,再次将网表进行综合,实现密钥正确与错误两种情况下的输出之间存在着50%的汉明距离,最终强化集成电路设计的硬件安全属性。为此,本发明采取的技术方案是,基于电路关键节点的逻辑加密方法,通过定位网表电路中的关键节点,并将秘钥门电路插入到关键节点位置中,待全部位置均插入秘钥门之后,再次将网表进行综合,实现密钥正确与错误两种情况下的输出之间存在着50%的汉明距离,最终强化集成电路设计的硬件安全属性。
[0019] 所述关键节点包括低活性节点和敏感节点,对于低活性节点,指的是翻转概率和切换概率均低于阈值Pth,翻转概率Pt表示节点的稀有值的出现概率:
[0020]
[0021] 其中一个节点为0和1的概率分别为P0和P1,T0为节点出现逻辑0的时间,T1为节点出现逻辑1的时间,T为测试时间;
[0022] 稀有值的概率可以用节点的切换概率Pc来表示:
[0023]
[0024] 其中TC为节点的切换次数,TCtot为组合
逻辑电路施加的测试向量个数或者时序电路施加的时钟周期个数;
[0025] 低活性节点的确定关键在于阈值Pth的大小,要合理设置Pth,需要综合考虑两类,分别是验证类和电路参数类,验证相关的参数包含两个子参数:1)每个集成电路的检测时间TAu;2)测试时钟的时钟周期TTester;
[0026] 电路相关参数是指能够描述电路特性的参数,它包括三个子参数:1)木
马电路所需的翻转次数NTr;2)线网位置每发生一次翻转所需时钟周期数,该参数可以使用GD模型进行建模;3)电路激活程度Cactivity;
[0027] 验证类参数和电路类参数之间的相互关系公式如下:
[0028]
[0029] TAu是用户自定义参数,它取决于产品的
上市时间以及该产品的应用环境对其可靠性的要求程度。
[0030] 具体步骤细化如下:
[0031] 步骤1:将RTL代码综合成网表电路,分析电路结构,确定电路的敏感节点:读取并分析电路的结构,依据电路的应用背景,确定电路的重要防护对象,并定位电路的敏感节点集合;
[0032] 步骤2:敏感节点完备性分析:分析电路的敏感节点是否完备,如果不完备,则重新跳转到步骤1,继续分析,获取母本电路的敏感节点;
[0033] 步骤3:建立仿真验证平台,确定电路的低活性节点:基于电路的仿真验证平台进行随机仿真,分析电路的仿真过程文件,计算电路内部节点的翻转情况,包括:出现逻辑“0”的概率P0、出现逻辑“1”的概率P1和翻转次数Tc,依据翻转概率的阈值Pth,确定电路中的低活性节点集合;
[0034] 步骤4:低活性节点的完备性分析:分析已得到的低活性节点集合,并返回步骤3继续随机化分析,验证低活性节点是否完备,如若不完备,则进一步完善电路的低活性节点集合;
[0035] 步骤5:确定电路的关键节点:依据步骤1得到的敏感节点和步骤2得到的低活性节点得到电路的关键节点集合;
[0036] 步骤6:将秘钥门植入到关键节点位置,再次综合成网表电路;
[0037] 步骤7:利用密钥正确与错误两种情况下的输出之间的汉明距离评估逻辑加密的有效性。
[0038] 本发明的特点及有益效果是:
[0039] (1)本发明通过对电路的关键节点植入秘钥门,电路中的有效信息通过秘钥门被隐藏,有效地解决了电路设计被剽窃等硬件安全问题;
[0040] (2)基于密钥正确与错误两种情况下的输出之间的汉明距离,对逻辑加密的有效性进行评估,在满足汉明距离接近50%的前提下,优化电路的面积,最终实现对设计的电路的有效保护。
附图说明:
[0041] 图1植入秘钥门的逻辑加密电路。图中:a原始电路,b密钥0电路,c密钥1电路。
具体实施方式
[0043] 由于集成电路设计正逐步走向无厂化,使得集成电路在
制造过程中会存在IC伪造,过量生产和知识产权剽窃等安全威胁。为阻止集成电路的设计被攻击者获取,本发明提出一种基于电路关键节点的逻辑加密方法。该方法通过定位网表电路中的关键节点,并将秘钥门电路插入到关键节点位置中,待全部位置均插入秘钥门之后,再次将网表进行综合,实现密钥正确与错误两种情况下的输出之间存在着50%的汉明距离,最终强化集成电路设计的硬件安全属性。
[0044] 本发明的完整技术方案主要包括两部分,分别是关键节点的寻找与定位和逻辑加密秘钥门的植入。
[0045] 关键节点包括低活性节点和敏感节点,对于低活性节点,指的是翻转概率和切换概率均低于阈值。翻转概率Pt表示节点的稀有值的出现概率:
[0046]
[0047] 其中一个节点为0和1的概率分别为P0和P1,T0为节点出现逻辑0的时间,T1为节点出现逻辑1的时间,T为测试时间。
[0048] 稀有值的概率可以用节点的切换概率Pc来表示:
[0049]
[0050] 其中TC为节点的切换次数,TCtot为组合逻辑电路施加的测试向量个数或者时序电路施加的时钟周期个数。
[0051] 低活性节点的确定关键在于阈值Pth的大小,要合理设置Pth,需要综合考虑几个参数。这些参数可以分为两类,分别是验证类和电路参数类。验证相关的参数包含两个子参数:1)每个集成电路的检测时间TAu。2)测试时钟的时钟周期TTester。电路相关参数是指能够描述电路特性的参数,它包括三个子参数:1)木马电路所需的翻转次数NTr;2)线网位置每发生一次翻转所需时钟周期数;3)电路激活程度Cactivity。注意:由于NTr能够反映木马对整个电路功耗的贡献程度,因此在使用瞬态功耗分析方法检测硬件木马时,NTr是一个重要的参数。NTr越大,木马就越容易被检测出来。下式表明验证类参数和电路类参数之间的相互关系:
[0052]
[0053] TAu是用户自定义参数,它取决于产品的上市时间以及该产品的应用环境对其可靠性的要求程度。
[0054] 对于敏感节点,通过分析电路的结构和电路的应用背景,确定电路中的重要防护对象,最终找到电路中的敏感节点。
[0055] 第二部分是秘钥门的植入,在关键节点的位置中植入秘钥门,之后再次综合成网表,具体的完整技术方案如下:
[0056] 图2为本方案的整体技术流程图,该方法主要包括下述步骤:
[0057] 步骤1:将RTL代码综合成网表电路,分析电路结构,确定电路的敏感节点:读取并分析电路的结构,依据电路的应用背景,确定电路的重要防护对象,并定位电路的敏感节点集合;
[0058] 步骤2:敏感节点完备性分析:分析电路的敏感节点是否完备,如果不完备,则重新跳转到步骤1,继续分析,获取母本电路的敏感节点;
[0059] 步骤3:建立仿真验证平台,确定电路的低活性节点:基于电路的仿真验证平台进行随机仿真,分析电路的仿真过程文件,计算电路内部节点的翻转情况(出现逻辑“0”的概率P0、出现逻辑“1”的概率P1和翻转次数Tc),依据翻转概率的阈值Pth,确定电路中的低活性节点集合;
[0060] 步骤4:低活性节点的完备性分析:分析已得到的低活性节点集合,并返回步骤3继续随机化分析,验证低活性节点是否完备,如若不完备,则进一步完善电路的低活性节点集合;
[0061] 步骤5:确定电路的关键节点:依据步骤1得到的敏感节点和步骤2得到的低活性节点得到电路的关键节点集合;
[0062] 步骤6:将秘钥门植入到关键节点位置,再次综合成网表电路;
[0063] 步骤7:利用密钥正确与错误两种情况下的输出之间的汉明距离评估逻辑加密的有效性。
[0064] 本发明从硬件安全出发,提出了一种基于电路关键节点的逻辑加密方法,此方法首先需要利用向网表电路中输入随机向量寻找电路的低活性节点,同时分析电路的结构和应用背景找到敏感节点,确定电路的关键节点;其次利用逻辑加密的方法对关键节点植入秘钥门,通过密钥正确与错误两种情况下的输出之间的汉明距离,评估逻辑加密对电路保护的加密有效性。