一种抗硬件木马集成电路设计方法及系统与流程

文档序号:11216615阅读:925来源:国知局
一种抗硬件木马集成电路设计方法及系统与流程

本申请涉及电路设计领域,尤其涉及一种抗硬件木马集成电路设计方法及系统。



背景技术:

集成电路设计是根据用户的需求经过电路研发工作设计出符合用户需求的电路,一般情况下,设计好的电路需要进行封装,获取对应的芯片。随着ip复用技术的发展,集成电路的很多功能模块也可能是设计者直接从第三方的ip设计公司购入,并非完全自行设计。这种整体设计与模块设计相互独立,以及设计和生产分离的产业模式,决定了芯片在电路设计、生产制造以及使用过程中都会存在安全隐患。例如,在设计过程中,ip提供方可能在设计者不知情的情况下,在提供的ip模块中植入硬件木马。在生产过程中,生产者也可能会利用芯片版图中存在的空余空间,在设计者不知情的情况下,在芯片生产过程中植入木马。在使用过程中,用户升级固件程序时也有可能在存储器中被植入木马。这些木马电路可以在芯片工作时窃听并传播其内部信息;或者在芯片中设置某种开关,在某些特定的指令或外部条件下,造成芯片意外的报废。

目前,基于测试点插入的硬件木马加速测试方法通过插入一些特定的测试电路,提高集成电路内部各个节点的活性,从而实现加速隐藏的硬件木马激活。但是,目前插入测试点的硬件木马加速测试方法具有以下缺点:插入测试点会增加集成电路的路径延时,从而使集成电路性能因测试点的插入而退化,严重影响集成电路的使用。插入测试点的数量决定了增加的硬件开销,插入测试点的数量不是最优;对一些具有多个输入的逻辑门,现有的基于测试点插入的硬件木马加速测试方法失效。



技术实现要素:

本申请提供了一种抗硬件木马集成电路设计方法及系统,以解决传统方法设计的集成电路易被硬件木马攻击的问题。

一种抗硬件木马集成电路设计方法,所述方法包括:将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合;从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合;根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器;比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。

优选地,所述将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合,包括:获取所述集成电路每个内部节点的信号概率;根据所述信号概率获取集成电路内部节点的转换概率;将所述转换概率低于预设转换概率阈值的内部节点构成第一节点集合。

优选地,所述从第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合,包括:获取所述第一节点集合中最小信号概率的节点,构成第三节点集合;获取所述第三节点集合中内部节点的逻辑深度;将所述第三节点集合中的节点按照节点的逻辑深度进行排序,构成第四节点集合;从所述第四节点集合中选择出逻辑深度最小的节点构成第二节点集合。

优选地,所述根据第二节点集合中内部节点数量选择对应的内部节点插入预设电路,包括:如果所述第二节点集合中内部节点数量等于1,则直接在内部节点插入预设电路;或者,但如果所述第二节点集合中内部节点数量大于1,则在对应的扇出逻辑锥中节点数量最多的内部节点插入预设电路。

优选地,所述比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路,包括:预设延时比例ra;如果插入预设电路后的集成电路的关键路径延时大于原集成电路的关键路径延时与1+ra的乘积,则舍弃原插入节点,更换新的内部节点插入预设电路;或者,如果插入预设电路后的集成电路的关键路径延时小于或等于原集成电路的关键路径延时与1+ra的乘积,则不需要更换新的内部节点插入预设电路。

一种抗硬件木马集成电路设计系统,所述系统包括:第一预处理模块,用于将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合;第二预处理模块,用于从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合;插入处理模块,用于根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器;判定模块,用于比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。

优选地,所述第一预处理模块包括:第一获取单元,用于获取所述集成电路每个内部节点的信号概率;第二获取单元,用于根据所述信号概率获取集成电路内部节点的转换概率;处理单元,用于将所述转换概率低于预设转换概率阈值的内部节点构成第一节点集合。

优选地,所述第二预处理模块包括:第三获取单元,用于获取所述第一节点集合中最小信号概率的节点,构成第三节点集合;第四获取单元,用于获取所述第三节点集合中内部节点的逻辑深度;第一排序单元,用于将所述第三节点集合中的节点按照节点的逻辑深度进行排序,构成第四节点集合;第一选择单元,用于从所述第四节点集合中选择出逻辑深度最小的节点构成第二节点集合。

优选地,所述插入处理模块包括:第五获取单元,用于获取所述第二节点集合中内部节点数量;插入处理单元,用于如果所述第二节点集合中内部节点数量等于1,则直接在内部节点插入预设电路;或者,但如果所述第二节点集合中内部节点数量大于1,则在对应的扇出逻辑锥中节点数量最多的内部节点插入预设电路。

