当前位置: 首页 > 专利查询>宁波大学专利>正文

一种基于Kruskal算法的混淆有限状态机构建方法技术

技术编号:18810005 阅读:37 留言:0更新日期:2018-09-01 09:26
本发明专利技术公开了一种基于Kruskal算法的混淆有限状态机构建方法,该方法中采用Kruskal算法来确定所构建的混淆有限状态机的各混淆状态之间的跳转方式,通过将任意两个混淆状态之间的汉明距离定义为Kruskal算法中对应的权重,采用Kruskal算法找寻权重最小的最小生成树(Minimum Spanning Tree,MST),即最小的汉明距离;优点是构建的混淆有限状态机的开销较小,通过实验验证,在基准电路和密码算法电路中的实验结果表明,本发明专利技术的方法构建的混淆有限状态机的电路开销比当前采用其他方法构建的混淆有限状态机的电路开销在整体上明显减小。

A construction method of hybrid finite state mechanism based on Kruskal algorithm

The present invention discloses a confusion finite state mechanism construction method based on Kruskal algorithm, in which Kruskal algorithm is used to determine the jumping mode between confusion states of the confusion finite state machine, and the Hamming distance between any two confusion States is defined as the corresponding weight in Kruskal algorithm. Kruskal algorithm is used to find the minimum spanning tree (MST) with the smallest weight, i.e. the smallest Hamming distance; the advantage is that the construction of obfuscated finite state machine costs less. The experimental results in benchmark circuit and cryptographic algorithm circuit show that the obfuscated finite state constructed by the method of the present invention is obfuscated finite state machine. The circuit overhead of the machine is much lower than that of the confused finite state machine constructed by other methods.

