[发明专利]一种基于Kruskal算法的混淆有限状态机构建方法在审

专利信息
申请号: 201810105737.8 申请日: 2018-02-02
公开(公告)号: CN108470083A 公开(公告)日: 2018-08-31
发明(设计)人: 张跃军;潘钊;丁代鲁;王佳伟 申请(专利权)人: 宁波大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 宁波奥圣专利代理事务所(普通合伙) 33226 代理人: 方小惠
地址: 315211 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于Kruskal算法的混淆有限状态机构建方法,该方法中采用Kruskal算法来确定所构建的混淆有限状态机的各混淆状态之间的跳转方式,通过将任意两个混淆状态之间的汉明距离定义为Kruskal算法中对应的权重,采用Kruskal算法找寻权重最小的最小生成树(Minimum Spanning Tree,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条边确定的各混淆状态之间的连接关系;⑤将各混淆状态之间的连接关系定义为双向连接,同时定义其中一个混淆状态为初始状态,并且定义各混淆状态之间的跳转密钥以及混淆状态向原始有限状态机的有效状态之间的跳转密钥;⑥混淆有限状态机构建完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810105737.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top