优选地,所述判定模块包括:预设单元,用于预设延时比例ra;判定处理单元,用于如果插入预设电路后的集成电路的关键路径延时大于原集成电路的关键路径延时与1+ra的乘积,则舍弃原插入节点,更换新的内部节点插入预设电路;或者,如果插入预设电路后的集成电路的关键路径延时小于或等于原集成电路的关键路径延时与1+ra的乘积,则不需要更换新的内部节点插入预设电路。

由上述技术方案可见,本申请实施例提供的一种抗硬件木马集成电路设计方法及系统,包括:将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合;从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合;根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器;比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。当选择对应的内部节点插入预设电路后,提高了对应节点的转换概率,对应的整个集成电路中的转换概率也进一步提高,因此当硬件木马选择节点插入时,增加了硬件木马被激活的概率,因此使得硬件木马找不到合适的插入点插入到集成电路中,降低了集成电路被硬件木马攻击的风险。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。

图1为本申请提供的抗硬件木马集成电路设计方法一个实施例的流程图;

图2为本申请提供的选择内部节点插入预设电路的一个实施例流程图;

图3为本申请提供的预设电路的一个实施例的结构示意图;

图4为本申请提供的抗硬件木马集成电路设计系统的一个实施例的示意图。

具体实施方式

参见图1,本申请提供的抗硬件木马集成电路设计方法一个实施例的流程图。如图1所示,所述方法包括:

s101,将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合。

集成电路内包含有很多内部节点,计算出每个内部节点的信号概率,所述信号概率包括输入信号概率和输出信号概率。对于一个集成电路的中逻辑门,一般会已知最初始的内部节点的输入概率,通过输入概率可以计算出对应逻辑门的输出概率。例如一个2输入与门的两个输入内部节点的信号已知,其中高电平信号的概率为0.5,则输出端输出高电平的信号的信号概率为0.5*0.5=0.25,则输出端信号为低电平的信号概率为1-0.25=0.75,输出端低电平信号和高电平信号的概率统称为2输入与门的输出端内部节点的信号概率。根据所述信号概率计算计算集成电路内部节点的转换概率则需要通过上述提到的两个信号概率,同样以上面为例,如果输出端内部节点的高电平信号和低电平信号的信号概率分别为0.25和0.75,则输出端内部节点的转换概率为0.25*0.75。

因此,如果集成电路结构已知,各个输入端口的信号概率已知,可以根据电路结构计算电路中所有内部节点的信号概率,同样可以根据内部节点的信号概率计算相应内部节点的转换概率。

统计所有内部节点的转换概率进行排序,本实施例中采用升序排序。将排序后的转换概率与预设转换概率阈值进行比较,如果找到其中一个转换概率大于或等于所述预设转换概率阈值,则将该转换概率以前的所有转换概率对应的内部节点进行标记,构成第一节点集合。对于获取低于预设转换概率阈值的内部节点不限于上述提到的对内部节点的转换概率进行升序排序,也可以降序排序或者挨个进行比较都可以实现,在此不再赘述。

s102,从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合。

首先从s101中构成的第一节点集合中选择出信号概率最小的内部节点,选择信号概率最小的内部节点也同样可以采用升序或降序的排列方式将第一节点集合中的内部节点的信号概率进行排序,获得最小输入概率,将最小输入概率对应的内部节点选择出构成第三节点集合。

然后获取第三节点集合中的内部节点逻辑深度,将第三节点集合中的内部节点按照节点的逻辑深度进行排序,构成第四节点集合;从所述第四节点集合中选择出逻辑深度最小的节点构成第二节点集合。本实施例中对第三节点集合中的内部节点的逻辑深度进行排序和从第四节点集合中选出逻辑深度最小的内部节点,均可以采用升序或者降序的方式。

s103,根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器。

如图2所示,首先获取所述第二节点结合中内部节点的数量,如果所述第二节点集合中内部节点数量等于1,则直接在内部节点插入预设电路。但如果所述第二节点集合中内部节点数量大于1,则在对应的扇出逻辑锥中节点数量最多的内部节点插入预设电路。

如图3所示为本申请提供的一种预设电路结构的示意图,所述预设电路包括二选一的多路选择器和一个扫描触发器。假设内部节点a的转换概率远远小于预设转换概率阈值,如果在内部节点a上插入预设电路。虽然集成电路中存在的与或结构的输出转换概率被提高,但是内部节点a的转换概率并没有任何提高。假设内部节点b为内部节点a的最小输入信号的输入节点,在节点b插入预设电路,则可以提高节点a的转换概率。当检测硬件木马时,选择信号设置为高电平,选择外部触发器的输出信号作为第一信号输入,这样就可以将节点a的转换概率提高预设转换概率的值。当集成电路需要运行时,将选择信号设置为低电平,则不会改变集成电路的任何逻辑功能。

