用于混淆具有伪装门和逻辑加密的集成电路的系统和方法技术方案

技术编号:21176473 阅读:59 留言:0更新日期:2019-05-22 12:07
公开了一种用于混淆集成电路的至少一部分的方法和装置。在一个实施例中,该方法包括对于集成电路的部分的每个网络,计算可观察点的数量(COP),对于每个网络,计算选择权重(WS),以及基于计算的选择权重(WS)来选择用于插入至少一个保护元件的一个或多个网络。

Systems and methods for confusing integrated circuits with camouflage gates and logical encryption

A method and apparatus for obfuscating at least part of an integrated circuit are disclosed. In one embodiment, the method includes calculating the number of observable points (COP) for each network of the integrated circuit portion, calculating the selection weight (WS) for each network, and selecting one or more networks for inserting at least one protection element based on the calculated selection weight (WS).

【技术实现步骤摘要】
【国外来华专利技术】用于混淆具有伪装门和逻辑加密的集成电路的系统和方法相关申请的交叉引用本申请要求由BryanJ.Wang、LapWaiChow、RonaldP.Cocchi和JamesP.Baukus于2016年9月20日提交的题为“用于混淆具有伪装门和逻辑加密的集成电路的系统和方法(METHODFOROBFUSCATINGANINTEGRATEDCIRCUITWITHCAMOUFLAGEDGATESANDLOGICENCRYPTION)”的美国临时专利申请No.62/397,231的权益,该申请通过引用结合在此。本申请还涉及以下共同未决和共同转让的本申请,所有这些申请通过引用结合在此:由RonaldP.Cocchi、LapWaiChow、JamesP.Baukus和BryanJ.Wang于2017年8月11日提交的题为“物理上不可克隆的伪装结构及其制造方法(PHYSICALLYUNCLONABLECAMOUFLAGESTRUCTUREANDMETHODSFORFABRICATINGSAME)”的美国专利申请No.15/675,418;该申请是由RonaldP.Cocchi、LapW.Chow、JamesP.Baukus和BryanJ.Wang于2015年12月30日提交的题为“物理上不可克隆的伪装结构及其制造方法”(PHYSICALLYUNCLONABLECAMOUFLAGESTRUCTUREANDMETHODSFORFABRICATINGSAME)的美国专利申请No.14/985,270的延续,并作为美国专利No.9,735,781于2017年8月15日发布,该申请:要求由RonaldP.Cocchi、LapW.Chow、JamesP.Baukus和BryanJ.Wang于2014年12月30日提交的题为“用于构建具有电路伪装的不可克隆电子系统的方法和装置(METHODANDAPPARATUSFORBUILDINGANUNCLONABLEELECTRONICSSYSTEMWITHCIRCUITCAMOUFLAGE)”的美国临时专利申请No.62/098,108的权益,其中的两个申请通过引用结合在此。是BryanJ.Wang、LapWaiChow、JamesP.Baukus和RonaldP.Cocchi于2013年7月12日的提交的题为“用于伪装具有微电路和后处理的基于标准单元的集成电路的方法和装置(METHODANDAPPARATUSFORCAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUITWITHMICROCIRCUITSANDPOSTPROCESSING)”的美国专利申请13/940,585的部分延续,该申请是由RonaldP.Cocchi等人于2012年2月9日提交的题为“用于伪装具有微电路和后处理的基于标准单元的集成电路的方法和装置(METHODANDAPPARATUSFORCAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUITWITHMICROCIRCUITSANDPOSTPROCESSING)”的美国专利申请序列No.13/370,118的分案,并作为8,510,700于2013年8月13日发布,该申请是:由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2009年2月24日提交的题为“伪装基于标准单元的集成电路(CAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.12/380,094的部分延续,作为美国专利8,151,235于2012年4月3日发布;以及由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2009年10月13日提交的题为“用于伪装基于标准单元的集成电路的方法和装置(METHODANDAPPARATUSFORCAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.12/578,441的部分延续,作为美国专利No.8,418,091于2013年4月9日发布,其是由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2009年2月24日提交的题为“伪装基于标准单元的集成电路(CAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.12/380,094的部分延续,作为美国专利No.8,151,235于2012年4月3日发布;还是由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2013年3月7日提交的题为“用于伪装基于标准电池的集成电路的方法和装置(METHODANDAPPARATUSFORCAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.13/789,267的部分延续,该申请是由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2009年10月13日提交的题为“用于伪装基于标准单元的集成电路的方法和装置(METHODANDAPPARATUSFORCAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.12/578,441的延续,作为美国专利No.8,418,091于2013年4月9日发布,该申请是由LapWaiChow、JamesP.Baukus、BryanJ.Wang和RonaldP.Cocchi于2009年2月24日提交的题为“伪装基于标准单元的集成电路(CAMOUFLAGINGASTANDARDCELLBASEDINTEGRATEDCIRCUIT)”的美国专利申请序列No.12/380,094的部分延续,作为美国专利8,151,235于2012年4月3日发布。
本公开涉及用于保护数字电路的系统和方法,并且特别涉及用于混淆具有伪装门和逻辑加密的集成电路的系统和方法。
技术介绍
集成电路(IC)设计容易受到逆向工程、未授权的克隆和过度生产以及由于木马插入导致的设备损坏的IP盗窃的影响。随着逆向工程能力的提高,以及全球IC生产能力整合到少数外国实体中,IC行业面临的风险一直在稳步增长。逻辑加密(也称为逻辑混淆)是一种硬件混淆技术,该技术修改电路,使得其仅在一组新引入的密钥数据输入被正确应用时才能正确操作。该密钥仅为原始电路设计者所知,并且可以在制造后在安全设施处被编程到设备的非易失性存储器中,诸如一次性可编程OTP存储器。没有密钥数据,由IC制造商或第三方制造的未授权设备将无法正确工作。例如,参见J.A.Roy、F.Koushanfar和I.L.Markov的2018年3月10日至14日德国慕尼黑2008年欧洲的设计、自动化和测试的“结束集成电路的盗版”(“EndingPiracyofInte本文档来自技高网
...

【技术保护点】
1.一种混淆具有包括逻辑元件和存储元件的多个元件的集成电路的至少一部分的方法,所述集成电路包括具有两个或多个互连元件的多个网络,所述方法包括:对于所述集成电路的所述部分的每个网络,计算可观察点的数量(COP);对于每个网络,计算选择权重(WS);以及基于所计算的选择权重(WS)选择用于插入至少一个保护元件的一个或多个网络。

【技术特征摘要】
【国外来华专利技术】2016.09.20 US 62/397,2311.一种混淆具有包括逻辑元件和存储元件的多个元件的集成电路的至少一部分的方法,所述集成电路包括具有两个或多个互连元件的多个网络,所述方法包括:对于所述集成电路的所述部分的每个网络,计算可观察点的数量(COP);对于每个网络,计算选择权重(WS);以及基于所计算的选择权重(WS)选择用于插入至少一个保护元件的一个或多个网络。2.根据权利要求1所述的方法,其中,对于所述集成电路的每个网络,计算可观察点的数量(COP)包括:(a)对于作为所述集成电路的可观察点的每个网络,初始化整数COP=1,对于不作为可观察点的每个网络,初始化整数COP=0;其中:所述集成电路的可观察点包括存储元件的数据输入或要保护的所述集成电路的所述部分的主输出;以及所述集成电路的发射点包括存储元件的数据输出或要保护的所述集成电路的所述部分的主输入;(b)对于作为可观察点的每个网络:(i)对于要保护的所述集成电路的所述部分中的每个网络,初始化布尔值FV=0;(ii)识别所述网络的驱动器;(iii)如果所述驱动器是发射点且FV=0,则递增COP并设定FV=1;以及(iv)如果所述驱动器是逻辑元件且FV=0:则递增COP并设定FV=1;识别连接到所述逻辑元件的输入的网络;以及对于每个识别的网络,递归执行(ii)至(iv)。3.根据权利要求1所述的方法,其中,对于每个网络,计算选择权重包括:将所述选择权重WS计算为先前所计算的COP值和发射点调整因子FLPA的乘积;以及其中,所述发射点调整因子FLPA具有0和1之间的值,并且基于所述集成电路的所述部分的连通性和最重要的发射点调整因子NLPA以及表示应用所述发射点调整因子NLPA的多个逻辑级中的至少一个逻辑级的整数NL来计算。4.根据权利要求3所述的方法,其中,NL和NLPA被预先计算。5.根据权利要求4所述的方法,其中,将所述选择权重WS计算为先前所计算的COP值和发射点调整因子FLPA的乘积包括:初始化发射点调整矢量VLPA,使得其具有NL个元件,并且范围从FLPA至1-(1-NLPA)/FL;确定每个网络与相关联发射点的距离DLP;以及使用每个网络与相关联发射点的所述距离DLP,对于每个网络,计算所述选择权重WS,并根据所述发射点调整矢量VLPA查找所述发射点调整因子FLPA。6.根据权利要求5所述的方法,其中:初始化发射点调整矢量VLPA使得其具有NL个元件,并且范围从FLPA至1-(1-NLPA)/FL包括:将索引x的所述发射点调整矢量VLPAVLPA[x]初始化为最重要的发射点调整因子NLPA,其中,所初始化的索引是零索引(VLPA[0]=NLPA);确定FL是否大于1;以及如果FL大于1,则设定步长S=(1-NLPA)/FL,并且对于x=1至(FL-1),将所述索引x的所述矢量VLPA[x]初始化为VLPA[x-1]+S;确定每个网络与相关联发射点的距离DLP包括:将要保护的所述集成电路的所述部分的每个网络与相关联的发射点的所述距离DLP初始化为整数值(MAXINT);对于要保护的所述集成电路的所述部分中的每个网络:对于要保护的所述集成电路的所述部分的每个网络,初始化布尔值FV=0;识别每个网络的下游负载,其中,所述下游负载包括可观察点或逻辑元件的输入;对于每个识别的下游负载:如果所述下游负载是可观察点且FV=0,则将DLP设定为DLP和DCURR的最小值(DLP=min(DLP,DCURR))并设定FV=1,其中,DCURR表示到表示到检查中的相关联发射点的当前距离;如果所述下游负载是逻辑元件且FV=0,则将DLP设定为DLP和DCURR的最小值(DLP=min(DLP,DCURR))并设定FV=1;以及对于每个逻辑元件输出,识别与所述逻辑元件输出相关联的网络,设定DCURR=DCURR+1;使用每个网络与其相关联发射点的所述距离DLP,对于每个网络,计算所述选择权重WS,并根据所述发射点调整矢量VLPA查找所述发射点调整因子FLPA,包括:确定DLP是否≥FL;以及如果DLP≥FL,则设定WS=COP,否则设定WS=COP*VLPA[DLP]。7.根据权利要求1所述的方法,其中,基于所计算的选择权重(WS)选择用于插入的一个或多个网络包括:基于升序选择权重(WS)对所述网络进行分类;将所分类的网络分组到NB个间隔的箱B[0]至B[NB-1],使得每个箱包含具有更靠近以下选择权重的选择权重(WS)的网络:其它网络在所述箱中的选择权重而不是其它网络在所述箱外面的所述选择权重(WS);确定从每个箱NN[0]至NN[NB-1]中选择的所需数量的网络;以及对于具有从0至NB-1的值的每个箱索引x,伪随机地从箱B[x]中选择NN[x]个网络。8.根据权利要求1所述的方法,其中,所述集成电路的所述至少一部分包括所述集成电路的密钥门部分和所述集成电路的功能逻辑部分。9.一种混淆集成电路(IC)的计算机实现的方法,其中,所述IC包括多个互连的功能逻辑单元,所述多个互连的功能逻辑单元一起执行一个或多个逻辑功能,所述方法包括以下步骤:通过插入密钥门来识别要保护的所述集成电路的一部分中的一组第一逻辑节点;对于所识别的一组第一逻辑节点的每个第一逻辑节点,插入密钥门,使得仅当正确密钥数据值被提供给所述密钥门的密钥输入时,所述密钥门控的逻辑节点的输出值等于非密钥门控的第一逻辑节点的输出值;插入编程逻辑,所述编程逻辑用于将密钥数据信号编程到来自非易失性存储器的所述密钥输入;识别所述多个互连逻辑单元的一个或多个群组;以及对于每个识别的逻辑单元的群组,用具有至少一个伪装逻辑单元的逻辑等效的伪装逻辑单元的群组替换所识别的逻辑单元的群组。10.根据权利要求9所述的方法,其中,每个逻辑单元包括负载引脚,并且插入密钥门,使得仅当正确密钥数据值被提供给所述密钥门的密钥输入时,所述密钥门控的逻辑节点的输出值等于非密钥门控的第一逻辑节点的输出值包括:对于所述一组第一逻辑节点的每个第一逻辑节点:将所述第一逻辑节点与其负载引脚断开;在所述第一逻辑节点处插入密钥门;将所述密钥门的逻辑输入中的一个与连接到所述...

【专利技术属性】
技术研发人员:B·J·王L·W·周R·P·科驰J·P·鲍库斯
申请(专利权)人:英赛瑟库尔公司
类型:发明
国别省市:法国,FR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1