【技术实现步骤摘要】
一种基于Kruskal算法的混淆有限状态机构建方法
本专利技术涉及一种混淆有限状态机构建方法,尤其是涉及一种基于Kruskal算法的混淆有限状态机构建方法。
技术介绍
集成电路(IntegratedCircuit,IC)供应链中的硬件知识产权(IntellectualProperty,IP)盗版,过度生产和逆向工程的现象,给知识产权的侵犯创造了机会。现有的数据保护是通过混淆即改变IC设计来隐藏电路的功能来达到保护目的。目前的数字集成电路主要有组合电路和时序电路两大类。对组合电路进行混淆是向IC设计的门级网表中插入额外的关键门,而设计者能通过密钥对IC的功能进行控制;对时序电路进行混淆是通过对电路中的有限状态机(FiniteStateMachine,FSM)状态的修改,使得修改后的状态机不能直接跳转到原始有限状态机的有效状态,需要IC设计者对其解锁才能正确跳转到原始有限状态机的有效状态,从而保护硬件IP核。目前,对于时序电路来说,常用来保护硬件IP核的方法是构建混淆有限状态机。Lao等提出一种两级混淆有限状态机架构以及基于两级混淆有限状态机的新型自校正方法,其构建的两级混淆有限状态机架构不仅可验证时序电路或时序电路内部的IP,也可消除误差校正技术。但是其构建的两级混淆有限状态机架构没有考虑各层混淆状态之间的跳转关系,由此导致构建的混淆有限状态机硬件开销较大等问题。
技术实现思路
本专利技术所要解决的技术问题是提供一种电路开销小的基于Kruskal算法的混淆有限状态机构建方法。本专利技术解决上述技术问题所采用的技术方案为:一种基于Kruskal算法的混淆有限状态机构建方法,包括以下步骤:①采用Quartus软件和Debussy软件提取待保护的时序电路中的原始有限状态机,根据提取的原始有限状态机确定原始有限状态机的起始位置、原始有限状态机的有效状态的数量以及各有效状态的二进制编码,将原始有限状态机的有效状态的数量记为M;②将待构建的混淆有限状态机的混淆状态的数量记为N,N满足条件:M+N=2n,其中n为正整数,且n大于等于原始有限状态机的有效状态的二进制编码的位宽;③计算原始有限状态机的M个有效状态的二进制编码对应的十进制数,从0~2n-1这2n个十进制数中去除原始有限状态机的M个有效状态的二进制编码对应的十进制数,得到N个位于0~2n-1之间的十进制数,将这N个0~2n-1之间的十进制数与混淆有限状态机中N个混淆状态一一对应,将各个混淆状态对应的十进制数转换为n位的二进制编码赋予该混淆状态,并分别定义混淆有限状态机的各混淆状态的名称;④将N个混淆状态的名称以及N个混淆状态的二进制编码作为Kruskal算法的输入,确定汉明距离之和最小情况下的各混淆状态的连接关系,具体过程为:a.采用Kruskal算法自动计算每两个混淆状态的二进制编码之间的汉明距离以及各混淆状态与自身的汉明距离,将计算得到的N×N个汉明距离的值存放在N×N的邻接矩阵中,该邻接矩阵具有对称性,该邻接矩阵的主对角线上存放的汉明距离的值全为零;b.设定一个空的边集合E,选取邻接矩阵上三角部分或下三角部分,先从其内找到汉明距离最小的值以及它对应的两个混淆状态,将这两混淆状态形成的边放入边集合E中,然后找到除已经找到的汉明距离以外剩余汉明距离中最小的值以及它对应的两个混淆状态,判断这两个混淆状态形成的边与前一次放入边集合E中的边是否会形成回路,如果是则舍弃该边,如果否的话将该边也放入边集合E中,以此类推,直至连通所有混淆状态,此时边集合E中含有N-1条边;c.输出邻接矩阵和N-1条边确定的各混淆状态之间的连接关系;⑤将各混淆状态之间的连接关系定义为双向连接,同时定义其中一个混淆状态为初始状态,并且定义各混淆状态之间的跳转密钥以及混淆状态向原始有限状态机的有效状态之间的跳转密钥;⑥混淆有限状态机构建完成。与现有技术相比,本专利技术的优点在于通过采用Kruskal算法来确定所构建的混淆有限状态机的各混淆状态之间的跳转方式,通过将任意两个混淆状态之间的汉明距离定义为Kruskal算法中对应的权重,采用Kruskal算法找寻权重最小的最小生成树(MinimumSpanningTree,MST),即最小的汉明距离,由此使构建的混淆有限状态机的开销较小,通过实验验证,在基准电路和密码算法电路中的实验结果表明,本专利技术的方法构建的混淆有限状态机的电路开销比当前采用其他方法构建的混淆有限状态机的电路开销在整体上明显减小。附图说明图1为采用本专利技术的方法构建的混淆有限状态机;具体实施方式以下结合附图实施例对本专利技术作进一步详细描述。实施例:一种基于Kruskal算法的混淆有限状态机构建方法,包括以下步骤:①采用Quartus软件和Debussy软件提取待保护的时序电路中的原始有限状态机,根据提取的原始有限状态机确定原始有限状态机的起始位置、原始有限状态机的有效状态的数量以及各有效状态的二进制编码,将原始有限状态机的有效状态的数量记为M;②将待构建的混淆有限状态机的混淆状态的数量记为N,N满足条件:M+N=2n,其中n为正整数,且n大于等于原始有限状态机的有效状态的二进制编码的位宽;③计算原始有限状态机的M个有效状态的二进制编码对应的十进制数,从0~2n-1这2n个十进制数中去除原始有限状态机的M个有效状态的二进制编码对应的十进制数,得到N个位于0~2n-1之间的十进制数,将这N个0~2n-1之间的十进制数与混淆有限状态机中N个混淆状态一一对应,将各个混淆状态对应的十进制数转换为n位的二进制编码赋予该混淆状态,并分别定义混淆有限状态机的各混淆状态的名称;④将N个混淆状态的名称以及N个混淆状态的二进制编码作为Kruskal算法的输入,确定汉明距离之和最小情况下的各混淆状态的连接关系,具体过程为:a.采用Kruskal算法自动计算每两个混淆状态的二进制编码之间的汉明距离以及各混淆状态与自身的汉明距离,将计算得到的N×N个汉明距离的值存放在N×N的邻接矩阵中,该邻接矩阵具有对称性,该邻接矩阵的主对角线上存放的汉明距离的值全为零;b.设定一个空的边集合E,选取邻接矩阵上三角部分或下三角部分,先从其内找到汉明距离最小的值以及它对应的两个混淆状态,将这两混淆状态形成的边放入边集合E中,然后找到除已经找到的汉明距离以外剩余汉明距离中最小的值以及它对应的两个混淆状态,判断这两个混淆状态形成的边与前一次放入边集合E中的边是否会形成回路,如果是则舍弃该边,如果否的话将该边也放入边集合E中,以此类推,直至连通所有混淆状态,此时边集合E中含有N-1条边;c.输出邻接矩阵和N-1条边确定的各混淆状态之间的连接关系;⑤将各混淆状态之间的连接关系定义为双向连接,同时定义其中一个混淆状态为初始状态,并且定义各混淆状态之间的跳转密钥以及混淆状态向原始有限状态机的有效状态之间的跳转密钥;⑥混淆有限状态机构建完成。本实施例中,待保护的时序电路采用Itc99基准电路中b15时序电路,采用Quartus软件和Debussy软件提取待保护的b15时序电路中的原始有限状态机,原始有限状态机中有效状态数量M为8,8个有效状态的二进制编码为0000-0111;n的取值大于等于4,以添加最少混淆状态数为例,取n为4,则待构建的混淆有本文档来自技高网...

