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日发布,该申请:要求 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。