s014,比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。

预设一个延时比例ra,重新计算电路的路径延时,如果插入预设电路后的集成电路的关键路径延时大于原集成电路的关键路径延时与1+ra的乘积,则舍弃原插入节点,更换新的内部节点插入预设电路。如果需要更新内部节点,选择新的内部节点则需要重复s102-s103的步骤。

如果插入预设电路后的集成电路的关键路径延时小于或等于原集成电路的关键路径延时与1+ra的乘积,则不需要更换新的内部节点插入预设电路。

由上述实施例可知,本发明实施例提供的一种抗硬件木马集成电路设计方法,包括:将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合;从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合;根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器;比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。当选择对应的内部节点插入预设电路后,提高了对应节点的转换概率,对应的整个集成电路中的转换概率也进一步提高,因此当硬件木马选择节点插入时,增加了硬件木马被激活的概率,因此使得硬件木马找不到合适的插入点插入到集成电路中,降低了集成电路被硬件木马攻击的风险。

与本申请提供的一种抗硬件木马集成电路设计方法实施例相对应,本申请还提供了一种抗硬件木马集成电路设计系统的实施例。

参见图4,为本申请提供的抗硬件木马集成电路设计系统的一个实施例的是示意图。如图4所示,所述系统包括:第一预处理模块201、第二预处理模块202、插入处理模块203和判定模块204。所述第一预处理模块201,用于将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合。所述第二预处理模块202,用于从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合。所述插入处理模块203,用于根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器。所述判定模块204,用于比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。

所述第一预处理模块201包括:第一获取单元、第二获取单元和处理单元。所述第一获取单元,用于获取所述集成电路每个内部节点的信号概率;所述第二获取单元,用于根据所述信号概率获取集成电路内部节点的转换概率;所述处理单元,用于将所述转换概率低于预设转换概率阈值的内部节点构成第一节点集合。

所述第二预处理模块202包括:第三获取单元、第四获取单元、第一排序单元和第一选择单元。所述第三获取单元,用于获取所述第一节点集合中最小信号概率的节点,构成第三节点集合;所述第四获取单元,用于获取所述第三节点集合中内部节点的逻辑深度;所述第一排序单元,用于将所述第三节点集合中的节点按照节点的逻辑深度进行排序,构成第四节点集合;所述第一选择单元,用于从所述第四节点集合中选择出逻辑深度最小的节点构成第二节点集合。

所述插入处理模块203包括:第五获取单元和插入处理单元。所述第五获取单元,用于获取所述第二节点集合中内部节点数量;所述插入处理单元,用于如果所述第二节点集合中内部节点数量等于1,则直接在内部节点插入预设电路;或者,但如果所述第二节点集合中内部节点数量大于1,则在对应的扇出逻辑锥中节点数量最多的内部节点插入预设电路。

所述判定模块204包括:预设单元和判定处理单元。所述预设单元,用于预设延时比例ra;所述判定处理单元,用于如果插入预设电路后的集成电路的关键路径延时大于原集成电路的关键路径延时与1+ra的乘积,则舍弃原插入节点,更换新的内部节点插入预设电路;或者,如果插入预设电路后的集成电路的关键路径延时小于或等于原集成电路的关键路径延时与1+ra的乘积,则不需要更换新的内部节点插入预设电路。

由上述实施例可知,本发明实施例提供的一种抗硬件木马集成电路设计系统,包括:第一预处理模块201、第二预处理模块202、插入处理模块203和判定模块204。所述第一预处理模块201将集成电路转换概率低于预设转换概率阈值的内部节点构成第一节点集合。第二预处理模块202从所述第一节点集合中获取最小信号概率且逻辑深度最小的内部节点构成第二节点集合。插入处理模块203根据所述第二节点集合中内部节点数量选择对应的内部节点插入预设电路,所述预设电路包括二选一的多路选择器和一个扫描触发器。判定模块204比较插入预设电路后的集成电路的关键路径延时与原集成电路的关键路径延时,确定是否需要更换新的内部节点插入预设电路。当选择对应的内部节点插入预设电路后,提高了对应节点的转换概率,对应的整个集成电路中的转换概率也进一步提高,因此当硬件木马选择节点插入时,增加了硬件木马被激活的概率,因此使得硬件木马找不到合适的插入点插入到集成电路中,降低了集成电路被硬件木马攻击的风险。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1