【技术保护点】
1.一种基于Kruskal算法的混淆有限状态机构建方法,其特征在于包括以下步骤:①采用Quartus软件和Debussy软件提取待保护的时序电路中的原始有限状态机,根据提取的原始有限状态机确定原始有限状态机的起始位置、原始有限状态机的有效状态的数量以及各有效状态的二进制编码,将原始有限状态机的有效状态的数量记为M;②将待构建的混淆有限状态机的混淆状态的数量记为N,N满足条件:M+N=2n,其中n为正整数,且n大于等于原始有限状态机的有效状态的二进制编码的位宽;③计算原始有限状态机的M个有效状态的二进制编码对应的十进制数,从0~2n‑1这2n个十进制数中去除原始有限状态机的M个有效状态的二进制编码对应的十进制数,得到N个位于0~2n‑1之间的十进制数,将这N个0~2n‑1之间的十进制数与混淆有限状态机中N个混淆状态一一对应,将各个混淆状态对应的十进制数转换为n位的二进制编码赋予该混淆状态,并分别定义混淆有限状态机的各混淆状态的名称;④将N个混淆状态的名称以及N个混淆状态的二进制编码作为Kruskal算法的输入,确定汉明距离之和最小情况下的各混淆状态的连接关系,具体过程为:a.采用Kruskal算法自动计算每两个混淆状态的二进制编码之间的汉明距离以及各混淆状态与自身的汉明距离,将计算得到的N×N个汉明距离的值存放在N×N的邻接矩阵中,该邻接矩阵具有对称性,该邻接矩阵的主对角线上存放的汉明距离的值全为零;b.设定一个空的边集合E,选取邻接矩阵上三角部分或下三角部分,先从其内找到汉明距离最小的值以及它对应的两个混淆状态,将这两混淆状态形成的边放入边集合E中,然后找到除已经找到的汉明距离以外剩余汉明距离中最小的值以及它对应的两个混淆状态,判断这两个混淆状态形成的边与前一次放入边集合E中的边是否会形成回路,如果是则舍弃该边,如果否的话将该边也放入边集合E中,以此类推,直至连通所有混淆状态,此时边集合E中含有N‑1条边;c.输出邻接矩阵和N‑1条边确定的各混淆状态之间的连接关系;⑤将各混淆状态之间的连接关系定义为双向连接,同时定义其中一个混淆状态为初始状态,并且定义各混淆状态之间的跳转密钥以及混淆状态向原始有限状态机的有效状态之间的跳转密钥;⑥混淆有限状态机构建完成。...

【技术特征摘要】
1.一种基于Kruskal算法的混淆有限状态机构建方法,其特征在于包括以下步骤:①采用Quartus软件和Debussy软件提取待保护的时序电路中的原始有限状态机,根据提取的原始有限状态机确定原始有限状态机的起始位置、原始有限状态机的有效状态的数量以及各有效状态的二进制编码,将原始有限状态机的有效状态的数量记为M;②将待构建的混淆有限状态机的混淆状态的数量记为N,N满足条件:M+N=2n,其中n为正整数,且n大于等于原始有限状态机的有效状态的二进制编码的位宽;③计算原始有限状态机的M个有效状态的二进制编码对应的十进制数,从0~2n-1这2n个十进制数中去除原始有限状态机的M个有效状态的二进制编码对应的十进制数,得到N个位于0~2n-1之间的十进制数,将这N个0~2n-1之间的十进制数与混淆有限状态机中N个混淆状态一一对应,将各个混淆状态对应的十进制数转换为n位的二进制编码赋予该混淆状态,并分别定义混淆有限状态机的各混淆状态的名称;④将N个混淆状态的名称以及N个混淆状态的二进制编码作为Kruskal算法的输入,确定汉明距离之和最小...

【专利技术属性】
技术研发人员:张跃军潘钊丁代鲁王佳伟
申请(专利权)人:宁波大学
类型:发明
国别省市:浙江,33

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

1